- 1、本文档共112页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术 南京信息工程大学第3章-80X86微处理器指令系统讲解.ppt
3.1 寻址方式 3.1 寻址方式 操作码 指计算机所要执行的操作,是一种助记符。 操作数 在指令执行操作的过程中所需要的数据。该字段可以是操作数本身,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。 立即寻址 立即寻址 立即寻址 寄存器寻址 寄存器寻址 寄存器寻址 直接寻址 直接寻址 直接寻址 寄存器间接寻址 操作数在内存中,操作数地址的16位EA包含在以下寄存器SI、DI、BP、BX中。为了区别于寄存器寻址方式,指令中指定的寄存器名要用“[]”括起来。 寄存器间接寻址 寄存器相对寻址 操作数在存储器中,由指定的寄存器内容,加上指令中给出的8位或16位偏移量作为操作数的偏移地址。 寄存器为四个寄存器SI、DI、BX、BP之一 寄存器相对寻址 基址加变址寻址 操作数在存储器中 其偏移地址由(基址寄存器)+(变址寄存器)形成 基址寄存器——BX(数据段),BP(堆栈段) 变址寄存器——SI、DI 基址加变址寻址 相对基址变址寻址 相对基址变址寻址 寻址方式小结 从直接寻址方式开始的寻址方式中,操作数都存放在除代码段以外的内存区域中,通过求得操作数所在的有效地址,取得操作数。比较这几种寻址方式: [idata]用一个常量来表示地址,可以用于直接定位一个内存单元; [BX]用一个变量来表示内存地址,可以用于间接定位一个内存单元; [BX+idata]用一个变量和常量来表示地址,可以在一个起始地址的基础上用变量间接定位一个内存单元; [BX +SI]用两个变量表示地址; [BX + SI +idata]用两个变量和一个常量表示地址。 寻址方式小结 有关带[ ]地址表达式必须遵守下列规则: 立即数可以出现在[]内,表示直接地址,如[1000H] 只有BX、BP、SI和DI四个寄存器可以出现在[]内,它们可以单独出现,也可以组合起来(只能相加),或以常数与寄存器相加的形式出现,但BX和BP寄存器不允许出现在同一个[]内,SI和DI也不能同时出现。 寻址方式小结 有关带[ ]地址表达式必须遵守下列规则: 由于方括号有相加的含义,下面几种方法是等价的 6[BX][SI] [BX+6][SI] [BX+SI+6] 6[BX+SI] 若[]内包含BP,则隐含使用SS来提供基地址,物理地址= 16?SS + EA 其余情况隐含使用DS提供基地址 段超越前缀的使用 课堂练习 课堂练习 3.2 指令系统 3.2.1 数据传送指令 MOV 指令 MOV 指令 MOV 指令运行传送数据的途径 MOV 指令 MOV 指令 存储器传送指令中,不允许对CS和IP进行操作; 不允许两个存储器操作数之间直接进行信息传送 两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式为段寄存器赋初值 目的操作数,不能用立即寻址方式; 操作数类型要匹配,字对字,字节对字节传送。 栈指令 栈指令 栈指令 栈指令 栈指令 栈指令 PUSH和POP指令访问的内存单元地址不是在指令中给出的,而是由SS:SP指出的; CPU执行MOV指令只需要一步操作; 而执行PUSH和POP指令则要分两步,先修改SP,然后向SS:SP传送,或先取SS:SP处的数据,后改变SP。 分析两段指令的执行结果 MOV AX,2000H MOV DS,AX MOV AX,1234H MOV [0000H],AX MOV AX,2000H MOV SS,AX MOV SP,2 MOV AX,1234H PUSH AX 课堂练习 交换指令 交换指令 交换能在通用寄存器与累加器之间、通用寄存器之间、通用寄存器与存储器之间进行 但段寄存器和立即数不能作为一个操作数,不能在累加器之间进行。 如果需要交换两个内存操作数,需要使用一个寄存器作为临时存储容器,并把MOV指令和XCHG指令结合起来使用 MOV AX, [0100H] XCHG AX, [1000H] MOV [0100H], AX 交换指令 累加器专用传送指令 累加器专用传送指令 课堂练习 XLAT指令 XLAT指令 XLAT指令 地址传送指令 地址传送指令 课堂练习 课堂练习 标志位传送指令 标志位传送指令 标志位传送指令 标志位传送指令 课堂练习 课后作业 课后作业 3.2 指令系统 3.2.2 算术运算指令 加法指令:ADD 加法指令:ADD 加法指令:ADC 加法指令:ADC 加法指令:ADC 加法指令:INC 减法指令 减法指令 课后作业 乘法指令 乘法指令 除法指令 除法指令 符号扩展指令 符号扩展指令 符号扩展指令 符号扩展指令 符号扩展指令 课后作业 十进制调整指令 十进制调整指令 十进制调整指令 3.2 指令系统 3.2.3 逻辑运算指令 AN
文档评论(0)