【发布时间】:2018-06-02 15:06:02
【问题描述】:
我正在创建一个 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)的含义,在什么情况下您会这样做,最好举个例子?谢谢!
【问题讨论】: