Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DIM EQU 10
- .MODEL SMALL
- .STACK
- .DATA
- TAVOLA DB DIM*DIM DUP(?)
- .CODE
- .STARTUP
- )
- MOV BX, 0 ; Indice di riga
- MOV CX, 1 ; Moltiplicatore
- COLONNA: MOV SI, 1 ; Indice di colonna (dovrei partire da 1, uso un artificio per semplificare!)
- RIGA: MOV AX, CX ; Sposto il moltiplicatore su AX
- MUL SI ; Operazione su 16 bit, ma a me serve solo la parte bassa (AX, anzi, AL!)
- MOV TAVOLA[BX][SI-1], AL ; Così sfrutto SI sia per indirizzi che per moltiplicazioni
- INC SI ; Lavoro con byte -> perfetta analogia SI++ del C
- CMP SI, DIM+1 ; Ho finito le colonne della riga?
- JNE RIGA
- ; Al termine di ogni riga...
- INC CX ; Incremento il moltiplicatore
- ADD BX, SI ; AGGIUNGO a BX la nuova posizione di inizio riga (fine ultima colonna!)
- DEC BX ; ... ricordandomi il decremento di 1 (sono partito da 1)
- CMP BX, DIM*DIM ; Ho finito le righe della tabella?
- JNE COLONNA
- .EXIT
- END
Advertisement
Add Comment
Please, Sign In to add comment