Фрагмент кода из упражнения по сборке (GNU Assembler, Linux 32 bit)
.data
more:
.asciz "more\n"
.text
...
movl $more, %eax # this is compiled
cmova more, %eax # this is compiled
cmova $more, %eax # this is not compiled
Ошибка: суффикс или операнды недопустимы для `cmova '
Я могу поместить строковый адрес в% eax, используя movl, но cmova не компилируется. Мне нужно, чтобы исходный операнд был больше, а не больше, чтобы использовать его для печати. Наконец, это значение отправляется в регистр% ecx системного вызова Linux 4 (запись).