어셈블리에서 BYTE 배열을 2, 4, 6, 8, 10으로 만들고이 값을 DWORD 형식의 배열로 바꾸고 숙제를 끝내려고합니다. 결과, 값의 순서를 바꾸고 어셈블리에 다시 표시합니다. 나는 8-> 32 비트 배열을 제외하고는 모든 조각을 교환하고있다. 가장 최근에 시도한 시도는 다음과 같습니다.BYTE 배열을 DWORD 배열로 읽는 중
INCLUDE Irvine32.inc
.data
byteArray BYTE 2, 4, 6, 8, 10
intArray DWORD ?
.code
main PROC
Swap:
mov si,OFFSET byteArray ;si=byteArray
mov ebx,OFFSET intArray ;ebx=intArray
mov ecx,LENGTHOF byteArray ;since byteArray is the one defined ATM
swaploop:
mov eax,[si]
mov [ebx], eax
inc esi
add ebx, 4
loop swaploop
대신'esi'의 이유는'si' 다음에 오는 것에 단계 것인가? – us2012
처음에 ebx를 사용해 보았는데 컴파일러가 인덱스 배열에 대한 오류를 줬습니다. –