计算列表中负数的出现次数

时间:2015-11-23 00:29:34

标签: assembly lc3

我正在尝试学习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。我该怎么做?

0 个答案:

没有答案