dump 32 bit - lyriarte/Cm7b5 GitHub Wiki

section .text

    global  _start

section .data

buf times 64 db 0

dump32:
    mov edi, buf + 7
    mov ebx, 8

loop8:
    mov eax, esi
    and eax, 0xF
    add eax, '0'
    cmp al, '9'
    jle dump4
    add eax, 7
dump4:
    mov byte [edi], al
    shr esi, 4
    dec edi
    dec ebx
    jnz loop8

    mov edx, 8     ; arg3 len
    mov ecx, buf   ; arg2 ptr
    mov ebx, 1     ; arg1 stdio
    mov eax, 4     ; sys_write
    int 0X80       ; call kernel
    ret

_start:

    mov esi, 0XDEADF00D
    call dump32
    mov ebx, 0     ; exit code
    mov eax, 1     ; sys_exit
    int 0X80       ; call kernel