Отрицательные числа в сборке ARM - PullRequest
0 голосов
/ 13 декабря 2011

В настоящее время я борюсь с тем, как использовать отрицательные числа в сборке ARM. Допустим, у меня есть простой код, подобный этому:

MOV R0, #0
SUB R0, R0, #1
SWI 4

R0, очевидно, будет хранить значение 0xFFFFFFFF, но SWI, похоже, не воспринимает его как целое число со знаком, поэтому отображаемое число равно 4294967295. Как можно распечатать -1?

1 Ответ

1 голос
/ 13 декабря 2011

Насколько я понимаю, SWI 4 вызывает некоторую подпрограмму отображения чисел в ОС или в любой среде исполнения. Если есть подходящий SWI some other number для отображения целых чисел со знаком, используйте это. Вы действительно должны упомянуть свою ОС.

Если в SWI 4 нет подписанного аналога, вычислите абсолютное значение отрицательного числа (например, вычтите его из 0), а затем отдельно отобразите знак минус и абсолютное значение. Отрицательные значения имеют старший бит, установленный в 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...