回 帖 发 新 帖 刷新版面

主题:[讨论]求助关于寻址的问题

这是我们汇编课本中的一个课后题

说是给定
(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?
(1)立即寻址
(2)直接寻址
(3)使用BX的寄存器寻址
(4)使用BX的间接寻址

请问这个题目到底要问什么啊,我实在是不太明白
如果是立即寻址的话,操作数是什么啊?
汇编真的是好难啊。。。。
请大家帮帮小弟

回复列表 (共8个回复)

沙发

(1)立即寻址
对于立即寻址方式,常用于给寄存器赋初值,这里立即寻址其操作数应为637DH。这有这里应该没有效地址。

(2)直接寻址
这里给出位移量D=7237H,因此偏移地址即有效地址EA=7237H。

(3)使用BX的寄存器寻址
在寄存器寻址方式中,操作数包含于CPU的内部寄存器之中。因此无有效地址。

(4)使用BX的间接寻址
1。在寄存器间接寻址方式中,这是一种基址加变址来定位操作数地址的方式,也就是说,操作数的有效地址是一个基址寄存器(BP或BX)和一个变址寄存器(SI或DI)的内容之和。因此这里的有效地址EA=2A9BH

板凳

[quote]

(4)使用BX的间接寻址
1。在寄存器间接寻址方式中,这是一种基址加变址来定位操作数地址的方式,也就是说,操作数的有效地址是一个基址寄存器(BP或BX)和一个变址寄存器(SI或DI)的内容之和。因此这里的有效地址EA=2A9BH
[/quote]
前面几个看了您的解释,我都明白了
这第4个,不是说,操作数的有效地址是一个基址寄存器(BP或BX)和一个变址寄存器(SI或DI),那这里的有效地址不应该是BX+SI吗,为什么等于SI呢?

3 楼


sorry!
对于第4个,是寄存器间接寻址方式,[color=FF0000][b]操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供,这里应该是由BX提供操作数的有效地址,所以有效地址EA=637DH![/b][/color]
我以上的分析错误的!

4 楼

[quote]
sorry!
对于第4个,是寄存器间接寻址方式,[color=FF0000][b]操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供,这里应该是由BX提供操作数的有效地址,所以有效地址EA=637DH![/b][/color]
我以上的分析错误的![/quote]
更糊涂了。。。。
既然

[color=FF0000]操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供[/color]
那为什么一定要是由BX提供,而不可以有SI提供呢?
这个也有优先级的问题吗?

5 楼

我觉得bx间接寻址,就是说寻的是bx中(及637DH)内存地址的值,因为题目问的是BX间接寻址,又没有说要加变址.所以可以不考虑si.

6 楼

对啊,因为题目已经明确由使用BX寄存器间接寻址!所以操作数的有效地址由BX寄存器提供。

7 楼

谢谢大家,我知道了

8 楼

看来还是应该重视课本的基础知识阿

我来回复

您尚未登录,请登录后再回复。点此登录或注册