汇编语言入门(三)

汇编语言入门(三)汇编语言入门(三)

欢迎大家来到IT世界,在知识的湖畔探索吧!

汇编指令由 操作码字段 和 操作数字段 构成。对于双操作指令,第一个操作数称为目的操作数,表示操作后的结果;第二个操作数称为源操作数,表示来源操作数。两者以逗号分隔。如:

汇编语言入门(三)

所谓寻址方式,即指令中提供操作数或操作数地址的方式。通俗地说就是寻找操作数地址的方法。寻址方式的数量代表了微机系统对存储器管理能力的强弱,合理地使用寻址方式可以扩大访存空间,缩短指令长度,满足各种程序设计需要。

与数据有关的寻址方式划分为三类:立即寻址方式,寄存器寻址方式,存储器寻址方式。

要求掌握下列七种与数据有关的寻址方式。其中后五种属于存储器寻址方式。

  • 立即寻址方式(Immediate addressing)
  • 寄存器寻址方式(Register addressing)
  • 直接寻址方式(Direct addressing)
  • 寄存器间接寻址方式(Register indirect addressing)
  • 寄存器相对寻址方式(Register relative addressing)
  • 基址变址寻址方式(Based indexed addressing)
  • 相对基址变址寻址方式(Relative based indexed addressing)

立即寻址在 DEBUG 下执行:

-A
MOV AX,3060
MOV AL,5
MOV BL,FF
MOV BX,A46D 
MOV CX,17

欢迎大家来到IT世界,在知识的湖畔探索吧!

在寄存器寻址方式中,操作数在寄存器中,在指令中指定寄存器名即可。在 DEBUG 下执行:

-A

MOV AX,0

MOV BX,1234

MOV AX,BX

MOV CL,AH

MOV AX,4650

直接寻址方式操作数存放在内存中。操作数的偏移地址(也称为有效地址 EA)直接写在指令中。

(1)存储器读操作

MOV 指令可以实现 CPU 对存储器的读写。若传送指令的目的操作数是 CPU 的寄存器,源操作数是存储单元,就完成了对存储器的读操作。

例如:MOV AX,DS:[2000H] 表示该指令表示从数据段的 2000H 单元读出一个字送入 AX。

(2)存储器写操作

如果要实现 CPU 写内存操作,只要把 MOV 指令的目的操作数变为存储单元,源操作数为 CPU 的寄存器即可。

例如:MOV DS:[4000H],AX 将 AX 的值写入数据段的 4000H 单元。

在 DEBUG 下执行:

-A

MOV AX,DS:[2000]

MOV DS:[4000],

寄存器间接寻址操作数存放在内存中。

指令形式如:

欢迎大家来到IT世界,在知识的湖畔探索吧!MOV AX,[BX]

操作数的 EA 在基址寄存器 BX、BP 或变址寄存器 SI、DI 中,而操作数的段地址在数据段 DS 或堆栈段 SS 中。如果有效地址由 BX、SI、DI 指出,则默认为对应于数据段,而用 BP 指出则对应于堆栈段。

寄存器相对寻址方式

操作数存放在内存中。

指令形式如:

MOV AX,[BX+1200H]

操作数的 EA 是一个基址或变址寄存器的内容再加上 8 位或 16 位位移量之和。也就是说在寄存器间接寻址的基础上,增加一个相对量(位移量)。这个位移量可以是立即数,也可以是符号地址。

基址变址寻址方式

操作数存放在内存中。

指令形式如:

欢迎大家来到IT世界,在知识的湖畔探索吧!MOV AX,[BX+SI]

操作数的 EA 为一个基址寄存器和一个变址寄存器的内容之和。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/30366.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信