实例030 利用Registers窗口查看CPU寄存器信息

2013-10-07 14:04:33 · 作者: · 浏览: 75

实例030  利用Registers窗口查看CPU寄存器信息

Registers窗口用于显示当前CPU寄存器的名字、数据和标志,同时也能够显示浮动栈指针。在Registers窗口中,用户可以改变任何一个寄存器的值和标记。用户可以通过选择View→Debug Windows→Registers命令或者按Alt+5组合键打开Registers窗口,实例如图1.79所示。

 
图1.79  利用Registers窗口查看CPU寄存器信息

Registers窗口可以查看CPU寄存器和标志位的值,并且值都是以十六进制数的形式显示的。寄存器可以存储立即数和地址值,如果是地址值,还需要结合Memory窗口进行具体值的查看。

(1)创建基于对话框的应用程序。

(2)在头文件DebugProgramDlg.h中添加OutputResult方法。

(3)OutputResult方法的实现代码如下:

  1. void CDebugProgramDlg::OutputResult()  
  2. {  
  3. CString strResult;  
  4. int iResult=0;  
  5. //添加代码开始  
  6. char *str = new char[100];              //定义字符串变量  
  7. strcpy(str,"Hello World!");             //给字符串赋值  
  8. int s,a,b;                      //定义整型变量  
  9. a = 5;                          //赋初值  
  10. b = 10;  
  11. s = a + b;                      //求和  
  12. strResult.Format("%s\r\n%d",str,s);  
  13. GetDlgItem(IDC_ED_RESULT)->SetWindowText(strResult);  
  14. }  

(4)在OutputResult方法内设置一处断点,按F5键进入调试状态,执行View→Debug Windows→Registers命令打开Registers窗口,可以查看EAX、ECX、ES等CPU寄存器的值。

心法领悟030:Registers窗口的使用技巧。

Registers窗口可以和Disassembly窗口配合使用,在Disassembly窗口中有许多寄存器的名称,只有通过Registers窗口才能查看到寄存器中具体的值。