汇编语言 : cbw

标签 assembly x86 division sign-extension

我不确定 cbw命令实际上可以。我有一段代码:

mov  ax,0FF0h
cbw
idiv ah

cbw后ax的值如何变化?

最佳答案

cbw指令将一个字节符号扩展为一个字。在这种情况下,它将采用 AL 的符号位(恰好是 1)并将其复制到 AH 的每一位中.

这意味着 AX 的二进制补码值将相同,但二进制表示将不同。
AX的值后 cbw指令将是 FFF0h (一个 16 位的 -16 值,就像 AL 最初是一个 8 位的 -16)

关于汇编语言 : cbw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7961711/

相关文章:

assembly - 使用乘法执行整数除法

c - 伸缩极限输出与预期输出不同

math - 测试整数被 11 的整除性

assembly - x86 汇编初学者 : Program doesn't loop correctly?

c - 第三阶段二元炸弹组装

java - 理解内存障碍

linux - 在汇编中将用户输入的十六进制转换为十进制

assembly - GNU 链接器 : file not recognized

macos - 在 mac os 上的 nasm 中编译汇编程序

c++ - 是否有任何可用的操作/围栏比发布弱但仍提供同步语义?