J'ai donc commencé à écrire un "noyau" pour ainsi dire et j'essaye de lire une chaîne et de l'imprimer moi. Le problème vient quand je l'exécute et il imprime juste 3 du même caractère au lieu de ce que j'ai écrit sur la ligne.Mes fonctions de lecture et d'écriture crachent %%% au lieu des 3 caractères que j'ai mis
read_string:
call newline
mov si, read_attempt
call print
call newline
push bx
mov ah, 0x03
int 0x10
mov dl, 0
int 0x10
;read 1st char
mov ah, 0x08
int 0x10
mov bl, al
pop bx
;read 2nd char
mov ah, 0x03
int 0x10
add dl, 1
int 0x10
mov ah, 0x08
int 0x10
mov bl, al
pop bx
;read 3rd char
mov ah, 0x03
int 0x10
add dl, 1
int 0x10
mov ah, 0x08
int 0x10
mov bl, al
pop bx
;try to write all 3 chars
call newline
mov si, write_attempt
call print
call newline
push bx
mov al, bl
call printchar
push bx
mov al, bl
call printchar
push bx
mov al, bl
call printchar
call newline
mov si, read_write_success
call print
call newline
ret
S'il vous plaît garder à l'esprit que tout avant le « deuxième secteur » a été écrit comme il y a 2 mois et tout ce qui suit a été écrit au cours des 2 derniers jours. J'utilise également NASM pour assembler le code.
Voici une image de ce qu'il fait imgur
Je ne pense pas que 10h, ah = 08h fait ce que vous pensez. Je vous suggère de lire sur int 10h et ensuite décrire plus en détail ce que vous essayez de faire. – prl
faire 10h int et ah = 08h devrait "Lire le caractère et l'attribut à la position du curseur" et placez le char dans tout ce que je peux faire un bl mov, al et le pousser dans une pile pour une utilisation ultérieure – Psaidiwd
quel caractère est à la position du curseur? Aussi, à quoi servent les autres appels int 10h? – prl