简单的x86汇编循环 - 使用PTR

时间:2017-03-21 01:21:52

标签: loops assembly x86 masm irvine32

我正在学习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

0 个答案:

没有答案