Wie vertausche ich ein array in der Montage?
Ich soll ein array in umgekehrter Stelle. Ich habe daran gearbeitet für eine Weile, und dies ist, was ich habe. Kann mir jemand sagen was ich falsch mache?
.data
array BYTE 10h, 20h, 30h, 40h
.code
main PROC
mov esi, 0
mov edi, 0
mov esi, OFFSET array
mov edi, OFFSET array + SIZEOF array
mov ecx, SIZEOF array/2
l1: mov al, [esi]
mov bl, [edi]
mov [edi], al
mov [esi], bl
inc esi
dec edi
LOOP l1
call DumpRegs
call DumpMem
exit
main ENDP
END main
- Hausaufgaben Frage? Trotzdem sollte man nicht zunächst Platz
edi
hinter dem Ende des Arrays, wenn man abnehmen nach Lesen oder schreiben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen zu deklarieren zwei arrays, eines intilized mit Ihren Werten und die andere könnte sein, wie dies mit Hilfe der DUP-operator 5 DUP (?)
Und beginnen Sie mit dem verschieben der Werte aus dem ersten array um den zweiten mit einer Schleife.
Beispiel:
.Daten
myArr1 DWORD 5, 4, 3, 2, 1
myArr2 DWORD 5 DUP (?)
.code main proc
mov edi, offset myArr1
add edi, sizeof myArr1
mov esi, offset myArr2
mov ecx, lengthof myArr2
reverseLoop:
add ebx, [edi] mov[edi], ebx
sub edi, Typ myArr2
add esi, Typ myArr1
mov eax, [edi]
rufen Sie writeint
SCHLEIFE reverseLoop
beenden
main endp
Ende main