摘要: #include <iostream> using namespace std; void f1(int a,int b) { } int main() { f1(3,4); system("pause"); } 将上述代码反汇编如下(vs05debug): int main() { 004113D0 push ebp ;/保存栈基址 004113D1 mov ebp,esp ;将... 阅读全文
posted @ 2010-10-24 23:47 浪里飞 阅读(1400) 评论(0) 推荐(0) 编辑
摘要: 解释一:[1,2]●Unix编程中所谓"僵尸进程"指什么,什么情况下会产生僵尸进程,如何杀掉僵尸进程:在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用wait或waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程(僵死进程实际上是已死的进程,你当然不能杀死一个死人)●在一个进程调用了exit之后,该进程并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中 阅读全文
posted @ 2010-10-24 18:05 浪里飞 阅读(1521) 评论(0) 推荐(1) 编辑
摘要: 8086CPU的指令,可以处理两种尺寸的数据,byte和word。所以在机器指令中要指明,指令进行的是字操作还是字节操作。对于这个问题,汇编语言中用一下方法处理。(1)通过寄存器名指明要处理的数据的尺寸。例如:下面的指令中,寄存器指明了指令进行的是字操作:mov ax,1mov bx,ds:[0]mov ds,axmov ds:[0],axinc axadd ax,1000下面的指令中,寄存器指明... 阅读全文
posted @ 2010-10-24 17:03 浪里飞 阅读(10264) 评论(0) 推荐(0) 编辑
摘要: SOURCES的文件格式: TARGETNAME=drivername , -本参数用于指定生成的设备驱动程序名称(不需后缀名),所产生的文件 -为drivername.sys. TARGETPATH=.\lib -本参数用于指定生成的设备驱动程序所存放的路径.一般采用.\lib. TARGETTYPE=DRIVER -build能够生成许多不同的目标对象,设备驱动程序一般选用DRIVER. IN... 阅读全文
posted @ 2010-10-24 15:38 浪里飞 阅读(868) 评论(0) 推荐(0) 编辑
摘要: 1)默认情况下,内核加载器会加载所有的代码部分和全局数据到非分页内存中。而且,加载器是一次加载整个驱动的可执行文件,包括相关的DLL。加载后,内核加载器关闭驱动程序文件,甚至你可以删除当前正在执行的驱动文件。 但是,你可以告诉加载器你希望驱动的哪部分是可分页,所谓可分页,就是可能会被换页出内存(Page out)。可以使用下面的指令来实现: #define ALLOC_PRAGMA #pragma... 阅读全文
posted @ 2010-10-24 15:30 浪里飞 阅读(2977) 评论(0) 推荐(1) 编辑
摘要: 在《Windows驱动开发技术详解》书中讲述了如何设定VC以编译驱动程序,不过稍有点麻烦。 在[2,3]中也有用VC设置的方法。不过有点麻烦。 下面,我们用另外一种方法来进行编译: 在[4]官网上下载如下几个文件: ddkwizard_setup_v1.3.0a.exe, ddkbuild_bat.zip, ddkbuild_cmd.zip 不过太慢,我下了,在CSDN上传中[7]。 步骤: 1、... 阅读全文
posted @ 2010-10-24 12:30 浪里飞 阅读(2102) 评论(1) 推荐(0) 编辑