Bonsoir,
j'ai un petit probleme avec mon code assembleur, je programme en avec tasm(le prof veut qu'on utilise ce simulateur), et j'ai quelque chose qui m'interpelle au niveau du code que je ne comprend pas bien...
Je vais commencer par le debut, une fois le code chargé, je rajoute deux rangée de chiffre a l'adresse 200 et 210 de cette facon:
"e ds:200'132465'"
"e ds:210'13654'"
et voici le bout de code :
Voila tous est dis dans les commentaires du code , si quelqu'un a une idée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 0D18:0100 33C0 XOR DX,DX 0D18:0102 33DB XOR BX,BX 0D18:0104 33C9 XOR CX,CX 0D18:0106 33D2 XOR AX,AX 0D18:0108 B330 MOV BL,30 0D18:010A BE0F00 MOV SI,000F ;//mets la valeurs 000f dans ax 0D18:010D 80BC000200 CMP BYTE PTR [SI+0200],00 ;//compare le premier octets qui pointe a l'adresse 200+si avec 00 0D18:0112 7503 JNZ 0117 ;//jump en 117 si le resultat de la ligne precedente a mis le flag zero flag a 0 0D18:0114 4E DEC SI ;//decremente si 0D18:0115 EBF6 JMP 010D ;//jmp a 10D 0D18:0117 BF0F00 MOV DI,000F ;//mets 000f dans di 0D18:011A 80BD100200 CMP BYTE PTR [DI+0210],00 0D18:011F 7503 JNZ 0124 -u ; dans si se trouve le nombre de chiffre qu'il y a dans 200 ;dans di se trouve le nombre de chiffre qu'il y a dans 210 0D18:0121 4F DEC DI 0D18:0122 EBF6 JMP 011A 0D18:012E 8A951002 MOV DL,[DI+0210] ; dans dl se trouve ce qu'il y a l'adresse 210 +di (di est la position du dernier chiffre dans cette adresse) ; mais il y a 30 qui se rajoute dans dx en plus pourquoi???
Merci d'avance pour votre aide
Partager