本文介绍了获得一个用户输入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汇编语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-12 12:13