Ce billet est relié avec l’article sur mon projet de programmation d’un compilateur Brainfuck.

SECTION .data
data: times 30000 db 0
ptr: dd 0

SECTION .text
global main

inc_ptr:
inc byte [ptr]
ret

dec_ptr:
dec byte [ptr]
ret

inc_val:
mov eax, [ptr]
inc byte [eax]
mov [ptr], eax
ret

decr_val:
mov eax, [ptr]
dec byte [eax]
mov [ptr], eax
ret

read:
mov edx, 1
mov ecx, [ptr]
mov ebx, 0
mov eax, 3
int 0x80
ret

print:
mov edx, 1
mov ecx, [ptr]
mov ebx, 1
mov eax, 4
int 0x80
ret

exit:
mov ebx, 0
mov eax, 1
int 0x80

main:
mov eax, data
mov [ptr], eax
;;;;;;;;;;;;;;;;;;;;;;;;
;  ICI LE CODE BRAINFUCK
;         COMPILE
;;;;;;;;;;;;;;;;;;;;;;;;
 call exit