действительность инструкции MOV в ассемблере

Это действующая инструкция по сборке?

ДВИГАТЕЛЬ CX, 0F9

Я имею в виду, как мы видим, в нем есть «0F9», хотя исходный операнд выглядит как «шестнадцатеричный», но в конце инструкции (или конце исходного операнда) нет символов «H».


person mohammad mahed    schedule 17.11.2012    source источник
comment
Как вы можете быть уверены, что значение шестнадцатеричное? Начальные буквенные значения с 0 обычно указывают на восьмеричное число.   -  person cowboydan    schedule 17.11.2012
comment
Не действует в Nasm. 0x0F9, 0F9h или $0F9 все указывают на шестнадцатеричный формат.   -  person Frank Kotler    schedule 17.11.2012
comment
@Frank Kotler Итак, поскольку это не один из трех написанных вами примеров, Nasm заметит его как недопустимую инструкцию?   -  person mohammad mahed    schedule 17.11.2012
comment
Верно. Насм сказал бы expression syntax error. Не бойтесь пробовать эти вещи!   -  person Frank Kotler    schedule 17.11.2012


Ответы (1)


да. это действительно допустимый синтаксис Intel x86, перемещающий 0xF9 в регистр CX. По соглашению мы предполагаем, что любое непосредственное значение находится в шестнадцатеричном представлении. Причина, по которой перед F9 стоит 0, заключается в том, что ассемблер обрабатывает значение как непосредственное значение (шестнадцатеричное), а не как метку. Его нет, чтобы различать его представление с основанием n.

person JosephH    schedule 17.11.2012