我有一个要求,我需要初始化一些寄存器,执行一些指令并查看不同标志的值(如CF,OF,SF,ZF,AF和PF)以及最后寄存器的内容最后一条指令我正在使用Windows 8,并且正在使用masm32附带的qeditor。
我不限于使用任何特定的编辑器。即只要它是一个masm汇编程序,我就可以使用任何编辑器或编译器。谁能让我知道需要做些什么来满足要求。
提前致谢。
答案 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中进行打印。那是因为如果我使用寄存器eax
,ecx
,edx
,它们将被覆盖,因为它们是易失性寄存器。因此,要打印易失性寄存器,请将值移到非易失性寄存器中:esi
,edi
,ebx
。
答案 1 :(得分:0)
call DumpRegs
将打印所有寄存器值和标志