有关MOV AX

来源:百度知道 编辑:UC知道 时间:2024/06/01 04:26:30
MOV AX, 9 GT 7=?
逻辑值为一
那么就意味着二进制为一
为什么答案不是0000 0000 0000 0001(1H)
而是1111 1111 1111 1111(FFFFH)?
重点是
为什么要全部位都置一
而不是只在最后一位置一?

9 GT 7 的逻辑值确实为1,但这个1是二进制位的1,是一个标志位。当把它赋给某个寄存器或存储单元的时候,是用这个二进制位去填充目的操作数的所有位,机器码设计者就是这么设计的,已经成为公认的标准。

这与高级语言中的逻辑值“真”=-1、“假”=0是一个道理。

逻辑值只有真和假两种情况,在汇编语言中真用-1的补码(-1的补码为全1)来表示,假用0表示。
题中指令MOV AX, 9 GT 7,因为AX为16位二进制数,所以真就用16个1表示,即AX=0FFFFH。
如果指令MOV AL, 9 GT 7,则因为AL为8位二进制所,所以真就用8个1表示,即AL=0FFH。