据我所知,退出代码从返回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
进程的退出状态大小为 8 位。通过正常方式不可能返回更大的退出状态。如果您想输出大于 255 的数字,您可以使用以下命令将其打印到 stdout(文件描述符 1):write
系统调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)