我正在尝试学习LC-3装配,我正在查看以下示例:
.orig x3100
ADD R3, R0, #0 ;copy R0 into R3
AND R1, R1, #0 ;clear count
ADD R3, R3, #0 ;test for Neg
BRZP NEXT ;count if Neg
ADD R1, R1, #1
NEXT AND R2, R2, #0 ;check remaining 15 bits
ADD R2, R2, #-15
LOOP ADD R3, R3, R3 ;shift R3 left
BRZP AGAIN ;count if Neg
ADD R1, R1, #1
AGAIN ADD R2, R2, #1 ;loop until done
BRN LOOP
有几点我不太明白:
ADD R3, R3, #0 ;test for Neg
我不知道这是如何测试负值:我正在阅读它,因为它没有为R3增加任何内容,即它什么也没做。以下一行,我不太了解它对BRZP
做了什么。
我想将此示例更改为从整数列表中检查:
INTEGERS .fill 84
.fill -2
.fill -13
.fill 4
.fill -4
在上面,有三个负整数,因此在程序结束时计数(R1)将为3。我该怎么做?