如何从main()返回大于8位的数字?

问题描述 投票:-1回答:2

据我所知,从r0返回的退出代码仅使用该寄存器的最低8位。如何返回高于8位的值?

这是ARMv7代码:

@ looping.s
@ calculates sum of integers from 1 to 100
.text
.balign 4
.global main
main:
    MOV r1, #0      @ r1 = 0 as sum
    MOV r2, #0      @ r2 = 0 as counter
loop:
    ADD r2, r2, #1  @ counter = counter + 1
    ADD r1, r1, r2  @ sum = sum + counter
    CMP r2, #100    @ counter - 100
    BLT loop        @ if counter < 100 go to start of loop
    MOV r0, r1      @ Store sum in r0
    BX lr           @ Return summation result to OS
assembly arm armv7 exitstatus
2个回答
5
投票

进程的退出状态为8位。通过常规方法不可能返回更大的退出状态。如果要输出大于255的数字,则可以使用write系统调用将其打印到stdout(文件描述符1)。


0
投票

您不应该使用main()函数来执行计算。通常,functions

© www.soinside.com 2019 - 2024. All rights reserved.