我需要解决下面的问题,但我不理解解决方案所需的概念。
让我们考虑下面的双字字符串:B234*A68C*h,*52B4*78C8h,*1AB3*C470h,F9DC*198B6**h。要求:
1) 在屏幕上打印每个双字中具有最小值的单词等级(考虑它们无符号)
答案是"2112"(粗体字具有最小值)
2) 在屏幕上打印这些单词中具有最大值的字节的总和(考虑到它们签名)
3) 在屏幕上打印双字的严格否定*低位字*
如何区分有符号和无符号?否定的下位词到底是什么意思?这个值是否不符合区间[0255]?
字是16位。双字是32位,可以认为是由两个单独的字组成。
在双字中,低位字是低位字(位于低位内存地址的字,因为x86是小端序)。高位字是高位字(位于较高内存地址的字)。
寄存器不区分有符号或无符号 无符号指令,将寄存器/内存中的值视为无符号值。示例: 有符号指令,将寄存器/内存中的值视为有符号值。示例: 不可知论指令,其行为方式与值被解释为有符号还是无符号无关。示例: x86指令的任何引用页/文档都应该指定指令是签名的还是未签名的。如果没有指定,则说明该指令是不可知的。 希望这有助于澄清一些事情!ja
(如果在上面,则跳转)。jg
(如果大于则跳转)。add
(有符号加法和无符号加法是相同的,因为这是二补算术的一个属性)。