- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章基础知识
◎汇编语言由 3 类指令组成
汇编指令 :机器码的助记符 ,有对应机器码。
伪指令 :没有对应机器码 ,由编译器执行 ,计算机并不执行
其他符号 :如+-*/, 由编译器识别 ,没有对应机器码
◎一个 CPU 有 n 根地址线 ,则可以所这个 CPU 的地址线宽度为 n,这样的 CPU 最多可以寻找 2 的 n 次方个内存单元。
◎1K=2^10B 1M=2^20B 1G=2^30B
◎8086 CPU 地址总线宽度为 20,寻址范围为 00000~FFFFF
00000~9FFFF 主存储器地址空间 (RAM
A0000~BFFFF 显存地址空间
C0000~FFFFF 各类 ROM 地址空间
第二章寄存器 (CPU 工作原理
◎16 位结构描述了一个 CPU 具有下面几个方面的结构特性
运算器一次最多可以处理 16 位的数据
寄存器的最大宽度为 16 位
寄存器和运算器之间的通路为 16 位
◎8086 有 20 位地址总线 ,可以传送 20 位地址 ,达到 1M 的寻址能力。采用在内部用两个 16 位地址合成的方法来形成一个 20 位的物理地址
◎物理地址 = 段地址 ×16 + 偏移地址
◎在编程是可以根据需要 ,将若干地址连续的内存单元看作一个段 ,用段地址 ×16 定位段的起始地址 (基础地址 ,用偏移地址定位段中的内存单元。段地址 ×16 必然是 16 的倍数 ,所以一个段的起始地址也一定是 16 的倍数 ;偏移地址位 16 位,16 位地址的寻址能力为 64KB, 所以一个段的长度最大为 64KB
◎8086 有四个段寄存器 CS、 DS、 SS、ES
◎CS 为代码段寄存器 ,IP 为指令指针寄存器。任意时刻 ,设 CS 中内容为 M 、IP中内容为 N,8086CPU 从内存 M×16+N 读取一条指令执行
◎不能用 mov 修改 CS、IP,因为 8086CPU 没有提供这样功能 ,可用指令 JMP 段地址 :偏移地址。 JMP 2AE3:3 JMP AX 修改 IP
第三章寄存器 (内存访问
◎DS 数据段寄存器。不能将数据直接送入段寄存器 ,所以『 MOV DS, 1 』不正
确
◎字在存储时要两个连续的内存单元 ,低位在低地址 ,高位在高地址
[address]表示一个偏移地址为 address的内存单元
SS:SP指向栈顶元素
◎PUSH AX:(1SP = SP - 2;(2AX 送入 SS:SP
◎POP AX:(1SS:SP送入 AX;(2SP = SP + 2
◎PUSH/POP 寄存器
PUSH/POP 段寄存器
PUSH/POP 内存单元
第四章第 1 个程序
◎可执行文件包含两部分 :程序和数据 ,相关的描述信息
◎程序加载后 ,ds 中存放这程序所在内存区的段地址 ,这个内存区的偏移地址为0,策程序所在的内存区的地址为 ds:0;这个内存区的前 256 个字节中存放的是PSP,dos用来和程序进行通信。从 256 字节处向后的空间存放的是程序。
第五章 [BX] 和 loop 指令
[BX] 表示一个内存单元 ,它的段地址在 ds中 ,偏移地址在 bx 中。 MOV AX,[BX] MOV AL,[BX] MOV [BX],AX
◎loop 要进行两步操作 ,CX=CX-1; 判断 cx 中值 ,不为零则转至标号处执行程序 , 为零则向下执行。
◎masm将指令 mov ax,[0] 当作 mov ax,0 处理
解决方法可以为 mov bx,0 使用寄存器
mov ax,[bx]
或 mov ax,ds:[0] 直接给出段地址所在的段寄存器 ◎loop 中不可使用 mov [cx],cx
第六章包含多个段的程序
◎dw 定义字型数据
◎end 标号定义程序入口点
◎定义多个段 ,同定义代码段相同。定义仅仅是为了程序阅读方便
◎assume cs:code,ds:data,ss:stack是伪指令 ,将定义的具有一定用途的段和相关的寄存器联系起来
◎对于段 ,如果数据占 N 个字节 ,则程序加载后实际占有空间为 :(N/16+1*16,N
的 16整数
第七章更灵活的定位内存地址的方法
◎and 按位与 and al, 0EFh
or 按位或 or al, 20h
◎字母大小写转换 :
大写 (xx0x xxxxand al, 0EFh
小写 (xx1x xxxxor al, 20h
◎mov ax,[200+bx] == mov ax,[bx+200] == mov ax,200[bx] == mov ax,[bx].200 段地址为 ds,偏移地址为 bx+200
si 和 di 示 8086CPU中和 bx 功能相近的寄存器 ,si 和 di 不能
您可能关注的文档
最近下载
- 浙江省金砖联盟2024-2025学年高一上学期期中联考语文试卷(含答案).pdf VIP
- 创投行业的介绍.pptx VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(10).转场效果脚本开发.docx VIP
- 上海华虹(集团)有限公司909工程升级改造——华虹集团建.PDF VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(9).常用视频效果脚本开发.docx VIP
- 礼记:大同.ppt VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(8).媒体文件导入导出脚本.docx VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(7).项目和序列管理脚本.docx VIP
- 2024-2025学年七年级语文下学期期末真题分类汇编文言文阅读(湖南专用).docx VIP
- 视频处理软件:Adobe Premiere Pro二次开发_(6).视频处理自动化流程.docx VIP
原创力文档


文档评论(0)