我正在学习x86程序集和循环对我来说非常混乱。 对于提示:“编写一个程序,使用下面的变量和MOV指令将值从bigEndian复制到littleEndian,反转BYTE顺序。你需要使用PTR或LABLE来访问一个BYTE的 DWORD元素,并使用LOOP(设置ECX为4)和ESI和EDI进行间接 寻址“。
我的代码显示76993356
我应该使用带有bigEndian的PTR而不是像这样循环吗?
INCLUDE Irvine32.inc
.data
; declare variables here
bigEndian DWORD 12345678h
littleEndian DWORD 0
.code
main proc
mov ECX, SIZEOF bigEndian
mov EDI, OFFSET littleEndian
mov ESI, OFFSET bigEndian
TOP:
mov al, [ESI]
mov [EDI], al
inc ESI
dec EDI
loop TOP
mov edx, littleEndian
call WriteHex
exit
main ENDP
END main