- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 8086/8088指令系统 (Part 1) 本章主要内容 指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理及使用 操作码的含义 指令对操作数的要求 指令执行的结果 3.1 概述 为什么要学习8086汇编语言 对硬件控制最彻底、占内存少、运行速度快 了解计算机组成结构和工作过程的工具 8086指令系统是整个x86系列CPU指令的基本集合,向后兼容 应用广泛,资料易于寻找 8086指令按功能分为六大类 (1)数据传送类 (2)算术运算类 (3)逻辑运算和移位类 (4)串操作类 (5)控制转移类 (6)处理器控制类 3.1.1 指令的基本语法 部分常用的 8086 指令 指令中的操作数(3种) 1、立即数操作数(常数) 取值范围如下: 3.1.2 指令的执行时间 一条指令的执行时间=∑ 3.2 8086的寻址方式 寻址方式—确定操作数地址的方法 操作数的地址(一般指源操作数) 要执行的下一条指令的地址 在8086指令系统中,寻址方式可分为7种: ①立即寻址 ⑤寄存器相对寻址 ②直接寻址 ⑥基址-变址寻址 ③寄存器寻址 ⑦相对的基址-变址寻址 ④寄存器间接寻址 此外,还有一种隐含寻址。 3.2.4 寄存器间接寻址 操作数的偏移地址在寄存器中 注意:只有SI、DI、BX和BP可作间址寄存器 例: MOV AX, [BX] MOV CL, CS:[DI] MOV AX, [DX] ; × 错误! MOV CL, [AX] ; × 错误! 指令操作例:MOV AX,[BX+10] 假定DS=6000H, BX=1000H, (61010H)=66H, (61011H)=55H 例: MOV AX, [BX] [SI] MOV AX, [BX+DI] MOV AX, DS: [BP] [DI] MOV AX, [BX] [BP] ; × 错误! MOV AX, [DI] [SI] ; × 错误! 读取元素A(2,1) 寻址方式小结 3.3 8086指令系统 包括如下6大类指令: 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 指令的通用规则 操作数不能是CS和IP 除串操作指令外,其他指令的源和目的操作数不能都是存储器操作数 源操作数和目的操作数不能都是段寄存器 立即数不允许作为目的操作数 源操作数和目的操作数的类型至少有一个能够确定。如果两个都能确定,则二者类型必须要一致。 3.3.1 数据传送指令 可实现的操作 1.通用传送指令 (1)MOV指令 MOV dest,src ;dest←src 可实现8位或16位数据的传送。 传送类型取决于指令中寄存器的位数。 若两个操作数都不是寄存器,则应显式地指定目的操作数的类型。 例:MOV CL,DL ;8位传送 MOV AX,[BX] ;16位传送 MOV [SI],CL ;8位传送 MOV WORD PTR[BX+5],10H ;16位传送 MOV指令使用规则: 1)遵循通用规则 2) 不允许段寄存器之间的传送 MOV ES,DS ; × 错误! 3) 不允许立即数到段寄存器的传送 MOV DS,1000H ; × 错误! 不能实现的传送的解决办法:用AX作桥梁 存储器←存储器 MOV AX,MEM1 MOV MEM2,AX 段寄存器←段寄存器 MOV AX,DS MOV ES,AX 段寄存器←立即数 MOV AX,1200H MOV DS,AX (2)堆栈操作指令 SS指示堆栈段的段基址 SP指示堆栈栈顶,SP的初值决定了堆栈的大小。 ① 压栈指令 PUSH src ;src的内容压入堆栈 注意:操作数不允许为常数,不允许为8位数。 例:PUSH AX ; 将AX内容压栈 执行操作:(SP-1)←AH
文档评论(0)