I am new at AT&T syntax. I want to convert the following NASM syntax code into AT&T syntax just for the sake of understanding.
My try to convert it into AT&T syntax:
lgdt (gdtpointer)
jmp $gdtcode, $_start
gdt:
.quad 0x0000000000000000
gdtcode:
.word .- gdt
.quad 0x0020980000000000
gdtdata:
.word .- gdt
.quad 0x0000900000000000
gdtpointer:
.word .-gdt-1
.quad gdt
Error: can't handle non absolute segment in `jmp'
The NASM code:
lgdt [gdt.pointer]
jmp gdt.code:startLongMode
;Global Descriptor Table
gdt:
dq 0x0000000000000000
.code equ $ - gdt
dq 0x0020980000000000
.data equ $ - gdt
dq 0x0000930000000000
.pointer:
dw $-gdt-1
dq gdt
;Ref: Intel System Programming Manual V1 - 2.1.1.1