我正在编写一个名为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
Run Code Online (Sandbox Code Playgroud)
但是,我没有得到好的输出; 事实上,它似乎只是返回我传递给num的任何值,而不是实际进行模数运算.
谷歌对这样一个基本问题没有任何帮助.这是我的第一个汇编代码,所以我对"寄存器"的概念非常不熟悉,我认为将它们混合在一起就是我的错误所在.
在此先感谢您的帮助!