0xa
最後に印刷された文字列が次の文字列にならないように、文字列の末尾にある命令を使用して改行を作成しています。
mov bx, MESSAGE
call print_string
mov bx, ANOTHER
call print_string
hlt
print_string:
pusha
string_loop:
mov al, [bx]
cmp al, 0
jne print_char
popa
ret
print_char:
mov ah, 0x0e
int 0x10
add bx, 1
jmp string_loop
;global vars
MESSAGE: db 'Example string',0xa,0
ANOTHER: db 'Another example string',0xa,0
;padding/magic number
times 510-($-$$) db 0
dw 0xaa55
唯一の問題は、文字列が最終行の 1 行下に実際に印刷される一方で、新しい行が画面上の x 位置をリセットしないため、前の文字列のすぐ下に印刷する代わりに、前の文字列の下と直後に印刷することです。 .
出力例:
Example string
Another example string
文字列が前の文字列のすぐ下に出力されるようにするには、このコードをどのように記述すればよいですか?