I'm trying to convert my simple program from Intel syntax to the AT&T(to compile it with GAS). I've successfully converted a big part of my application, but I'm still getting an error with the int
(the interrupts). My function is like this:
printf:
mov $0x0e, %ah
mov $0x07, %bl
nextchar:
lodsb
or %al, %al
jz return
int 10
jmp nextchar
return:
ret
msg db "Welcome To Track!", 0Ah
But when I compile it, I got this:
hello.S: Assembler messages:
hello.S:13: Error: 开发者_Python百科operand size mismatch forint' hello.S:19: Error: no such instruction:
msg db "Hello, World!",0Ah'
What I need to do?
In GAS
, constants need a $
. Change that line to:
int $10
And your message should be:
msg: .byte "Welcome to Track!", 0x0a
Or even better:
msg: .asciiz "Welcome to Track!\n"
精彩评论