mirror of
https://github.com/sharkdp/bat.git
synced 2025-02-22 04:48:48 +00:00
test: x86-64 Assembly NASM syntax test
This commit is contained in:
parent
8832a96e82
commit
5fe98689d4
86
tests/syntax-tests/highlighted/Assembly (x86_64)/test.nasm
Normal file
86
tests/syntax-tests/highlighted/Assembly (x86_64)/test.nasm
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
[38;2;102;217;239mglobal[0m[38;2;248;248;242m [0m[38;2;166;226;46menlight[0m
|
||||||
|
|
||||||
|
[38;2;102;217;239msection[0m[38;2;248;248;242m [0m[38;2;102;217;239m.data[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mred[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdq[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m[38;2;248;248;242m [0m[38;2;117;113;94m;[0m[38;2;117;113;94m some comment[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mgreen[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdq[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mblue[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdq[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mdata[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdq[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mN[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdd[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mM[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdd[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mchange[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdd[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;166;226;46mdelta[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdb[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
|
||||||
|
[38;2;102;217;239msection[0m[38;2;248;248;242m [0m[38;2;102;217;239m.text[0m
|
||||||
|
[38;2;166;226;46menlight[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mcall[0m[38;2;248;248;242m [0m[38;2;166;226;46massign_arguments[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mcall[0m[38;2;248;248;242m [0m[38;2;166;226;46mset_data[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mcall[0m[38;2;248;248;242m [0m[38;2;166;226;46mmake_deltas[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
|
||||||
|
[38;2;166;226;46massign_arguments[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mred[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mrdi[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mgreen[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mrsi[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mblue[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mrdx[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mN[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mecx[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mM[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mr8d[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mchange[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mr9d[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mal[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;190;132;255mrsp[0m[38;2;248;248;242m [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m16[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;166;226;46mdelta[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mal[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
|
||||||
|
[38;2;166;226;46mset_data[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255meax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mchange[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mcmp[0m[38;2;248;248;242m [0m[38;2;190;132;255meax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mjne[0m[38;2;248;248;242m [0m[38;2;166;226;46mnot_1[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mred[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mdata[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
[38;2;166;226;46mnot_1[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mcmp[0m[38;2;248;248;242m [0m[38;2;190;132;255meax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mjne[0m[38;2;248;248;242m [0m[38;2;166;226;46mnot_2[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mgreen[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mdata[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
[38;2;166;226;46mnot_2[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mblue[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mdata[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
|
||||||
|
|
||||||
|
[38;2;166;226;46mmake_deltas[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mecx[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mN[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255meax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mdword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mM[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mimul[0m[38;2;248;248;242m [0m[38;2;190;132;255mecx[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255meax[0m
|
||||||
|
[38;2;166;226;46mloop_start[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mcall[0m[38;2;248;248;242m [0m[38;2;166;226;46mmake_delta[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mloop[0m[38;2;248;248;242m [0m[38;2;166;226;46mloop_start[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
|
||||||
|
[38;2;166;226;46mmake_delta[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mqword[0m[38;2;248;248;242m[[0m[38;2;166;226;46mdata[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114madd[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mrcx[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mdec[0m[38;2;248;248;242m [0m[38;2;190;132;255mrax[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;166;226;46mdelta[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mcmp[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mjl[0m[38;2;248;248;242m [0m[38;2;166;226;46msubstracting[0m
|
||||||
|
[38;2;166;226;46madding[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114madd[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;190;132;255mrax[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mjc[0m[38;2;248;248;242m [0m[38;2;166;226;46madding_overflow[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;190;132;255mrax[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
[38;2;166;226;46madding_overflow[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;190;132;255mrax[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m255[0m[38;2;248;248;242m [0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
[38;2;166;226;46msubstracting[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mr9b[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114msub[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mr9b[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[38;2;190;132;255mr8b[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;190;132;255mrax[0m[38;2;248;248;242m][0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114msub[0m[38;2;248;248;242m [0m[38;2;190;132;255mr8b[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mdl[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mjc[0m[38;2;248;248;242m [0m[38;2;166;226;46msubstracting_overflow[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;190;132;255mrax[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mr8b[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
||||||
|
[38;2;117;113;94m;[0m[38;2;117;113;94m another comment[0m
|
||||||
|
[38;2;166;226;46msubstracting_overflow[0m[38;2;248;248;242m:[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mmov[0m[38;2;248;248;242m [0m[3;38;2;102;217;239mbyte[0m[38;2;248;248;242m[[0m[38;2;190;132;255mrax[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m0[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;249;38;114mret[0m
|
86
tests/syntax-tests/source/Assembly (x86_64)/test.nasm
Normal file
86
tests/syntax-tests/source/Assembly (x86_64)/test.nasm
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
global enlight
|
||||||
|
|
||||||
|
section .data
|
||||||
|
red dq 0 ; some comment
|
||||||
|
green dq 0
|
||||||
|
blue dq 0
|
||||||
|
data dq 0
|
||||||
|
N dd 0
|
||||||
|
M dd 0
|
||||||
|
change dd 0
|
||||||
|
delta db 0
|
||||||
|
|
||||||
|
section .text
|
||||||
|
enlight:
|
||||||
|
call assign_arguments
|
||||||
|
call set_data
|
||||||
|
call make_deltas
|
||||||
|
ret
|
||||||
|
|
||||||
|
assign_arguments:
|
||||||
|
mov qword[red], rdi
|
||||||
|
mov qword[green], rsi
|
||||||
|
mov qword[blue], rdx
|
||||||
|
mov dword[N], ecx
|
||||||
|
mov dword[M], r8d
|
||||||
|
mov dword[change], r9d
|
||||||
|
mov al, byte[rsp + 16]
|
||||||
|
mov byte[delta], al
|
||||||
|
ret
|
||||||
|
|
||||||
|
set_data:
|
||||||
|
mov eax, dword[change]
|
||||||
|
cmp eax, 1
|
||||||
|
jne not_1
|
||||||
|
mov rax, qword[red]
|
||||||
|
mov qword[data], rax
|
||||||
|
ret
|
||||||
|
not_1:
|
||||||
|
cmp eax, 2
|
||||||
|
jne not_2
|
||||||
|
mov rax, qword[green]
|
||||||
|
mov qword[data], rax
|
||||||
|
ret
|
||||||
|
not_2:
|
||||||
|
mov rax, qword[blue]
|
||||||
|
mov qword[data], rax
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
make_deltas:
|
||||||
|
mov ecx, dword[N]
|
||||||
|
mov eax, dword[M]
|
||||||
|
imul ecx, eax
|
||||||
|
loop_start:
|
||||||
|
call make_delta
|
||||||
|
loop loop_start
|
||||||
|
ret
|
||||||
|
|
||||||
|
make_delta:
|
||||||
|
mov rax, qword[data]
|
||||||
|
add rax, rcx
|
||||||
|
dec rax
|
||||||
|
mov dl, byte[delta]
|
||||||
|
cmp dl, 0
|
||||||
|
jl substracting
|
||||||
|
adding:
|
||||||
|
add dl, byte[rax]
|
||||||
|
jc adding_overflow
|
||||||
|
mov byte[rax], dl
|
||||||
|
ret
|
||||||
|
adding_overflow:
|
||||||
|
mov byte[rax], 255
|
||||||
|
ret
|
||||||
|
substracting:
|
||||||
|
mov r9b, dl
|
||||||
|
mov dl, 0
|
||||||
|
sub dl, r9b
|
||||||
|
mov r8b, byte[rax]
|
||||||
|
sub r8b, dl
|
||||||
|
jc substracting_overflow
|
||||||
|
mov byte[rax], r8b
|
||||||
|
ret
|
||||||
|
; another comment
|
||||||
|
substracting_overflow:
|
||||||
|
mov byte[rax], 0
|
||||||
|
ret
|
Loading…
x
Reference in New Issue
Block a user