对LDR和STR的理解? [英] Understanding of LDR and STR?
本文介绍了对LDR和STR的理解?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的是ARMSim,我猜它是一个ARM模拟器,我有这个演示程序。它基本上读取一个文本文件并打印文本文件中的整数(只打印第一行)。
Start:
@Open file for input.
LDR R0, =InputFileName
MOV R1, #0
SWI SWI_Open
BCS FileError
@Save file handle to memory.
LDR R1, =InputFileHandle
STR R0, [R1]
@Read integers.
LDR R0, =InputFileHandle
LDR R0, [R0]
SWI SWI_RdInt
@Print to ARMSIM console.
MOV R1, R0
MOV R0, #Stdout
SWI SWI_PrInt
BAL End
FileError:
MOV R0, #Stdout
LDR R1, =FileErrorMess
SWI SWI_PrStr
BAL Quit
End:
SWI SWI_Exit
.data
.align
InputFileHandle: .skip 4
InputFileName: .asciz "integers.txt"
FileErrorMess: .asciz "Can't open file."
它运行得很好,但是我不太理解LDR或STR指令是如何工作的。尤其是看起来像LDR R0,[R0]或STR R0,[R1]的那些。有没有人能弄清楚这些东西是如何工作的?
推荐答案
ldr和str指令使用后索引寻址来更新其地址寄存器。
STR指令将单词存储到内存。
LDR指令从内存加载单词。
这篇关于对LDR和STR的理解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文