如何从 main() 返回大于 8 位的数字? [英] How to return a number larger than 8 bits from main()?

查看:24
本文介绍了如何从 main() 返回大于 8 位的数字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

So as far as I can tell, the exit code returned from r0 only uses the lowest 8 bits of this register. How wouuld I return a value higher than 8 bits?

这是 ARMv7 代码:

Here is the ARMv7 code:

@ 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

推荐答案

进程的退出状态大小为 8 位.无法通过正常方式返回更大的退出状态.如果您想输出一个大于 255 的数字,例如,您可以使用 write 系统调用将其打印到 stdout(文件描述符 1).

The exit status of a process is 8 bits in size. It is not possible to return a larger exit status by normal means. If you want to output a number larger than 255, you could for example print it to stdout (file descriptor 1) with a write system call.

这篇关于如何从 main() 返回大于 8 位的数字?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆