如何在MASM32中查看不同标志的值和寄存器的内容

时间:2014-12-06 20:32:36

标签: assembly masm masm32

我有一个要求,我需要初始化一些寄存器,执行一些指令并查看不同标志的值(如CF,OF,SF,ZF,AF和PF)以及最后寄存器的内容最后一条指令我正在使用Windows 8,并且正在使用masm32附带的qeditor。

我不限于使用任何特定的编辑器。即只要它是一个masm汇编程序,我就可以使用任何编辑器或编译器。谁能让我知道需要做些什么来满足要求。

提前致谢。

2 个答案:

答案 0 :(得分:1)

这就是我要说RTFM的地方!单击QEeditor中的帮助菜单并阅读帮助文件。 MASM32库参考包含一个名为StdOut的proc的帮助,它将打印字符串,因此您必须将寄存器中的值转换为字符串。

MASM32宏高级参考,宏类别>控制台模式宏,有一个名为print的宏可以打印任何东西,但是你需要再次将值转换为字符串。这可以在其他宏的帮助下完成。

这是我做的:

include masm32rt.inc

.code
main:

    mov     ebx, 10
    print "The value of ebx is: "
    print str$(ebx), 13, 10

    mov     ebx, 2065
    print "The value of ebx is: "
    print str$(ebx), 13, 10   

    mov     eax, 34
    mov     ebx, eax
    print "The value of eax is: "
    print str$(ebx), 13, 10      

    inkey
    ret
end main

注意到我将eax的值移到ebx中进行打印。那是因为如果我使用寄存器eaxecxedx,它们将被覆盖,因为它们是易失性寄存器。因此,要打印易失性寄存器,请将值移到非易失性寄存器中:esiediebx

答案 1 :(得分:0)

  call DumpRegs

将打印所有寄存器值和标志