I'm learning assembly and of course I'm experimenting with the classic 0x10 bios interrupt. The resources I've looked at show using lodsb to print a string, so to understand that opcode I'm trying to mimic it's behavior. This works fine with lodsb, but not with what I have. What am I doing wrong?:
start:
mov ah, 0Eh ;for bios interrupt
mov si, text_string ;set source index to begining of text_string
.repeat:
;I'm trying to emulate the behavior of lodsb to learn how it works:
mov al, [si] ;put character at si in al register
add si, 1 ;increment source index
cmp al, 0 ;if the character is a zero (end of the string)
je done ;end execution
int 10h ;bios interrupt to put character on screen
jmp .repeat
text_string db 'Hello, World!', 0
done:
ret