J'ai la fonction suivante:x86 impression étrange après console a défilée
printRows proc
mov cx, 25
printRowsLoop:
mov si, 0
printSingleRowLoop:
mov ah, 3 ;save current cursor position at dx (dh:dl)
int 10h
push dx ;keep the position for later
mov ah, 2
mov dl, '&'
int 21h ; print '&' char in the current curser position
pop dx ; restore dx
add dl, 5 ; increase the column of it with a const number (so it would look like a square)
mov ah, 2
int 10h
inc si
cmp si, 3 ; print 3 '&' in each row
jne printSingleRowLoop
mov dl, 13 ; result of these 3 groups of commands should be 2 new lines
mov ah, 2
int 21h
mov dl, 10
;mov ah, 2 ; ah is alredy 2
int 21h
;mov dl, 10 ; dl is already 10
;mov ah,2 ; ah is already 2
int 21h
loop printRowsLoop ; print (cx) lines
ret
printRows endp
la sortie de celui-ci doit être ce qu'on voit dans le this screenshot - ce qui est la sortie de celui-ci (au moins dans le begginig Mais, après que la "bonne" sortie ait rempli la console (quand elle a dû "défiler"), elle n'imprime plus ces espaces entre chaque '&', mais les imprime simplement dans une nouvelle ligne as can be seen here.
Qu'est-ce qui pourrait causer un comportement aussi étrange? Qu'est-ce que je fais mal? Comment devrais-je résoudre ce problème?
J'utilise emu8086.
Votre code a quelques erreurs! Autour de l'appel SetCursor vous avez écrit 'push bx' et' pop dx'. Aucun de ceux-ci sont nécessaires et à cause de l'inadéquation tout simplement faux. S'il vous plaît les enlever. –
Si votre solution résout le problème du défilement, alors * emu8086 * doit être un très, très, très mauvais programme. –
J'ai corrigé ces erreurs, merci. Je suppose que emu8086 est vraiment un mauvais programme (il a beaucoup de bugs). comment résoudrais-tu ce problème? – Xiobiq