一个数的2的补码可以通过取数加1得到。因此,假设值A和B在R0和R1中,那么三条指令的哪个序列执行"A减B“并将结果写入R2?
这是本书使用的一个概述LC-3 ISA的例子。
第一行只是为了更好地解释而对二进制文件进行编号。NOT (操作码= 1001),ADD (操作码= 0001)。操作码位于15:12。位11:9指定目标寄存器。位8:6指定源寄存器。位5指定指令是使用立即寻址模式(如果位5= 1)还是使用寄存器寻址模式(如果位5= 0)。使用NOT (操作码= 1001)时,位5:0必须包含全1。因此,下面的三个比特码表示文本中给出的答案,
“计算机系统入门:从比特和门到c语言及更高层次”
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
| | | | | | | | | | | | | | | |
1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1
--NOT----- --R1-- --R1- -----------
0 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1
--ADD----- --R2-- --R1- - ----1----
0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0
--ADD----- --R2-- --R0- ----- -R2--这个序列还会产生什么令人不快的结果?如何才能轻松避免这种情况呢?
如果不是很清楚,很抱歉。关于这个问题,请随时向我询问任何其他信息。
https://stackoverflow.com/questions/44321365
复制相似问题