PDA

View Full Version : [assembly] inversione tra due celle


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?

cdere
19-11-2010, 23:39
e non funziona..

rеpne scasb
20-11-2010, 11:23

cdere
20-11-2010, 18:46
Puoi fare il tutto con un solo registro.

interessante repne, potrei sapere come? :D

rеpne scasb
20-11-2010, 18:48

cdere
20-11-2010, 18:58
grandissima grazie!!

rеpne scasb
20-11-2010, 19:27