Assembly 将程序集寄存器视为无符号寄存器与有符号寄存器

Assembly 将程序集寄存器视为无符号寄存器与有符号寄存器,assembly,bit,cpu-registers,unsigned,signed,Assembly,Bit,Cpu Registers,Unsigned,Signed,所以我知道在汇编中,每个寄存器只包含一系列位。但是,这些位序列可以解释为有符号或无符号 有没有办法强制汇编程序将寄存器中的一系列位解释为无符号/有符号的?将全局无符号C变量加载到汇编寄存器后,所有寄存器最终都被解释为无符号量,但我需要将其解释为有符号量。您尚未指定CPU体系结构。但通常情况下,您会使用单独的说明。例如,在x86上,JB是“低于(未签名)时跳转”,而JL是“低于(签名)时跳转”。另一个好的副本:。我发现的大多数副本都是x86。我投了一个Z80一个;我见过一些MIPS,但在谷歌的第一

所以我知道在汇编中,每个寄存器只包含一系列位。但是,这些位序列可以解释为有符号或无符号


有没有办法强制汇编程序将寄存器中的一系列位解释为无符号/有符号的?将全局无符号C变量加载到汇编寄存器后,所有寄存器最终都被解释为无符号量,但我需要将其解释为有符号量。

您尚未指定CPU体系结构。但通常情况下,您会使用单独的说明。例如,在x86上,
JB
是“低于(未签名)时跳转”,而
JL
是“低于(签名)时跳转”。另一个好的副本:。我发现的大多数副本都是x86。我投了一个Z80一个;我见过一些MIPS,但在谷歌的第一页上没有出现。“所有的寄存器最终都被解释为未签名的量”——谁说的?调试器打印它们(十六进制),可能不一定是程序本身。调试器不是程序解释值的权威。授权是程序及其即将发布的指令。什么时候有符号与无符号有关系:将值从较小的位计数扩大到较大的位计数(例如,16位->32位);比较不等式关系的值时(例如,我意识到我正在编写的程序正在将位解释为有符号量,即使它们在gdb调试器中显示为无符号量。我的印象是,它们被解释为无符号量,这是因为在使用layout Reg时显示的方式。我之所以出错,是因为请勿使用适当的cqto/cwtl类型的指令集。