王朝百科
分享
 
 
 

寻址方式

王朝百科·作者佚名  2010-02-06  
宽屏版  字体: |||超大  

寻址方式就是寻找操作数或操作数地址的方式。8086提供了与操作数有关和与I/O端口地址有关的两类寻址方式。与操作数有关的寻址方式有七种,分别是立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址加变址寻址,相对基址加变址寻址;与I/0端口有关的寻址方式有直接端口寻址和间接端口寻址方式。

一、与操作数有关的寻址方式

1.立即数寻址方式

操作数直接存放在指令中,紧跟在操作码之后的寻址方式就是立即数寻址方式。

例如:

MOV AX,2345H

MOV AL,0EH

2.寄存器寻址

操作数存放在CPU的内存寄存器时,可在指令中指出寄存器名,这就是寄存器寻址方式。

例如:

MOV AX,BX

ADD AX,BX

3.存储器寻址方式

8086指令系统提供了以下5种针对存储器的寻址方式。

直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址和相对基址加变址寻址。用于说明操作数所在存储单元的地址。由于总线接口单元BIU能根据需要自动引用段寄存器得到段值,所以这五种方式也就是确定存放操作数的存储单元有效地址EA的方法。有效地址EA是一个16位的无符号数,在利用这五种方法计算有效地址时,所得的结果认为是一个无符号数。

(1).直接寻址:

指令中给出的地址码即为操作数的有效地址,就是直接寻址方式。

例子: MOV AX,[2000H]

MOV AX,2000H -->2000H为存放操作数单元号的符号地址

上面两者是不等效的

(2).寄存器间接寻址方式:

你就想成:你已经站在你要找的"门户号(家)"的"单元号",你要找到它,必须知道它在当前"单元号"几楼.假如它在6楼,那你就上到6楼就OK了!!注意,最高只有16楼,因为什么呢?那就用DEBUG的D命令看看呀,慢慢数哦,呵呵!!

例子: MOV AX,[BX]

计算公式: 物理地址=16d*(DS)+(BX)

物理地址=16d*(DS)+(SI)

物理地址=16d*(DS)+(DI)

物理地址=16d*(SS)+(BP)

(3).寄存器相对寻址方式:

你就想成:你要找的"门户号(家)"其实就在你家的楼上或者楼下,你要找到它,就 必须知道它在你楼上几楼,或者在楼下几楼!就OK了!

例子: MOV AX,COUNT[SI]

MOV AX,[COUNT+SI]

其中 COUNT为位移量的符号地址

计算公式: 物理地址=16d*(DS)+(BX)+8位位移量

物理地址=16d*(SI)+(BX)+16位位移量

物理地址=16d*(DI)+(BX)+16位位移量

物理地址=16d*(SS)+(BP)+8位偏移量

(4).基址变址寻址方式:

你就想成:你要找的"门户号(家)"是跟住在同一栋楼的不同"单元号",你要找到它,就必须知道它是该栋的哪个"单元号",并且住在几楼!那样你就可以找到它了 !

例子: MOV AX,[BX][DI]

MOV AX,[BX+DI]

计算公式: 物理地址=16d*(DS)+(BX)+(SI)

物理地址=16d*(DS)+(BX)+(DI)

物理地址=16d*(SS)+(BP)+(SI)

物理地址=16d*(SS)+(BP)+(DI)

(5).相对基址变址寻址方式:

你就想成:你要找的"门户号(家)"是跟住在同一栋楼的不同"单元号",它比你高几层楼或者低几层楼,然后用的你目前的楼数+/-就可以得出你要找的住在几楼了!

例子: MOV AX,MASK[BX][SI]

MOV AX,MASK[BX+SI]

MOV AX,[MASK+BX+SI]

以上三个例子是等效的!!

计算公式: 物理地址=16d*(DS)+(BX)+(SI)+8位位移量

物理地址=16d*(DS)+(BX)+(DI)+16位位移量

物理地址=16d*(SS)+(BP)+(SI)+8位位移量

物理地址=16d*(SS)+(BP)+(DI)+16位位移量

上述共计七种操作数寻址方式,与80C51单片机的完全一致。

二、与I/0端口有关的寻址方式

8086微处理器采用独立编址的I/0端口,有专门的输入指令IN和输出指令OUT,寻址方式有以下两种。

1.直接端口寻址

直接端口寻址是在指令中直接给出要访问的端口地址,一般采用2位十六进制数表示,也可以是符号,访问的端口范围0~255.

例如:

IN AL,20H

表示从I/0端口地址为20H的端口中取数据送入AL寄存器中。

2.间接端口寻址

若访问的端口地址大于255时,就要用间接寻址方式。可以访问的端口范围0~65535.

例如:

MOV DX,356H ;将端口地址356H送入DX寄存器

OUT DX,AL ;将AL中的内容输出到DX指定的端口

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有