首页 > 代码库 > 谈Win32汇编
谈Win32汇编
最近接触到Win32汇编,才知道汇编必须是和平台相关的,如做应用则和操作系统和CPU类型相关,而做操作系统就和只和的CPU类型有关。对于《微机原理》里面的汇编,那是DOS汇编,而Win32汇编是基于Windows的汇编。DOS和Windows是两个完全不同的操作系统了。
DOS汇编功能的实现依靠的是DOS系统提供的软中断,DOS程序是面向过程的单任务的;而Win32汇编功能的实现依靠的是WinAPI,基本的元素是与具体CPU类型有关的汇编指令(一般都是X86啦,因为微软就支持这个~~)。然后记住不多的常用X86汇编指令,结合Win32API就可以写程序了。当然,在什么编程环境下进行呢?一般都市MASM32 SDK,这个目前最新版本是Vison11(我于2014.9.3下载),当然这个和微软没多大关系了,是由牛人维护的~~http://www.masm32.com/
当然,在真正开始编程时,还要注意一下MASM编程格式,嗯,推荐一本好的书籍《琢石成器—Windows 环境下32位汇编语言程序设计》
(其实格式并不复杂,语言语法也不复杂,主体还是WinAPI~~不过此时的调用API就比较讲究了,不是我们在Visual C++里面那样调用就可以,还要考虑一些,例如返回值过大~~这个就要自己定义一个缓冲区去存放返回值了~~咦,是不是觉得控制程度很高啊~~
学习这个有什么用?直接用Visual C++IDE,然后用高级语言去写程序岂不是很省事?《琢石成器》的作者罗云彬的解释是,当我们在Windows下进行加密解密、逆向工程,还有病毒、木马等有害代码的分析和防止工作时,Win32汇编是唯一的选择。(咦,360是会要你的,求才欲渴啊~~)。嗯,某些游戏的开发估计也用得上(流程是最重要的用户体验嘛~~) 嗯,至于我,这个是在调代码时很有帮助的,无法正常运行的程序,只能去看他的汇编代码了,这个是终极调试~~
DOS时代的前辈捧着的是《DOS中断大全》,Windows时代就要备着《Microsoft Win32 Programmer‘s Reference》了,这个在我这里有得下载,在其他站点下载的很多是不能正常打开的~~咦,所以千辛万苦找到个能用的,也就共享出来了,不用你们去找了。咦~,都是这样的,操作系统为我们屏蔽了硬件差异,封装了很多功能,这个是好的,由此带来的就是我们要捧着它的厚厚的去以它为标准,好好和它磨合着过了~~
说到DOS,那个操作系统是不错的(咦,windows保留的那个黑乎乎的窗口叫做控制台(console),并不是MS-DOS操作系统噢,在这个控制台中有些DOS的指令是无法执行的~~)DOS的好在哪里?咦,小,40KB左右,呵呵,用在嵌入式~~不过X86架构的嵌入式芯片没有。好吧,某一天高兴了不知能不能用ARM指令来重写它,让它在STM32上跑,哈哈,有空,有心情时试试~~(注意,MS-DOS的汇编源码微软是公布了的,微软把它捐给了美国的计算机博物馆~~这个我也下载了,有兴趣的可以连续我,不过哪天我有空了,把它共享出来吧!~)
哈哈,就这样了~~关于Win32汇编的感想就写到这里吧,具体去学习,建议大家捧着《琢石成器—Windows 环境下32位汇编语言程序设计》区啃吧!(顺便说一下,老罗这个人(就是该书的作者啦),是全国首个破坏过电信系统并被捕的黑客哦,咦,技术高深总是耐不住寂寞吗~~八卦的新闻链接 http://news.xinhuanet.com/newscenter/2002-04/23/content_369622.htm)
谈Win32汇编