我知道这是一个非常简单的问题,但我找不到答案.x86汇编中的寄存器(eax,ebx edx等)是否已签名或未签名?如果它们是默认签名的,那么计算机如何知道将寄存器视为无符号的,例如我们将变量声明为unsigned int?谢谢!
CPU不知道也不关心.相反,Flags寄存器中的位是在某些操作上设置的,程序对这些标志的作用取决于源代码告诉它的内容.
例如,
mov eax, 0FFFFFFFFh
test eax, eax
js isNegative
与
mov eax, 0FFFFFFFFh
test eax, eax
jb isNegative
第一个跳转到'IsNegative'因为test在这里设置了Sign Flag.第二个没有,因为test将Carry Flag重置为0,jb只有在跳转时才跳转1.
| 归档时间: | 
 | 
| 查看次数: | 7174 次 | 
| 最近记录: |