Windows环境下32位汇编编程:动态获取API地址与Bootloader设计

需积分: 50 38 下载量 86 浏览量 更新于2024-08-07 收藏 5.2MB PDF 举报
"Windows环境下32位汇编语言程序设计,由罗云彬著,通过70多个实例深入讲解Win32汇编语言编程,涵盖从基础到高级的多个方面,包括多线程、注册表和网络通信等。本书适合Windows程序开发人员,特别是对汇编语言感兴趣的读者。" 在《应用实例-飞思卡尔芯片mc9s12xs128的bootloader设计》中,主要探讨了与PE文件(Portable Executable)相关的应用实例,这是Windows环境下32位可执行文件的标准格式。文章提到了两个关键知识点: 1. **动态获取API入口地址**: 在Win32编程中,API的使用通常有两种方式:静态链接(编译时使用导入库)和动态链接(运行时使用LoadLibrary和GetProcAddress)。当代码不能或难以在PE文件中包含导入表时,如附加到其他PE文件上的代码或远程线程中的代码,需要在没有导入表的情况下使用API。这个问题可以通过不依赖导入表的动态获取API地址的方法解决。文章指出,虽然LoadLibrary和GetProcAddress自身也是API,但可以通过一些变通方法来获取它们的地址,从而解决“先有鸡还是先有蛋”的问题。 2. **程序退出机制**: 提及了在DOS环境下,程序可以通过INT 21h/4ch或简单的Ret指令结束。在Win32中,尽管大部分程序使用ExitProcess来终止,但使用Ret指令同样有效。这一机制在创建子进程时尤为重要,因为CreateProcess函数在装载应用程序后会将返回地址压入堆栈,允许程序在没有显式调用ExitProcess的情况下结束。 《Windows环境下32位汇编语言程序设计》这本书是罗云彬的著作,书中通过70多个实例介绍了Win32汇编语言编程,内容覆盖从基础到高级,包括多线程编程、注册表操作和网络通信等。这本书适合想要通过Win32汇编语言进行Windows程序开发的读者,尤其是那些希望深入了解操作系统底层运作的程序员。书中强调了在Win32环境下,汇编语言仍然是强大的工具,即使在高级语言盛行的现代,仍然有其独特的价值。