- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)