指令与寻址方式.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指令与寻址方式

第3章 8086/8088指令系统 3.1 概述 指令的要素 操作码(Operation Code) 操作数(Operand) 源操作数(Source Operand) 目的操作数(Destination Operand) 指令的表达形式 二进制形式 助记符形式 汇编与反汇编 寻址(Addressing) 指令的分类对应于高级语言的功能分类 (1)数据传送类; (2)算术运算类; (3)逻辑运算和移位; (4)串操作; (5)控制转移类; (6)处理器控制。 指令的时空及价值 一条指令的执行时间=∑ 指令占用的代码空间 单字节指令 双直接指令 多字节指令 3.2 8086的寻址方式 Addressing Mode 寻址——获取操作数/指令代码的方法 在8086指令系统中,说明操作数所在地址的寻址方式可分为8种: ①立即寻址 ⑤寄存器相对寻址 ②直接寻址 ⑥基址-变址寻址 ③寄存器寻址 ⑦相对的基址-变址寻址 ④寄存器间接寻址 ⑧隐含寻址 立即寻址Immediate Addressing MOV AX,1234H MOV BL,255 MOV WORD PTR[BX],33 OUT PORT,21h 立即数只可以作源操作数 立即数的类型与目的操作数相同 直接寻址Direct Addressing MOV AX, [1000h] MOV [1002h], BX 地址用方括号标识,以区别于立即数; 两个或两个以上操作数之间以逗号隔开; 助记符对齐; 指令每行只写一条。 寄存器寻址Register MOV AX, 1234H MOV BL, 255 MOV AH, AL MOV [SI], AX 寄存器操作数,寻址速度快 寄存器间接寻址Register Indirect ADD AX, [BX] MOV DX, [SI] MOV [DI], AL 寄存器相对寻址Register Relative MOV [BX][1000H], DX MOV AX, [BP+8] 基址-变址寻址Based Indexed ADD cx,[bx][di] 基址寄存器:BX , BP 默认段为DS 变址寄存器:DI , DI 默认段为SS 基址-变址相对寻址 Relative Based Indexed Mov ax,[bx][si][2000h] 程序目标地址的寻址 一般是顺序执行,PC顺序递增; CALL/JMP 目标地址 目标地址也有不同的寻址方式: 直接转移 间接转移 相对转移 JMP 1000h ; JMP e ; (pc)?(Pc)+e , e为补码 JMP BX JMP [BX] 3.3 8086/8088指令系统 学习和应用指令需要关注的问题: 指令的功能类别, 具体格式,寻址方式限制 执行时间,指令的字节数(时空) 指令执行对 F 寄存器的影响 是否影响堆栈 是否需要特定的寄存器实现配合 3.3.1 数据传送指令 细分,如下四种: 通用传送(*) 目标地址传送 标志传送 输入输出(*) (1) MOV dest,src; dest←src 可实现: MOV指令使用规则: 1、源操作数与目的操作数类型要一致。 2、不能在两个存储单元之间直接传送。 MOV [1000H] ,[2000H] (某些单片机内部RAM可以) 3、立即数不能送段寄存器。 MOV DS ,300H 3、段寄存器之间不能传送。 MOV DS ,ES 5、CS、IP不能做目的操作数。 MOV CS ,AX 6、立即数不允许作为目的操作数  原则:逻辑上合理,有必要,使用频率高,效率高   几个不能直接传送的解决办法: (用AX等寄存器作桥梁) 存储器←存储器: MOV AX,MEM1 MEM2,AX 段寄存器←段寄存器: MOV AX,DS MOV ES,AX 段寄存器←立即数: MOV AX,DATA MOV DS,AX SS指示堆栈段的段基址,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。堆栈的最高地址叫栈底。 8086堆栈指令使用时应注意几点: ①堆栈操作总是按字进行 ②不能从栈顶弹出一个字给CS ③堆栈指针为SS:SP,SP永远指向栈顶 ④入栈时SP先自动-2,出栈后SP自动增量+2

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档