0
我目前在如何在ARM程序集中使用負數的問題上苦苦掙扎。比方說,我有一個簡單的代碼是這樣的:ARM程序集中的負數
MOV R0, #0
SUB R0, R0, #1
SWI 4
R0
顯然將存儲值0xFFFFFFFF
,但SWI
似乎並沒有把它當作一個符號整數,並讓被顯示的號碼是4294967295哪有我打印出-1?
我目前在如何在ARM程序集中使用負數的問題上苦苦掙扎。比方說,我有一個簡單的代碼是這樣的:ARM程序集中的負數
MOV R0, #0
SUB R0, R0, #1
SWI 4
R0
顯然將存儲值0xFFFFFFFF
,但SWI
似乎並沒有把它當作一個符號整數,並讓被顯示的號碼是4294967295哪有我打印出-1?
據我所知,SWI 4
在OS或任何執行環境中調用一些數字顯示例程。如果有合適的SWI some other number
用於顯示帶符號整數,請使用它。你應該真的提到你的操作系統。
如果沒有SWI 4
的簽名對象,計算負數的絕對值(例如從0中減去),然後分別顯示減號和絕對值。負值的最高位設置爲1.
謝謝你的答案。我使用Linux,並且從未聽說過任何用於顯示帶符號整數的「SWI」。 – sps
爲什麼使用SWI?你在與SWI溝通的環境是什麼? –
必須同意dwelch。爲什麼要使用SWI?如果您希望將其視爲有符號整數,請將其發送給希望接收有符號整數的函數。 – Leo
加載-1到R0使用'MVN R0,#0'而不是像這樣的指令 –