首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解LDR和STR?

了解LDR和STR?
EN

Stack Overflow用户
提问于 2014-05-01 03:20:47
回答 1查看 30.6K关注 0票数 3

我使用的是ARMSim,我猜这是一个ARM模拟器,我有这个演示程序。它基本上读取一个文本文件并从文本文件中打印整数(只有第一行)。

代码语言:javascript
复制
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的。有人能弄清楚这些东西是怎么工作的吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-01 03:36:47

LDRSTR指令使用索引后的地址来更新它们的地址寄存器。

STR指令将一个单词存储到内存中。

LDR指令从内存中加载一个单词。

阅读更多

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23401542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档