我的理解,
① 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
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一样期待高人点教!
指令中给出的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
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一样期待高人点教!
指令中给出的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一样期待高人点教!