Probablement une question stupide, mais c'est mon premier projet dans ma classe d'organisation de machine et j'ai quelques problèmes. Le code ci-dessous est destiné à afficher '*' au milieu de l'écran de haut en bas. La ligne de code qui est wont assembler:
MOV ES: [ numLoops * 80 * 2 + (40 * 2) ], BYTE PTR '*'
Obtention de la valeur d'une variable dans le langage d'assemblage
Je comprends pourquoi cela ne réunirons, mais je ne sais pas quoi mettre en place des numLoops
afin d'obtenir sa valeur de sorte que chaque fois que la ligne du code est exécuté, il monte d'une ligne que numLoops
est décrémenté. Tout conseil serait grandement apprécié, merci.
MyData SEGMENT
numLoops DB 25
MyData ENDS
;-------------------------------------------------------------------------------
MyCode SEGMENT
ASSUME CS:MyCode, DS:MyData
MainProg PROC
MOV AX, MyData
MOV DS, AX
MOV AX, 0B800h
MOV ES, AX
loop25:
CALL displayChar
DEC numLoops
CMP numLoops, 0
JNE loop25 ;if not equal to 0, numLoops - 1 and repeat
MOV AH, 4Ch
INT 21h
MainProg ENDP
displayChar PROC
MOV ES: [ numLoops * 80 * 2 + (40 * 2) ], BYTE PTR '*'
RET
displayChar ENDP
MyCode ENDS
Cela a travaillé merci – BCRwar1