本文介绍了获得一个用户输入ARM汇编语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是新来的ARM汇编语言。我有一个项目。我的问题是如何从用户臂组件(在QEMU仿真器)的输入?只是尝试这样做,但看起来像它不会工作:/
#Scanf 。文本
。全球主要主要:
子SP,SP,#4
STR LR,[SP,#0]#提示符为输入
LDR R0,=提示
BL的printf#Scanf
LDR R0,=格式
子SP,SP,#4
MOV R1,SP
BL scanf函数
LDR R2,[SP,#0]
加SP,SP,#4#打印消息
MOV R1,R2
BL的printf LDR LR,[SP,#0]
加SP,SP,#4
MOV PC,LR 。数据格式:
.asciz您的号码为%d \\ n提示:
.asciz输入一个数字\\ n
解决方案
您还没有定义什么样的它不会工作的意思,但我会假设,显示的号码由最后的printf
不匹配你输入的是什么。
这是你传递您的号码为%d \\ n事实上
作为格式字符串 scanf函数
是一个问题,因为它包含了一堆非格式说明字符。从:
What you should be doing is declare another string that contains only a format specifier, i.e. something like this:
inputformat: .asciz "%d"
And pass that string to scanf
instead of format
.
这篇关于获得一个用户输入ARM汇编语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!