gpt4 book ai didi

assembly - 了解LDR和STR?

转载 作者:行者123 更新时间:2023-12-05 01:47:37 25 4
gpt4 key购买 nike

我正在使用 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] 的。谁能弄清楚这些是如何工作的?

最佳答案

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

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

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

Read more

关于assembly - 了解LDR和STR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23401542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com