assembly - ARM 程序集问题输出正确的字符串(或任何东西)
问题描述
我正在尝试将用户输入的数字与 100 进行比较,如果大于或等于 100,则打印“数字大于或等于”,如果小于 100,则相应地打印。它接受输入部分就好了,但程序在输入后立即结束。我对组装很陌生,这是我使用它的第二天,所以放轻松。谢谢你的帮助!
.global main
main:
prompt:
ldr r0, = numPrompt
bl printf
get_input:
ldr r0, =numInputPattern
sub sp, sp, #4
mov r1, sp
bl scanf
ldr r1, [sp, #0]
add sp, sp, #4
printinputasNum:
cmp r0, #100 @compare num in r0 to 100
bne Test1 @if not equal, jump to Test1
ldr r0, = greaterorequalOutput
bl printf
b ExitAll
Test1: blt Test2
ldr r0, = lessthanOutput
bl printf
b ExitAll
Test2: ldr r0, = greaterorequalOutput
ExitAll:
myexit:
mov r7, #0x01
svc 0
.data
.balign 4
numPrompt: .asciz "Input a number: "
.balign 4
numInputPattern: .asciz "%d"
.balign 4
lessthanOutput: .asciz "The input number is less than 100 \n"
.balign 4
greaterorequalOutput: .asciz "The input number is greater than or equal to 100 \n"
.global printf
.global scanf
解决方案
推荐阅读
- visual-c++ - 非成员函数和抽象类
- shell - 基于轮换在目录中查找和合并日志文件
- javascript - 如何播放捕获的视频?
- ruby - 如何使用两个布尔语句修复输入结束
- android - 当模拟对象在 lambda 内部时单元测试失败,但是当它在 lambda 外部并在 lambda 内部使用时工作?
- javascript - 将无效的 HTML 表解析为 JSON
- php - 正则表达式 HTML 注释 (PCRE)
- gitlab-ci-runner - 如何使用柯南遥控器配置 gitlab-runner?
- sql - 用 nulliff 替换 NULL 返回不同的查询结果
- database - 如何编辑我的代码,以便我可以解释与我的 sed 命令相反的输出