寄存器各flag理解 第0位 CF(carry flag):记录有无进位,主要是记录超过寄存器字长的虚拟一位,当虚拟位是1的话,CF = 1;虚拟位为0的的话,CF = 0;这里有一个问题我郁闷了两天翻《计组》中的运算才搞明白,虽然机器码都是二进制码,但是存储的方式是补码,负数补码是2^(n+1) + x,【n:整数位数, x:真值】所以说位数比单纯的取反加1多一位,所以计算得出... 懒人 1579℃ 0评论 0喜欢
嵌入汇编[8] – 8 位寄存器、16 位寄存器与 32 位寄存器 王爽老师书上说, CPU 内部主要就是寄存器. 现在我们在 32 位的系统下工作, 当然主要使用的是 32 位寄存器; 那它和 8 位、16 位的寄存器又有什么关系呢? EAX 是 32 位的, 也就是 4 个字节大小; 它的低两位就是 AX; AX 是 16 位的, 又分 2 个字节; 它的高字节是 AH、低字节是 AL; AH 与 AL 是 8 位的.... 懒人 1307℃ 0评论 0喜欢
嵌入汇编[3] – 第一个 Delphi 与汇编的例子 前面知道了一个汇编的赋值指令(MOV), 再了解一个加法指令(ADD), 就可以做个例子了. 譬如: ADD AX,BX; 这相当于 Delphi 中的 AX := AX + BX; 另外提前来个列表 – Delphi 可以用汇编管理以下寄存器: 32 位寄存器: EAX EBX ECX EDX ESP EBP ESI EDI 16 位寄存器: ... 懒人 1055℃ 0评论 0喜欢
学 Win32 汇编[26] – 加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP ;INC(Increment): 加一 ;DEC(Decrement): 减一 ;NEG(Negate): 求补(求反) ;ADD(Add): 加 ;ADC(Add Carry): 带进位加 ;SUB(Subtract): 减 ;SBB(Subtract With Borrow): 带进位减 ;CMP(Compare): ... 懒人 1209℃ 0评论 0喜欢