natostanco
11-11-2010, 19:16
Salve, un esercizio che richiede l'inversione tra le celle di memoria:
da invertire il contenuto delle celle da 200H a 300H, quindi 200H con 300H, 201H con 299H ecc...
ragionandoci sopra ho deciso di utilizzare 5 registri, 2 che puntano alle celle, 2 per fare lo scambio ed 1 come contatore, questo e' il pezzo
MOV CX,50H
MOV BX,200H
MOV BP,300H
INVERSIONE:MOV AX,[BP]
MOV DX,[BX]
MOV [BP],DX
MOV [BX],AX
INC BX
DEC BP
DEC CX
JNZ INVERSIONE
ovviamente il contatore a meta' perche' altrimenti si ritorna nella condizione iniziale :D
e' corretto? qualche suggerimento? magari per utilizzare meno registri, fare meno operazioni?
da invertire il contenuto delle celle da 200H a 300H, quindi 200H con 300H, 201H con 299H ecc...
ragionandoci sopra ho deciso di utilizzare 5 registri, 2 che puntano alle celle, 2 per fare lo scambio ed 1 come contatore, questo e' il pezzo
MOV CX,50H
MOV BX,200H
MOV BP,300H
INVERSIONE:MOV AX,[BP]
MOV DX,[BX]
MOV [BP],DX
MOV [BX],AX
INC BX
DEC BP
DEC CX
JNZ INVERSIONE
ovviamente il contatore a meta' perche' altrimenti si ritorna nella condizione iniziale :D
e' corretto? qualche suggerimento? magari per utilizzare meno registri, fare meno operazioni?