Я новичок в ассемблере (MASM) и хочу взять массив слов и переключить 1-й и 2-й элементы, 3-й и 4-й и т. Д. Я знаю, как это сделать, но не могу понять,как положить EDI в 16-битный регистр. Наконец, как мне получить его, чтобы он выводил массив переключенных значений в десятичном формате? Это то, что я имею до сих пор.
TITLE ArrayCode
INCLUDE Irvine32.inc
.DATA
warray WORD 4,9,13,7,5,12,17,2,15,8
.CODE
main PROC
xor eax,eax
xor ebx,ebx
mov esi, OFFSET warray
mov edi, [esi+2]
mov ecx, 5
L1:
mov ax,[esi]
;Want to move edi into bx
mov [esi+2],ax
mov [esi],bx
movzx eax,bx ;Can i use this to fill the 16 bit and move it into the eax, and then use writeDec?
add esi, TYPE warray
loop L1
;Want to display array. Maybe another loop?
call writeDec
call WaitMsg
EXIT
main ENDP
end main