iterate over characters and convert them to ascii in x86 assembly

280 Views Asked by At

I want to iterate over the characters of a string and convert every single character to its respective ASCII value. So far I have created this program that takes input from the user and then stores it in the buffer. I have also created a loop that reads the character from the buffer (esi) and stores it within the al register. After supposedly converting the character in al to ASCII, it increments esi to go to the next character and runs the loop_start routine again.

section .data
    
    prompt db "Enter your message: "
    prompt_len equ $-prompt
    newline db 10, 0

section .bss

    buffer resb 255

section .text
_start:
    mov eax, 4
    mov ebx, 1
    mov ecx, prompt
    mov edx, prompt_len
    int 0x80

    mov eax, 3
    mov ebx, 2
    mov ecx, buffer
    mov edx, 255
    int 0x80
    
    mov esi, buffer

loop_start:
    mov al, byte [esi]
    cmp al, 0
    je done

    cmp esi, buffer
    je print_char


print_char:

    ; do something  

    inc esi
    jmp loop_start

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

    ret

How do I make it so that I am able to print out the ASCII value of the character as the loop iterates over it. Thank you in advance!

0

There are 0 best solutions below