我正在编写一个名为 isOdd 的小型汇编程序,顾名思义,如果传递的整数是奇数,则通过从 % 操作返回 1 来返回。
到目前为止,这是我的代码:
Function prototype: int isOdd( long num )
isOdd:
save %sp, -96, %sp ! Save caller's window
mov %i0, %o0 ! Parameter num goes to %o0
mov 2, %l0 ! 2 goes to local register
call .rem ! Call modulus subroutine
nop
mov %o0, %l0 ! moves the result of the subroutine
! to output register o0
ret
restore
但是,我没有得到好的输出;事实上,它似乎只是返回我传递给 num 的任何值,而不是实际执行模数运算。
谷歌并没有证明对这样一个基本问题有帮助。这是我的第一个汇编代码,所以我对“寄存器”的概念非常陌生,我认为将它们混在一起是我的错误所在。
在此先感谢您的帮助!