今天看书有几个问题没懂``来请教``
1。书上说,双操作数的指令(比如mov)必有一个寄存器操作数,但是书上又说可以用立即数对存储器附值。mov mem,imm;两个操作数都不是寄存器啊?
2。+0,-0的八位机器数:原码分别是:00000000,10000000
反码是:00000000,11111111这个我能理解,负数的补码不是反码除符号位以外的取反加一吗?那么-0应该是:110000000(一共9位根本不能用八为机器数表示)啊。为什么书上说 -0 的补码是00000000(8位)呢?还有-128的反码是101111111(因为是9位所以8位机器码不能表示-128的反码),那么补码就改是反码加一等于
11000000(同样是9位啊)为什么书上是等于10000000(8位)。
3。mov ax,[ax,bx]
上面那条指令对源操作数是什么寻址方式?
4。常量占内存吗?
5.mov al,c0h
add al,al
执行上面的语句后al=80h 但是c0h+c0h本该等于180h
那么对于标志位的影响是按80h来影响还是180h ??
[解决办法]
第一题没有抵触啊!规定是两个操作数不能都为内存变量,但立即数不是内存变量啊。