在C语言中可以使用内联汇编获取寄存器的值。不同的编译器使用内联汇编的方法不同,在VC/VS中使用内联汇编的关键为__asm,在gcc中使用内联汇编的关键字为asm。以vc6.0、IA32 cpu为例,提取通用寄存器eax、ebx、ecx、edx的值。#include#includeintmain(){unsignedueax,uebx,uecx,uedx;__asm//使用__asm进行内联汇编{//使用mov指令将eax寄存器的内容保存到ueax变量movueax,eaxmovuebx,ebxmovuecx,ecxmovuedx,edx}printf("eax=%x\tebx=%x\tecx=%x\tedx=%x\n",ueax,uebx,uecx,uedx);return0;}
|