2015-11-18 3 views
1

Я использую nasm в течение некоторого времени, но для нашего последнего упражнения нам было предложено перевести одно из наших упражнений в nasm на газ. Я использовал intel2gas для преобразования файла nasm в газ, но некоторые части получили ошибку MISMATCH.Перевод с NASM на GAS с помощью intel2gas дает ошибки MISMATCH

.data 
MISMATCH: "  prompt db 'Enter minimum: '" 
     .equ   promptLen, $-prompt 
MISMATCH: "  space db ' '" 

.bss 
MISMATCH: "  minTens resb 1" 
MISMATCH: "  minOnes resb 1" 
MISMATCH: "  min resw 1" 
MISMATCH: "  count resw 1" 
MISMATCH: "  i resw 1" 
+1

Вы можете использовать '.ascii' или' .byte' для строк и '.space' вместо' resb/resw'. – Michael

+0

Голосование закрывается слишком широко. Исправьте одну точку, которую вы не можете преобразовать. intel2gas, как и большинство инструментов перевода, просто помощник и не может справиться со всем. –

ответ

1

gas has a complete manual документирование всех директив ассемблера, которые можно использовать. например .asciz или .ascii для nul-terminated (или нет) строк.

Как отмечает Майкл в комментарии, используйте .space, aka .skip, чтобы зарезервировать пространство BSS. Об этом говорится в разделе руководства gas об the bss section.