gpt4 book ai didi

c - LC3/LC4 硬件系统中的有符号与无符号比较

转载 作者:行者123 更新时间:2023-11-30 16:31:23 29 4
gpt4 key购买 nike

我正在创建一个 C 程序,从头到尾模拟一个虚构的 LC4 硬件系统(与众所周知的 LC3 系统略有不同的版本。我目前正在使用算术逻辑多路复用器处理的比较指令。它们列举如下:

CMP Rs Rt: NZP = signed-CC(Rs-Rt) 0010sss00----ttt
CMPU Rs Rt: NZP = unsigned-CC(Rs-Rt) 0010sss01----ttt
CMPI Rs IMM7: NZP = signed-CC(Rs-SEXT(IMM7)) 0010sss10IIIIIII
CMPIU Rs UIMM7: NZP = unsigned-CC(Rs-UIMM7)

我了解比较两个寄存器中的值与比较寄存器中的一个值和从 LC4 指令提取的另一个值之间的区别(例如 CMP 与 CMPI)。有人可以向我准确解释进行有符号与无符号比较(CMP 与 CMPU 或 CMPI 与 CMPIU)的含义吗?在什么情况下您会这样做,最好举例说明?谢谢!

最佳答案

指针或(通常)索引是无符号的。比较两个指针时,这些值不应被解释为二进制补码值。否则,一旦指针超过单词最大值一半的阈值,它将显示为负值,并且在比较中看起来会小于该阈值之前的指针。

另一个例子是无符号定时器或计数器。我们不希望高于单词最大值一半阈值的值看起来小于该阈值之前的值。

关于c - LC3/LC4 硬件系统中的有符号与无符号比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50658223/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com