论坛: 编程破解 标题: 请问CBW这个指令怎么用啊??? 复制本贴地址    
作者: mingren123 [mingren123]    论坛用户   登录
我在书上看到  最高有效为如果是0 那么 AH扩展为 00
如果最高有效为是1 那么AH 扩展为 0FFH 
0FFH 是255 啊
请问这是怎么扩展的 啊  如果我 在AL 赋值为5 那 CBW的结果是多少啊  那为大哥告诉我???


[此贴被 mingren123(mingren123) 在 04月12日14时25分 编辑过]


[此贴被 mingren123(mingren123) 在 04月12日14时26分 编辑过]

地主 发表时间: 05-04-12 14:25

回复: jhkdiy [jhkdiy]   版主   登录
CBW (convert byte to word)
意义是:将指令中的符号位扩展到AH寄存器中, 这样整数扩展的时候就保留了符号位了.
例如:
.data
  byteVal sbyte -65      ;9bh
.code
  mov al, byteVal        ;al=9bh
  cbw                    ;ax=ff9bh

换句话说, 9bh 和 ff9bh 都等于-65, 只是存储尺寸不同而已.


B1层 发表时间: 05-04-12 14:43

回复: mingren123 [mingren123]   论坛用户   登录
只是扩展符号为  0FFH  所以AH 就是 1111,1111  是这样吗????

B2层 发表时间: 05-04-12 15:16

回复: jhkdiy [jhkdiy]   版主   登录
对,只是扩展符号位。通常符号位就是最高位。

B3层 发表时间: 05-04-12 21:50

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号