如何在 lc3 中增加字符串中的字母?

How to increment a letter in string in lc3?

我正在编写一个 LC3 程序,该程序会在程序之后递增存储在内存中的三字母单词的每个字母。 'a' 变为 'd','n' 变为 'q','z' 变为 'c',等等

我将其用作 LC3 Assembly参考

到目前为止,这是我的代码

.orig x3000
ADD R1, R1, #3 
LEA R2, STRING  
HALT
STRING  .STRINGZ "anz"    
.END

我能够从我的参考资料中弄清楚如何在 LC3 中声明一串字符。但是,有没有人知道如何进行实际的递增,或者有任何我可以用来弄清楚如何做的参考资料?

使用 while 循环,我能够让它递增字符串的每个字符,直到找到空值。我没有将它编码为循环(z 变成 c),但这应该让你开始。

;tells simulator where to put my code in memory(starting location). PC is set to thsi address at start up
.orig x3000

MAIN
    AND R1, R1, #0      ; clear our loop counter

    WHILE_LOOP
        LEA R2, STRING      ; load the memory location of the first char into R1
        ADD R2, R2, R1      ; Add our counter to str memory location. R2 = mem[R1 + R2]
        LDR R3, R2, #0      ; Loads the value stored in the memory location of R2
        BRz END_WHILE       ; If there is no char then exit loop

        ADD R3, R3, #3      ; change the char 
        STR R3, R2, #0      ; store the value in R3 back to the location in R2
        ADD R1, R1, #1      ; add one to our loop counter
        BR WHILE_LOOP       ; jump to the top of our loop
    END_WHILE

    HALT

; Stored Data
STRING      .STRINGZ "anz"    

.END