- 1、本文档共128页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
寻址方式与指令系统PPT
第三章 寻址方式与指令系统;8086/8088指令系统的寻址方式
所谓寻址方式就是寻找操作数存放地址(位置)的方法。在8086/8088系统中操作数存放的位置有以下4种:
⑴ 操作数包含在指令字节中。即指令格式中操作数部分就是操作数本身。这种操作数叫立即数操作数。
⑵ 操作数存放在CPU的某个内部寄存器中。这种操作数叫寄存器操作数。
⑶ 操作数在内存的数据区中。这种操作数叫存储器操作数。 ;⑷ 操作数来自或送到I/O端口。这种操作数叫I/O操作数。
在8086/8088系统中,操作数又可分为两大类:数据操作数和地址操作数。因此,寻址方式也分为数据寻址方式和地址寻址方式两大类。
1. 数据的寻址方式
对于数据操作数,有四种形式:
① 无操作数
② 单操作数:可以是源操作数,也可以是目的操作数。;③ 双操作数:一个是源操作数,一个是目的操作数。
④ 隐含操作数:可能隐含一个操作数(源或目的),也可能隐含两个操作数。
源操作数:在操作过程中其值不变的操作数。(可以提供数据的操作数)
目的操作数:在操作后可被操作结果代替的操作数。(可以接收数据的操作数)
1)立即数寻址方式
例如:MOV AL, 80H
MOV AX, 1234H;AL; 有效地址可以由以下三种地址分量组成:
● 位移量:它是存放在指令中的一个8位或16位的带符号数。
● 基 址:它是存放在基址寄存器BX或BP中的内容。
● 变 址:它是存放在变址寄存器SI或DI中的内容。
对于某条具体指令,这三个地址分量可有不同的组合。正是因为这三种地址分量有不同的组合,才使得对存储器操作数的寻址产生了若干种不同的方式。;⑴ 直接寻址方式
MOV AL, [1064H];;⑶ 寄存器相对寻址;⑷ 基址加变址寻址方式
MOV AH, [BP][SI];⑸ 基址加变址相对寻址
MOV [BX+DI+1234H], AH;4)I/O端口寻址方式
⑴ 直接端口寻址方式
IN AL, 21H;⑵ 间接端口寻址方式
OUT DX, AL;;;;2.地址的寻址方式
地址的寻址方式其时是程序转移地址的寻址方式,也就是找出程序转移的地址号,而不是操作数。
转移地址可以在段内(称段内转移),也可以跨段(称段间转移)。寻求转移地址的方法有以下四种:
1)段内直接寻址
转移的地址是当前IP内容和指令规定的8位或16位位移量之和。
当位移量是8位时,称为短程转移;位移量是16位时称为近程转移。;这种寻址方式适用于条件转移或无条件转移类指令。但条件转移只有8位位移量的短程转移。; 例:JMP SHORT ALPHA
本例指令是一无条件转移指令,指令采用了段内直接寻址方式。符号地址ALPHA代表位移量。设ALPHA=20H,开始执行该指令时,(CS)=1500H,(IP)=3200H,于是该指令在存储器中的起始地址为:
15000H+3200H=18200H;2)段内间接寻址方式
程序转移的地址存放在寄存器或存储器单元中。指令执行使用寄存器或存储器单元的内容来更新IP的内容。; 例:JMP WORD PTR BETA
本指令是无条件转移指令,可使程序转移到根据BETA指示的内存单元中取出的偏移地址开始执行指令。指令采用的是段内间接寻址方式。指令的操作数地址是一个符号地址BETA,所以可用数据寻址方式中的直接寻址方式得到存储转移偏移地址的内存单元地址。设当前(CS)=0120H,(IP)=2400H,BETA=0100H,(DS)=2000H,(20100H)=00H,(20101H)=27H,则存储转移偏移地址的内存单元地址为:
(DS)左移4位+BETA=20000H+0100H
=20100H
又(20100H)=00H,(20101H)=27H,即转移物理地址为:
PA=01200H+2700H=03900H
执行完这条指令后,IP的内容变成2700H,CPU将转移到存储单元03900H去执行程序。;3)段间直接寻址方式
这种寻址方式是指令码中直接给出16位的段地址和16位的偏移地址用来更新当前的CS和IP内容。;OP;4)段间间接寻址方式
这种寻址方式是由指令码的寻址方式字节求出存放转移地址的连续两个字的地址。其低位字地址单元中存放的是偏移地址,高位字地址单元中存放的是转移段地址。; 例:JMP DWORD PTR DELTA[BX]
本例指令是无条件转移指令,采用段间间接寻址方式。
设当前(CS)=1000H,(IP)=010
文档评论(0)