diff --git a/.gitignore b/.gitignore index c578301..8e1353d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ test *.o -test.asm +test*.asm +test_lt +test_print diff --git a/Makefile b/Makefile index 5b546d0..662ff3d 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,8 @@ build: test.rb test.code ./test clean: - @rm -f test.o - @rm -f test - @rm -f test.asm + @rm -f test*.o + @rm -f test test_lt test_print + @rm -f test*.asm + @rm -f *.o diff --git a/test_lt.asm b/test_lt.asm deleted file mode 100644 index caf56a5..0000000 --- a/test_lt.asm +++ /dev/null @@ -1,54 +0,0 @@ -GLOBAL _start -SECTION .data - -SECTION .bss -z: resd 1 -x: resd 1 -y: resd 1 - -SECTION .text -_start: - mov eax, 1 - push eax - mov eax, 1 - pop ebx - cmp ebx, eax - jl L000001_lt_1 - xor eax, eax - jmp L000002_endlt_1 -L000001_lt_1: - xor eax, eax - not eax -L000002_endlt_1: - mov dword [z], eax - mov eax, 1 - push eax - mov eax, 3 - pop ebx - cmp ebx, eax - jl L000003_lt_2 - xor eax, eax - jmp L000004_endlt_2 -L000003_lt_2: - xor eax, eax - not eax -L000004_endlt_2: - mov dword [x], eax - mov eax, 3 - push eax - mov eax, 1 - pop ebx - cmp ebx, eax - jl L000005_lt_3 - xor eax, eax - jmp L000006_endlt_3 -L000005_lt_3: - xor eax, eax - not eax -L000006_endlt_3: - mov dword [y], eax - - ;; The result in eax is the exit code, move it to ebx. - mov ebx, eax - mov eax, 1 ; _exit syscall - int 0x80 ; call Linux diff --git a/test_print.asm b/test_print.asm deleted file mode 100644 index 2fb5a0a..0000000 --- a/test_print.asm +++ /dev/null @@ -1,199 +0,0 @@ -GLOBAL _start -SECTION .data - -SECTION .bss -DIGITS: resd 4 -HEX: resd 3 -xitcode: resd 1 - -SECTION .text -_start: - mov dword [DIGITS], 0x33323130 - mov dword [DIGITS+4], 0x37363534 - mov dword [DIGITS+8], 0x62613938 - mov dword [DIGITS+12], 0x66656463 - mov word [HEX], 0x7830 - mov word [HEX+10], 0xa - mov eax, 0 - lea esi, [DIGITS] - lea edi, [HEX+9] - mov ecx, 0x4 -L000001: - movzx ebx, al - and bl, 15 - movzx edx, byte [esi+ebx] - mov byte [edi], dl - dec edi - movzx ebx, al - and bl, 240 - shr bl, 4 - mov dl, byte [esi+ebx] - mov byte [edi], dl - dec edi - shr eax, 8 - loop L000001 - mov eax, 0x4 - mov ebx, 0x1 - lea ecx, [HEX] - mov edx, 0xb - int 0x80 - mov word [HEX], 0x7830 - mov word [HEX+10], 0xa - mov eax, 1 - lea esi, [DIGITS] - lea edi, [HEX+9] - mov ecx, 0x4 -L000002: - movzx ebx, al - and bl, 15 - movzx edx, byte [esi+ebx] - mov byte [edi], dl - dec edi - movzx ebx, al - and bl, 240 - shr bl, 4 - mov dl, byte [esi+ebx] - mov byte [edi], dl - dec edi - shr eax, 8 - loop L000002 - mov eax, 0x4 - mov ebx, 0x1 - lea ecx, [HEX] - mov edx, 0xb - int 0x80 - mov word [HEX], 0x7830 - mov word [HEX+10], 0xa - mov eax, 1 - neg eax - lea esi, [DIGITS] - lea edi, [HEX+9] - mov ecx, 0x4 -L000003: - movzx ebx, al - and bl, 15 - movzx edx, byte [esi+ebx] - mov byte [edi], dl - dec edi - movzx ebx, al - and bl, 240 - shr bl, 4 - mov dl, byte [esi+ebx] - mov byte [edi], dl - dec edi - shr eax, 8 - loop L000003 - mov eax, 0x4 - mov ebx, 0x1 - lea ecx, [HEX] - mov edx, 0xb - int 0x80 - mov word [HEX], 0x7830 - mov word [HEX+10], 0xa - mov eax, 123 - lea esi, [DIGITS] - lea edi, [HEX+9] - mov ecx, 0x4 -L000004: - movzx ebx, al - and bl, 15 - movzx edx, byte [esi+ebx] - mov byte [edi], dl - dec edi - movzx ebx, al - and bl, 240 - shr bl, 4 - mov dl, byte [esi+ebx] - mov byte [edi], dl - dec edi - shr eax, 8 - loop L000004 - mov eax, 0x4 - mov ebx, 0x1 - lea ecx, [HEX] - mov edx, 0xb - int 0x80 - mov word [HEX], 0x7830 - mov word [HEX+10], 0xa - mov eax, 123 - neg eax - lea esi, [DIGITS] - lea edi, [HEX+9] - mov ecx, 0x4 -L000005: - movzx ebx, al - and bl, 15 - movzx edx, byte [esi+ebx] - mov byte [edi], dl - dec edi - movzx ebx, al - and bl, 240 - shr bl, 4 - mov dl, byte [esi+ebx] - mov byte [edi], dl - dec edi - shr eax, 8 - loop L000005 - mov eax, 0x4 - mov ebx, 0x1 - lea ecx, [HEX] - mov edx, 0xb - int 0x80 - mov word [HEX], 0x7830 - mov word [HEX+10], 0xa - mov eax, 4096 - lea esi, [DIGITS] - lea edi, [HEX+9] - mov ecx, 0x4 -L000006: - movzx ebx, al - and bl, 15 - movzx edx, byte [esi+ebx] - mov byte [edi], dl - dec edi - movzx ebx, al - and bl, 240 - shr bl, 4 - mov dl, byte [esi+ebx] - mov byte [edi], dl - dec edi - shr eax, 8 - loop L000006 - mov eax, 0x4 - mov ebx, 0x1 - lea ecx, [HEX] - mov edx, 0xb - int 0x80 - mov word [HEX], 0x7830 - mov word [HEX+10], 0xa - mov eax, 4096 - neg eax - lea esi, [DIGITS] - lea edi, [HEX+9] - mov ecx, 0x4 -L000007: - movzx ebx, al - and bl, 15 - movzx edx, byte [esi+ebx] - mov byte [edi], dl - dec edi - movzx ebx, al - and bl, 240 - shr bl, 4 - mov dl, byte [esi+ebx] - mov byte [edi], dl - dec edi - shr eax, 8 - loop L000007 - mov eax, 0x4 - mov ebx, 0x1 - lea ecx, [HEX] - mov edx, 0xb - int 0x80 - mov eax, 0 - mov dword [xitcode], eax - - ;; The result in eax is the exit code, move it to ebx. - mov ebx, eax - mov eax, 1 ; _exit syscall - int 0x80 ; call Linux