我是 ARM 和汇编程序的新手。我试图编写一个简单的程序来将值从寄存器存储到内存。
string:
.ascii "%d\012\000"
.align 2
var1:
.word 0
.align 4
.text
.global main
main:
push {ip, lr}
ldr r1, adr_var1
ldrb r1, [r1]
mov r1, #370
uxtb r3, r1
ldr r1, adr_var1
strb r3, [r1]
ldr r0, adr_string
mov r1, r3
bl printf
mov r1, #0
mov r7, #1
pop {ip, pc}
adr_var1:
.word var1
adr_string:
.word string
将数据写入内存时会出现问题。当它尝试写入值 370(十六进制:0x172)时,仅保存 0x72。STR 似乎只传输 8 个数据位。我用 STR 指令(例如,STRB)尝试了不同的配置,但没有任何效果。我的问题是如何将此值存储到内存中。
感谢您的任何帮助和回答。