如何在 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
我正在编写一个 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