寻址方式的分辨

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言的寻址方式就是寻找操作数所在地址的方法,有七种:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址。

1、立即寻址:操作数在指令中,如:MOV AL,12H(源操作数)

2、寄存器寻址:操作数在指令中的寄存器中,如:MOV AL,BH(源操作数)

3、直接寻址:操作数所在存储器的有效地址在指令中,如:MOV AL,[12H](源操作数)

4、寄存器间接寻址:操作数所在存储器的有效地址在指令中的寄存器中,如:MOV AL,[BX](源操作数)

5、寄存器相对寻址:操作数所在存储器的有效地址为指令中的寄存器加位移量,如:MOV AL,[BX+12H]或MOV AL,DAVL[BP](源操作数)

6、基址变址寻址:操作数所在存储器的有效地址为指令中的基址寄存器加变址寄存器,如:MOV AL,[BX+SI]或MOV AL,[BX][SI](源操作数)

7、相对基址变址寻址:操作数所在存储器的有效地址为指令中的基址寄存器加变址寄存器,再加位移量,如:MOV AL,[BX+SI+12H]或MOV AL,DAVL[BX][SI](源操作数)。

MOV DAVL[BP],AX 中目的操作数是寄存器相对寻址,源操作数是寄存器寻址。

8086汇编寻址方式总结

寻址方式是汇编语言的重点和难点。请按如下思路学习:

1. 操作数可以存在什么地方?

⑴操作数存在于指令代码中,处理器译码时就立即获得了这个操作数,这就是立即(数)寻址方式。汇编指令中,这个立即数(操作数)以常量形式出现。

⑵操作数存在于处理器内部寄存器中,处理器从寄存器中获得这个操作数,这就是寄存器寻址方式。汇编指令中,这个寄存器操作数以寄存器名形式出现。

⑶操作数存在于主存中,处理器从主存单元获得这个操作数,这就是存储器寻址方式。汇编指令中,这个存储器操作数以主存地址形式出现。

2. 8086/8088处理器的主存地址在程序设计时采用逻辑地址。逻辑地址分成段地址和偏移地址两部分。

3. 存储器寻址方式表达存储器地址时,段地址在默认的或段超越前缀指令指定的段寄存器中,偏移地址被称为有效地址EA(Effective Address)。有效地址用中括号括起来。

4. 有多种获得偏移地址的方法,所以存储器寻址方式又分成多种寻址方式。

⑴有效地址直接给出,存在于指令代码中,就是直接寻址方式。

⑵有效地址存在寄存器中,就是通过寄存器的间接寻址方式。

⑶有效地址是两部分的和,一部分在寄存器中,另一部分直接给出(称为位移量),这就是寄存器相对寻址方式。

⑷有效地址是两部分的和,一部分在基址寄存器中(8086是B

X和BP),另一部分在变址寄存器中(8086是SI和DI),这就是基址

变址寻址方式。

⑸有效地址是三部分的和,第一部分在基址寄存器中(8086是BX和BP),第二部分在变址寄存器中(8086是SI和DI),第三部分直接给出(称为位移量),这就是相对基址变址寻址方式。

5. 区别各种寻址方式时,注意各自的特点。

只有一个常量,是立即(数)寻址方式;

只有一个寄存器名,是寄存器寻址方式;

其他则是存储器寻址方式。

用中括号括起一个常量是直接寻址方式;

用中括号括起一个寄存器名,是寄存器间接寻址方式用中括号括起一个寄存器名和一个常量是寄存器相对寻址方式;

6. 汇编语句中,还有其他形式出现,需要理解相应操作符才能做出正确判断。

例如,

直接写出变量名实际上是直接寻址方式;

变量名加减一个常量还是直接寻址方式;

变量名和一个寄存器则是寄存器相对寻址方式;

利用offset后跟一个变量名则是立即数寻址方式。

相关文档
最新文档