Во-первых, то что вы называете синтаксисом GAS на самом деле называется синтаксисом AT&T. А используемый в MASM/TASM синтаксис - это синтаксис Intel. Во-вторых, что примерно ждёт от вас препод
.section .data
hello_str:
.ascii "Hello, world!\n"
.set hello_str_length, . - hello_str
.section .text
.global main
.type main, @function
main:
movq $4, %rax
movq $1, %rbx
movq $hello_str, %rcx
movq $hello_str_length, %rdx
int $0x80
movq $1, %rax
movq $0, %rbx
int $0x80
.size main, . - main
Что вы получите в результате трансляции Сишного кода
.file "test.c"
.section .rodata
.LC0:
.string "Hello, World!"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movl %edi, -4(%rbp)
movq %rsi, -16(%rbp)
leaq .LC0(%rip), %rdi
call puts@PLT
movl $0, %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Debian 6.3.0-18) 6.3.0 20170516"
.section .note.GNU-stack,"",@progbits
Думаю, даже двоечник заметит разницу, не говоря уж о преподавателе. Помимо "лишнего" кода, характерных нечитаемых меток и цифровых смещений, в Сишном коде используются библиотечные вызовы вместо системных.
Но если всё же хотите попытать счастья, то вот что нагуглилось за десять секунд -
https://godbolt.org/