Delphi:中怎样取得EAX,EBX等寄存器的值?
是否要中断,我想编写程序随时查看寄存器的值
当是我需要的时,就中断,并显示虚拟地址

解决方案 »

  1.   

    integer i1,i2;
    ......
      asm
        mov i1,eax
        mov i2,ebx
      end;
      

  2.   

    在Windows编程中,除了特权指令之外,任何东西都是可以访问的,包括你可以使用的内存的任何部分,除了系统保护的以外。就像在Dos下面一样。
      

  3.   

    为什么得到的值总是一个固定的值?
    我将它放在Timer事件中,可是它的值一直没变?
    代码:
    以下在Timer事件中:
    var a,b:integer;
    begin
    asm
    mov a,eax
    mov b,ebx
    end;
    edit1.text:=inttostr(a);
    end;
    一启动,edit1显示一个数值,但是并没有随时改变
    难道eax 的值没有变过?
      

  4.   

    因为每次运行Timer事件时,EAX会被初始化成一个固定值,你设断点在begin处,运行到断点时,点菜单View->Debug Windows->CPU,你就可以看到Timer事件的汇编代码,往上翻几行,可以看到EAX被赋值了.