对LDR和STR的理解? [英] Understanding of LDR and STR?

查看:25
本文介绍了对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指令从内存加载单词。

Read more

这篇关于对LDR和STR的理解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆