Я изменил код сборки из игры на платформе ARM, и я нашел инструкцию cmp r2,0h. Если вы ищете онлайн-инструкцию для cmp
, я заметил, что это действительно сравнило бы значение в r2
с 0 (pseudo-C будет r2==0
, верно?) Так что мне было интересно, имеет ли значение 0h то же значение? 0h равно 0 (unsigned int)?Сборка руки: Является ли cmp r2,0h таким же, как cmp r2, # 0?
В общем, я нахожу «h» после смещения адресов, а также после значений, поэтому я думаю, что это какой-то флаг или что-то в этом роде? Например, после инструкции cmp
есть sub r2, r2,1h
Большое спасибо.
PS: Я не буду использовать не $ GBA отладчик, если это имеет значение
Это, конечно, не архитектурный синтаксис для постоянного, но в конечном итоге дизассемблеры могут свободно отображать вещи, как они хотят. Я не помню, чтобы я когда-либо смотрел на нет gba конкретно, но я был бы невероятно удивлен, если бы это означало что-то другое, кроме шестнадцатеричного значения (например, 10h == 0x10 == 16). – Notlikethat
@ Не заметите, что вы имеете в виду, что «h» означает что-то вроде «hex»? поэтому 1h будет 1 в шестнадцатеричном виде, которое равно 0x1. Следовательно, 0h == 0x0 == 0 правильно? Кажется, это решение. –
http://www.keil.com/support/man/docs/uv4/uv4_db_exp_constants.htm –