开发者

Interrupt On GAS

开发者 https://www.devze.com 2023-01-01 15:55 出处:网络
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

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 for int'

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" 
0

精彩评论

暂无评论...
验证码 换一张
取 消