汇编语言基础--8086汇编指令.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微处理器指令系统 概述:一台计算机所能识别和执行的全部指令,称为该机器的指令系统,又称指令集。 一般指令分为:“告诉计算机干什么”的指令操作助记符,“指令操作对象”即操作数。 寻址方式 概述:指定操作数或操作数存放位置的方法称为寻址方式。 8086的寻址方式有三类:立即寻址、寄存器寻址和存储器寻址;其中存储器寻址又分为 直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址 五种。 立即寻址:操作数直接写在指令中的寻址方式,因为这种操作数称为立即数,所以这种寻址方式也称为立即数寻址方式。立即数可以使 8位;16位;32位; 例如:MOV AX,6789H ADD AX,1234H 寄存器寻址:指令所要的操作数事先已存储在某寄存器中,或把目标操作数存入寄存器中,或者源操作数和目标操作数都是寄存器。 例如:MOV AX,BX MOV AX,6789H(源操作数是立即数寻址,目的操作数是寄存器寻址) 存储器寻址:在存储器中查找操作数。 1·直接寻址方式:指令所要的操作数存放在内存中,在指令中直接给出操作数的段地址和有效地址,从而使8086的BIU部件能够利用地址加法器得到实际物理地址。 例如:MOV AX,DS:[2000H](mov 默认DS为存放数据的段,所以这个指令等价于 MOV AX,[2000H]) MOV AX,ES:[2000H] 2·寄存器间接寻址方式:操作数在存储器中,操作数的有效地址用SI,DI,BX,BP 4个集训期之一来指定。若不使用段前缀,则规定若有效地址用 SI,DI,BX等之一来指定,则默认的段寄存器是DS,若有效地址用BP来指定,则其默认的段寄存器位SS。 例如:MOV BX,[DI] 3·寄存器相对寻址方式:操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI、DI)的内容和指令中的8/16位偏移量之和。 例如:MOV BX,[SI+100H] 4·基址加变址寻址方式:操作数有效地址是一个基址寄存器(BX,BP)和一个变址寄存器(SI,DI)的内容之和。(不要混淆基址寄存器和变址寄存器) 例如:MOV BX,[BX,DI] 5·相对基址加变址寻址方式:操作数有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8/16位偏移量之和。 例如:MOV AX, [BX+DI+1234H] 32位地址的寻址方式 在用16位寄存器来访问存储单元时,只能使用基地址寄存器(BX和BP)和变址寄存器(SI和DI)来作为地址偏移量的一部分,但在32位寄存器寻址时,不存在上述限制,所有32位寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP)都可以是地址偏移量的一个组成部分。 8086指令 概述:指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。 分类:数据传送指令,标志位操作指令,算术运算指令,逻辑运算指令,移位操作指令,比较运算指令,循环指令,转移指令,条件设置字节指令,字符串操作指令,ASCII-BCD码运算调整指令,处理器指令。 基本格式:指令助记符 [操作数1[,操作数2[,操作数3]]] (指令助记符体现该指令的功能,它对应一条二进制编码的机器指令)。 数据传送指令: 1·MOV:传送指令,这是使用最频繁的指令,它相对于高级语言的赋值语句。 格式:MOV Reg/Mem,Reg/Mem/Imm (Reg---Register 寄存器,Mem---Memory 存储器,Imm---Immediate 立即数) 使用规定:1·两个操作数的数据类型要相同;2·两个操作数不能同时为段寄存器;3·代码段寄存器CS不能为目的操作数,但可作为源操作数;4·立即数不能直接传给段寄存器;5·立即数不能作为目的操作数;6·指令指针IP,不能作为MOV指令的操作数;7·两个操作数不能同时为存储单元。 2·XCHG:交换指令,是两个寄存器之间,寄存器和内存变量之间进行数据交换的指令,两个操作数的数据类型要相同。 格式:XCHG Reg/Mem,Reg/Mem 3·LEA:取有效地址指令,是把一个内存变量的有效地址送给指定的寄存器。 格式:LEA Reg,Mem 4·LDS/LES/LFS/LGS/LSS:装载段寄存器指令,把内存中地址的“低字”传送给指令中指定的16位寄存器,把随后的“高字”传给相应的寄存器(DS、ES、FS、GS、SS); 格式:LDS/LES/LFS/LGS/LSS Reg,Mem 5·PUSH/POP:堆栈操作指令,堆栈是一个重要的数据结构,具有“先进后出”的特点,通常用来保存程序的返回地址。 PUSH:进栈指令; 格式:PUSH R

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档