[][]教材的:寄存器相对寻址方式的问题,麻烦大家给我看看我的理解对么?[][]

时间:2021-03-20 07:59:56
帮我看看我的理解对么一共4个问题:

我的理解,
   ① 8位扩展到16位是因为汇编计算方便么?因为都是以H结尾的(xxxxxH)所以要扩到16位么?
   ②[有效地址超过0FFFFH,则取其64K的模,]从这句话看来因为是0FFFFH,H前面有5个数所以是32位机,
那既然是32位,为什么要扩到64呢?
   ③为什么是0ffffH 而不是fffffH呢?
   ④64K的模是什么意思?
   ⑤ 64K是怎么算出来的?
--------
指令中给出的8位/16位偏移量用补码表示。在计算有效地址时, 如果偏移量是8位,则进行符号扩展成16位。当所得的有效地址 超过0FFFFH,则取其64K的模。
-------
先谢谢大家啦

5 个解决方案

#1


8位是标准
1<<16是64K
64k-1是0ffffH

#2


来顶一下

#3


建议你找一本数字电路之类的书,先从二进制、十进制、十六进制的互相转换、正负数的表示方法等基本概念学起,这些基础没有,学习汇编确实很难。

#4


!@#$%(!@#$%^&*(

#5


-------- 
指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。当所得的有效地址超过0FFFFH,则取其64K的模。 
------- 
当所得的有效地址超过0FFFFH,则取其64K的模。
这句我懂,是说越界循环

在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。
这句我也不明白,我怎么在书上就没看到这句呢?
既然是寄存器相对寻址,当然有BX,BP,SI,DI其中一个参与寻址,自然是16位了,难道说:[bl+80H].可以这样吗?或者说:mov si,0   mov ax,[si+80H] 这算偏移量是8位吗?
期待那位大侠能举个寄存器相对寻址中偏依量是8位的例子...

对这句我确实有点搞不懂...和LZ一样期待高人点教!

#1


8位是标准
1<<16是64K
64k-1是0ffffH

#2


来顶一下

#3


建议你找一本数字电路之类的书,先从二进制、十进制、十六进制的互相转换、正负数的表示方法等基本概念学起,这些基础没有,学习汇编确实很难。

#4


!@#$%(!@#$%^&*(

#5


-------- 
指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。当所得的有效地址超过0FFFFH,则取其64K的模。 
------- 
当所得的有效地址超过0FFFFH,则取其64K的模。
这句我懂,是说越界循环

在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。
这句我也不明白,我怎么在书上就没看到这句呢?
既然是寄存器相对寻址,当然有BX,BP,SI,DI其中一个参与寻址,自然是16位了,难道说:[bl+80H].可以这样吗?或者说:mov si,0   mov ax,[si+80H] 这算偏移量是8位吗?
期待那位大侠能举个寄存器相对寻址中偏依量是8位的例子...

对这句我确实有点搞不懂...和LZ一样期待高人点教!