Added new testing files...
This commit is contained in:
251
tool/test.asm
251
tool/test.asm
@ -1,190 +1,215 @@
|
||||
format ELF64 executable 3
|
||||
|
||||
segment readable executable
|
||||
|
||||
entry $
|
||||
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
fff:
|
||||
|
||||
nop
|
||||
add rcx, r9
|
||||
nop
|
||||
add rcx, [x8]
|
||||
nop
|
||||
add rcx, 11223344h
|
||||
nop
|
||||
add [x8], rcx
|
||||
nop
|
||||
add qword[x8], 11223344h
|
||||
nop
|
||||
or ecx, r9d
|
||||
nop
|
||||
or ecx, [x4]
|
||||
nop
|
||||
or ecx, 11223344h
|
||||
nop
|
||||
or [x4], ecx
|
||||
nop
|
||||
or dword[x4], 11223344h
|
||||
nop
|
||||
adc cx, r9w
|
||||
nop
|
||||
adc cx, [x2]
|
||||
nop
|
||||
adc cx, 1122h
|
||||
nop
|
||||
adc [x2], cx
|
||||
nop
|
||||
adc word[x2], 1122h
|
||||
nop
|
||||
sbb cl, r9b
|
||||
nop
|
||||
sbb cl, [x1]
|
||||
nop
|
||||
sbb cl, 11h
|
||||
nop
|
||||
sbb [x1], cl
|
||||
nop
|
||||
sbb byte[x1], 11h
|
||||
|
||||
;~add rcx r9 | ADD D64 REG R1 REG R9
|
||||
;~4C 01 C9 | 4C 01 C9
|
||||
;~add rcx [x8] | ADD D64 REG R1 MEM 0
|
||||
;~48 03 0D E1 11 00 00 | 48 03 0D FF FF FF FF
|
||||
;~add rcx 11223344h | ADD D64 REG R1 IMM 0X11223344U
|
||||
;~48 81 C1 44 33 22 11 | 48 81 C2 44 33 22 11
|
||||
;~^^ ^^
|
||||
;~add [x8] rcx | ADD D64 MEM 0 REG R9
|
||||
;~48 01 0D D3 11 00 00 | 4C 01 0D FF FF FF FF
|
||||
;~^^ ^^
|
||||
;~add [x8] 11223344h | ADD D64 MEM 0 IMM 0X11223344U
|
||||
;~48 81 05 C8 11 00 00 44 33 22 11 | 48 81 05 FF FF FF FF 44 33 22 11
|
||||
|
||||
nop
|
||||
and rcx, r9
|
||||
nop
|
||||
and rcx, [x8]
|
||||
nop
|
||||
and rcx, 11223344h
|
||||
nop
|
||||
and [x8], rcx
|
||||
nop
|
||||
and qword[x8], 11223344h
|
||||
nop
|
||||
sub ecx, r9d
|
||||
nop
|
||||
sub ecx, [x4]
|
||||
nop
|
||||
sub ecx, 11223344h
|
||||
nop
|
||||
sub [x4], ecx
|
||||
nop
|
||||
sub dword[x4], 11223344h
|
||||
nop
|
||||
|
||||
xor rcx, r9
|
||||
xor rcx, [x8]
|
||||
xor rcx, 11223344h
|
||||
xor [x8], rcx
|
||||
xor qword[x8], 11223344h
|
||||
xor ecx, r9d
|
||||
xor ecx, [x4]
|
||||
xor ecx, 11223344h
|
||||
xor [x4], ecx
|
||||
xor dword[x4], 11223344h
|
||||
xor cx, r9w
|
||||
nop
|
||||
xor cx, [x2]
|
||||
nop
|
||||
xor cx, 1122h
|
||||
nop
|
||||
xor [x2], cx
|
||||
nop
|
||||
xor word[x2], 1122h
|
||||
xor cl, r9b
|
||||
xor cl, [x1]
|
||||
xor cl, 11h
|
||||
xor [x1], cl
|
||||
xor byte[x1], 11h
|
||||
|
||||
nop
|
||||
cmp cl, r9b
|
||||
nop
|
||||
cmp cl, [x1]
|
||||
nop
|
||||
|
||||
xor rcx, r9
|
||||
xor rcx, [x8]
|
||||
xor rcx, 11223344h
|
||||
xor [x8], rcx
|
||||
xor qword[x8], 11223344h
|
||||
xor ecx, r9d
|
||||
xor ecx, [x4]
|
||||
xor ecx, 11223344h
|
||||
xor [x4], ecx
|
||||
xor dword[x4], 11223344h
|
||||
xor cx, r9w
|
||||
xor cx, [x2]
|
||||
xor cx, 1122h
|
||||
xor [x2], cx
|
||||
xor word[x2], 1122h
|
||||
xor cl, r9b
|
||||
xor cl, [x1]
|
||||
xor cl, 11h
|
||||
xor [x1], cl
|
||||
xor byte[x1], 11h
|
||||
|
||||
cmp cl, 11h
|
||||
nop
|
||||
cmp [x1], cl
|
||||
nop
|
||||
cmp byte[x1], 11h
|
||||
nop
|
||||
|
||||
inc rcx
|
||||
nop
|
||||
inc qword[x8]
|
||||
nop
|
||||
inc ecx
|
||||
nop
|
||||
inc dword[x4]
|
||||
nop
|
||||
inc cx
|
||||
nop
|
||||
inc word[x2]
|
||||
nop
|
||||
inc cl
|
||||
nop
|
||||
inc byte[x1]
|
||||
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
div r9
|
||||
nop
|
||||
div qword[x8]
|
||||
nop
|
||||
div r9d
|
||||
nop
|
||||
div dword[x4]
|
||||
nop
|
||||
div r9w
|
||||
nop
|
||||
div word[x2]
|
||||
nop
|
||||
div r9b
|
||||
nop
|
||||
div byte[x1]
|
||||
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
ret
|
||||
nop
|
||||
leave
|
||||
nop
|
||||
lock
|
||||
nop
|
||||
hlt
|
||||
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
sysenter
|
||||
nop
|
||||
sysexit
|
||||
nop
|
||||
syscall
|
||||
nop
|
||||
sysret
|
||||
nop
|
||||
pause
|
||||
nop
|
||||
cpuid
|
||||
|
||||
;~nop
|
||||
;~nop
|
||||
;~nop
|
||||
|
||||
;~jo fff
|
||||
;~jno fff
|
||||
;~jb fff
|
||||
;~jae fff
|
||||
;~je fff
|
||||
;~jne fff
|
||||
;~jbe fff
|
||||
;~ja fff
|
||||
;~js fff
|
||||
;~jns fff
|
||||
;~jpe fff
|
||||
;~jpo fff
|
||||
;~jl fff
|
||||
;~jge fff
|
||||
;~jle fff
|
||||
;~jg fff
|
||||
|
||||
;~nop
|
||||
;~nop
|
||||
;~nop
|
||||
|
||||
;~cmovo rax, rcx
|
||||
;~cmovno rax, rcx
|
||||
;~cmovb rax, rcx
|
||||
;~cmovae rax, rcx
|
||||
;~cmove rax, rcx
|
||||
;~cmovne rax, rcx
|
||||
;~cmovbe rax, rcx
|
||||
;~cmova rax, rcx
|
||||
;~cmovs rax, rcx
|
||||
;~cmovns rax, rcx
|
||||
;~cmovpe rax, rcx
|
||||
;~cmovpo rax, rcx
|
||||
;~cmovl rax, rcx
|
||||
;~cmovge rax, rcx
|
||||
;~cmovle rax, rcx
|
||||
;~cmovg rax, rcx
|
||||
nop
|
||||
jo fff
|
||||
nop
|
||||
jno fff
|
||||
nop
|
||||
jb fff
|
||||
nop
|
||||
jae fff
|
||||
nop
|
||||
je fff
|
||||
nop
|
||||
jne fff
|
||||
nop
|
||||
jbe fff
|
||||
nop
|
||||
ja fff
|
||||
nop
|
||||
js fff
|
||||
nop
|
||||
jns fff
|
||||
nop
|
||||
jpe fff
|
||||
nop
|
||||
jpo fff
|
||||
nop
|
||||
jl fff
|
||||
nop
|
||||
jge fff
|
||||
nop
|
||||
jle fff
|
||||
nop
|
||||
jg fff
|
||||
nop
|
||||
cmovo rax, rcx
|
||||
nop
|
||||
cmovno rax, rcx
|
||||
nop
|
||||
cmovb rax, rcx
|
||||
nop
|
||||
cmovae rax, rcx
|
||||
nop
|
||||
cmove rax, rcx
|
||||
nop
|
||||
cmovne rax, rcx
|
||||
nop
|
||||
cmovbe rax, rcx
|
||||
nop
|
||||
cmova rax, rcx
|
||||
nop
|
||||
cmovs rax, rcx
|
||||
nop
|
||||
cmovns rax, rcx
|
||||
nop
|
||||
cmovpe rax, rcx
|
||||
nop
|
||||
cmovpo rax, rcx
|
||||
nop
|
||||
cmovl rax, rcx
|
||||
nop
|
||||
cmovge rax, rcx
|
||||
nop
|
||||
cmovle rax, rcx
|
||||
nop
|
||||
cmovg rax, rcx
|
||||
;~;mov
|
||||
;~;jmp
|
||||
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
|
||||
;mov
|
||||
;jmp
|
||||
|
||||
nop
|
||||
nop
|
||||
|
206
tool/test.c
206
tool/test.c
@ -5,32 +5,111 @@
|
||||
#include "../source/assembler.c"
|
||||
|
||||
static unsigned int array [] = {
|
||||
ADD, D64, REG, R1, REG, R9,
|
||||
ADD, D64, REG, R1, MEM, 0,
|
||||
ADD, D64, REG, R1, IMM, 0X11223344U,
|
||||
ADD, D64, MEM, 0, REG, R9,
|
||||
ADD, D64, MEM, 0, IMM, 0X11223344U,
|
||||
OR, D32, REG, R1, REG, R9,
|
||||
OR, D32, REG, R1, MEM, 0,
|
||||
OR, D32, REG, R1, IMM, 0X11223344U,
|
||||
OR, D32, MEM, 0, REG, R9,
|
||||
OR, D32, MEM, 0, IMM, 0X11223344U,
|
||||
ADC, D16, REG, R1, REG, R9,
|
||||
ADC, D16, REG, R1, MEM, 0,
|
||||
ADC, D16, REG, R1, IMM, 0X11223344U,
|
||||
ADC, D16, MEM, 0, REG, R9,
|
||||
ADC, D16, MEM, 0, IMM, 0X11223344U,
|
||||
SBB, D8, REG, R1, REG, R9,
|
||||
SBB, D8, REG, R1, MEM, 0,
|
||||
SBB, D8, REG, R1, IMM, 0X11223344U,
|
||||
SBB, D8, MEM, 0, REG, R9,
|
||||
SBB, D8, MEM, 0, IMM, 0X11223344U
|
||||
NOP, ADD, D64, REG, R1, REG, R9,
|
||||
NOP, ADD, D64, REG, R1, MEM, 0,
|
||||
NOP, ADD, D64, REG, R1, IMM, 0X11223344,
|
||||
NOP, ADD, D64, MEM, 0, REG, R1,
|
||||
NOP, ADD, D64, MEM, 0, IMM, 0X11223344,
|
||||
NOP, OR, D32, REG, R1, REG, R9,
|
||||
NOP, OR, D32, REG, R1, MEM, 0,
|
||||
NOP, OR, D32, REG, R1, IMM, 0X11223344,
|
||||
NOP, OR, D32, MEM, 0, REG, R1,
|
||||
NOP, OR, D32, MEM, 0, IMM, 0X11223344,
|
||||
NOP, ADC, D16, REG, R1, REG, R9,
|
||||
NOP, ADC, D16, REG, R1, MEM, 0,
|
||||
NOP, ADC, D16, REG, R1, IMM, 0X1122,
|
||||
NOP, ADC, D16, MEM, 0, REG, R1,
|
||||
NOP, ADC, D16, MEM, 0, IMM, 0X1122,
|
||||
NOP, SBB, D8, REG, R1, REG, R9,
|
||||
NOP, SBB, D8, REG, R1, MEM, 0,
|
||||
NOP, SBB, D8, REG, R1, IMM, 0X11,
|
||||
NOP, SBB, D8, MEM, 0, REG, R1,
|
||||
NOP, SBB, D8, MEM, 0, IMM, 0X11,
|
||||
NOP, AND, D64, REG, R1, REG, R9,
|
||||
NOP, AND, D64, REG, R1, MEM, 0,
|
||||
NOP, AND, D64, REG, R1, IMM, 0X11223344,
|
||||
NOP, AND, D64, MEM, 0, REG, R1,
|
||||
NOP, AND, D64, MEM, 0, IMM, 0X11223344,
|
||||
NOP, SUB, D32, REG, R1, REG, R9,
|
||||
NOP, SUB, D32, REG, R1, MEM, 0,
|
||||
NOP, SUB, D32, REG, R1, IMM, 0X11223344,
|
||||
NOP, SUB, D32, MEM, 0, REG, R1,
|
||||
NOP, SUB, D32, MEM, 0, IMM, 0X11223344,
|
||||
NOP, XOR, D16, REG, R1, REG, R9,
|
||||
NOP, XOR, D16, REG, R1, MEM, 0,
|
||||
NOP, XOR, D16, REG, R1, IMM, 0X1122,
|
||||
NOP, XOR, D16, MEM, 0, REG, R1,
|
||||
NOP, XOR, D16, MEM, 0, IMM, 0X1122,
|
||||
NOP, CMP, D8, REG, R1, REG, R9,
|
||||
NOP, CMP, D8, REG, R1, MEM, 0,
|
||||
NOP, CMP, D8, REG, R1, IMM, 0X11,
|
||||
NOP, CMP, D8, MEM, 0, REG, R1,
|
||||
NOP, CMP, D8, MEM, 0, IMM, 0X11,
|
||||
//~NOP, D32, INC, REG, R1,
|
||||
//~NOP, D32, INC, MEM, 0,
|
||||
//~NOP, D32, DEC, REG, R1,
|
||||
//~NOP, D32, DEC, MEM, 0,
|
||||
//~NOP, D32, NOT, REG, R1,
|
||||
//~NOP, D32, NOT, MEM, 0,
|
||||
//~NOP, D32, NEG, REG, R1,
|
||||
//~NOP, D32, NEG, MEM, 0,
|
||||
//~NOP, D32, UMUL, REG, R9,
|
||||
//~NOP, D32, UMUL, MEM, 0,
|
||||
//~NOP, D32, IMUL, REG, R9,
|
||||
//~NOP, D32, IMUL, MEM, 0,
|
||||
//~NOP, D32, UDIV, REG, R9,
|
||||
//~NOP, D32, UDIV, MEM, 0,
|
||||
//~NOP, D32, IDIV, REG, R9,
|
||||
//~NOP, D32, IDIV, MEM, 0,
|
||||
//~NOP, RETN,
|
||||
//~NOP, RETF,
|
||||
//~NOP, LEAVE,
|
||||
//~NOP, LOCK,
|
||||
//~NOP, HLT,
|
||||
//~NOP, SYSENTER,
|
||||
//~NOP, SYSEXIT,
|
||||
//~NOP, SYSCALL,
|
||||
//~NOP, SYSRET,
|
||||
//~NOP, PAUSE,
|
||||
//~NOP, CPUID,
|
||||
//~NOP, JO, 0X77FFFFFF,
|
||||
//~NOP, JNO, 0X77FFFFFF,
|
||||
//~NOP, JB, 0X77FFFFFF,
|
||||
//~NOP, JAE, 0X77FFFFFF,
|
||||
//~NOP, JE, 0X77FFFFFF,
|
||||
//~NOP, JNE, 0X77FFFFFF,
|
||||
//~NOP, JBE, 0X77FFFFFF,
|
||||
//~NOP, JA, 0X77FFFFFF,
|
||||
//~NOP, JS, 0X77FFFFFF,
|
||||
//~NOP, JNS, 0X77FFFFFF,
|
||||
//~NOP, JPE, 0X77FFFFFF,
|
||||
//~NOP, JPO, 0X77FFFFFF,
|
||||
//~NOP, JL, 0X77FFFFFF,
|
||||
//~NOP, JGE, 0X77FFFFFF,
|
||||
//~NOP, JLE, 0X77FFFFFF,
|
||||
//~NOP, JG, 0X77FFFFFF,
|
||||
//~NOP, CMOVO, D64, REG, R0, REG, R1,
|
||||
//~NOP, CMOVNO,D64, REG, R0, REG, R1,
|
||||
//~NOP, CMOVB, D64, REG, R0, REG, R1,
|
||||
//~NOP, CMOVAE, D64, REG, R0, REG, R1,
|
||||
//~NOP, CMOVE, D64, REG, R0, REG, R1,
|
||||
//~NOP, CMOVNE, D64, REG, R0, REG, R1,
|
||||
//~NOP, CMOVBE, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVA, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVS, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVNS, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVPE, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVPO, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVL, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVGE, D32, REG, R0, REG, R1,
|
||||
//~NOP, CMOVLE, D16, REG, R0, REG, R1,
|
||||
//~NOP, CMOVG, D16, REG, R0, REG, R1
|
||||
};
|
||||
|
||||
int main (void) {
|
||||
unsigned int index;
|
||||
|
||||
token_array = malloc (144UL * sizeof (* token_array));
|
||||
token_array = malloc (1440UL * sizeof (* token_array));
|
||||
|
||||
assemble ((unsigned int) (sizeof (array) / sizeof (array [0])), array);
|
||||
|
||||
@ -44,3 +123,88 @@ int main (void) {
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
XOLATILE: FLAT:
|
||||
4C 01 C9 4C 01 C9
|
||||
48 03 0D FF FF FF FF 48 03 0D 52 12 00 00
|
||||
48 81 C2 44 33 22 11 48 81 C1 44 33 22 11
|
||||
48 01 0D FF FF FF FF 48 01 0D 42 12 00 00
|
||||
48 81 05 FF FF FF FF 44 33 22 11 48 81 05 36 12 00 00 44 33 22 11
|
||||
44 09 C9 44 09 C9
|
||||
0B 0D FF FF FF FF 0B 0D 27 12 00 00
|
||||
81 CA 44 33 22 11 81 C9 44 33 22 11
|
||||
09 0D FF FF FF FF 09 0D 19 12 00 00
|
||||
81 0D FF FF FF FF 44 33 22 11 81 0D 0E 12 00 00 44 33 22 11
|
||||
66 44 11 C9 66 44 11 C9
|
||||
66 13 0D FF FF FF FF 66 13 0D FF 11 00 00
|
||||
66 81 D2 22 11 66 81 D1 22 11
|
||||
66 11 0D FF FF FF FF 66 11 0D F1 11 00 00
|
||||
66 81 15 FF FF FF FF 22 11 66 81 15 E7 11 00 00 22 11
|
||||
44 18 C9 44 18 C9
|
||||
1A 0D FF FF FF FF 1A 0D DB 11 00 00
|
||||
80 D9 11 80 D9 11
|
||||
18 0D FF FF FF FF 18 0D D0 11 00 00
|
||||
80 1C FF FF FF FF 11 80 1D C8 11 00 00 11
|
||||
4C 21 C9 4C 21 C9
|
||||
48 23 0D FF FF FF FF 48 23 0D C3 11 00 00
|
||||
48 81 E2 44 33 22 11 48 81 E1 44 33 22 11
|
||||
48 21 0D FF FF FF FF 48 21 0D B3 11 00 00
|
||||
48 81 25 FF FF FF FF 44 33 22 11 48 81 25 A7 11 00 00 44 33 22 11
|
||||
44 29 C9 44 29 C9
|
||||
2B 0D FF FF FF FF 2B 0D 98 11 00 00
|
||||
81 EA 44 33 22 11 81 E9 44 33 22 11
|
||||
29 0D FF FF FF FF 29 0D 8A 11 00 00
|
||||
81 2D FF FF FF FF 44 33 22 11 81 2D 7F 11 00 00 44 33 22 11
|
||||
66 44 31 C9 66 44 31 C9
|
||||
66 33 0D FF FF FF FF 66 33 0D 70 11 00 00
|
||||
66 81 F2 22 11 66 81 F1 22 11
|
||||
66 31 0D FF FF FF FF 66 31 0D 62 11 00 00
|
||||
66 81 35 FF FF FF FF 22 11 66 81 35 58 11 00 00 22 11
|
||||
44 38 C9 44 38 C9
|
||||
3A 0D FF FF FF FF 3A 0D 4C 11 00 00
|
||||
80 F9 11 80 F9 11
|
||||
38 0D FF FF FF FF 38 0D 41 11 00 00
|
||||
80 3C FF FF FF FF 11 ****************************************
|
||||
|
||||
FASM:
|
||||
90 4C 01 C9
|
||||
90 48 03 0D 52 12 00 00
|
||||
90 48 81 C1 44 33 22 11
|
||||
90 48 01 0D 42 12 00 00
|
||||
90 48 81 05 36 12 00 00 44 33 22 11
|
||||
90 44 09 C9
|
||||
90 0B 0D 27 12 00 00
|
||||
90 81 C9 44 33 22 11
|
||||
90 09 0D 19 12 00 00
|
||||
90 81 0D 0E 12 00 00 44 33 22 11
|
||||
90 66 44 11 C9
|
||||
90 66 13 0D FF 11 00 00
|
||||
90 66 81 D1 22 11
|
||||
90 66 11 0D F1 11 00 00
|
||||
90 66 81 15 E7 11 00 00 22 11
|
||||
90 44 18 C9
|
||||
90 1A 0D DB 11 00 00
|
||||
90 80 D9 11
|
||||
90 18 0D D0 11 00 00
|
||||
90 80 1D C8 11 00 00 11
|
||||
90 4C 21 C9
|
||||
90 48 23 0D C3 11 00 00
|
||||
90 48 81 E1 44 33 22 11
|
||||
90 48 21 0D B3 11 00 00
|
||||
90 48 81 25 A7 11 00 00 44 33 22 11
|
||||
90 44 29 C9
|
||||
90 2B 0D 98 11 00 00
|
||||
90 81 E9 44 33 22 11
|
||||
90 29 0D 8A 11 00 00
|
||||
90 81 2D 7F 11 00 00 44 33 22 11
|
||||
90 66 44 31 C9
|
||||
90 66 33 0D 70 11 00 00
|
||||
90 66 81 F1 22 11
|
||||
90 66 31 0D 62 11 00 00
|
||||
90 66 81 35 58 11 00 00 22 11
|
||||
90 44 38 C9
|
||||
90 3A 0D 4C 11 00 00
|
||||
90 80 F9 11
|
||||
90 38 0D 41 11 00 00
|
||||
*/
|
||||
|
Reference in New Issue
Block a user