Существует 4 типа mov
инструкции: movb
, movw
, movl
.
Суффикс b
, w
, l
означает размер исходного регистра.
Однако при сборке я обнаружил проблему с этими суффиксами.
См. Пример ниже.
.global main
main:
movb %ss, (%ecx) # ==> assemble (X)
movw %ss, (%ecx) # ==> assemble (O)
Даже если исходный регистр %ss
имеет размер 1 байт,
1-байтовая инструкция movb %ss, (%ecx)
сборка ошибка ,
2-байтовая инструкция movw %ss, (%ecx)
сборка последующая .
Почему это происходит?
Это просто ошибка linux as
? 1033 *