【发布时间】:2020-04-13 21:17:31
【问题描述】:
我是 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)尝试了不同的配置,但没有任何效果。我的问题是如何将此值存储到内存中。
感谢您的帮助和回答。
【问题讨论】:
标签: assembly raspberry-pi arm raspberry-pi3 zero-extension