(译)Win32Asm 教程-1

win32asm.rar win32asm assemble code win32 assemble code cd code. 立即下载
Win32Asm 教程

这是我的Win32Asm教程。它总是创建中,但我会不停地添加内容。通过上面的nextprev链接,你可以转到后面和前面一页。

介绍

先来对这个教程做个小介绍。Win32Asm不是一个非常流行的编程语言,而且只有为数不多(但很好)的教程。大多数教程都集中在编程的win32部分(例如,winAPI,使用标准Windows编程技术等),而不是汇编语言本身,例如伪代码(opcodes),寄存器(registers)的使用等。虽然你能在其他教程中找到这些,但那些教程通常是解释Dos编程的。它当然可以帮你学汇编语言,但在Windows中编程,你不再需要了解Dos中断(interrupt)和断口(portIn/our函数。在Window中,WindowsAPI提供了你可在你的程序中使用的标准功能(function),后面还会对此有更多内容。这份教程的目标是在解释用汇编编Win32程序的同时学习汇编语言本身。

10汇编语言

汇编是创造出来代替原始的由处理器理解的二进制代码的。很久以前,但是尚没有任何高级语言,程序是用汇编写的。汇编代码直接描述处理器可以执行的代码,例如:

add eax,edx

这条指令-add-把两个值加到一起。Eaxedx被称为寄存器,它们可以保存值在处理器内部。这条代码被转换为66 03 c216进制)。处理器读这行代码,并执行它所代表的指令,像C等高级语言把它们自己的语言翻译为汇编语言,而汇编程序又把它转换为二进制代码:

C 代码

>> C编译器 > >

汇编语言

>>汇编器>>

原始输出(十六进制)

a = a + b;

add eax, edx

66 03 C2

(注意该处的汇编语言的代码被简化了,实际输出决定于C代码的上下文)

1.  1-为什么?(Why?)

既然用Asm写程序更困难,为什么你用Asm而不是C或者别的什么??-汇编产生的程序更小而且更快。在有人工智能的高级编程语言中,编译器要产生输出代码变得(比汇编)更困难。编译器必须指出最快(或最小)的方式产生汇编代码,而且虽然编译器变得越来越好,你自己来写(汇编)代码(包括可选的代码优化)能生成更小更快的代码。但是,当然,这比高级语言难多了。还有另一个与某些使用运行时dll的高级语言不同的地方,它们在大多数时运行良好,但有时由于dll版本(dll hell)产生问题而用户总是要安装这些Dll。对于Visual C++,这不是一个问题,它们是与Windows一同安装的。而Visual Basic甚至部把自己的语言转换为汇编语言(虽然5版本及以上作了一些,但不完全)。它高度依赖msvbvm50.dllVisual Baisc虚拟机。由VB产生的exe文件仅仅存在简单的代码和许多对这些dll的调用。这就是vb慢的原因。汇编是所有中最快的。它仅仅用系统的dllKernel32.dll, User32.dll等。

另一个误解是许多人认为汇编不可能用来编程。当然,它难,但不是不可能。用汇编创建大的工程的确很难,我只是用它来写小程序,用于需要速度的代码被写在能被其他语言导入的dll中。而且,DosWindows还有一个很大的区别。Dos程序把中断当“函数”用。像中断10用于显示,中断13用于文件存储等。在Windows中,API函数只有名字(比如MessageBox, CreateWindowsEx)。你能导入库(DLL)并使用其中的函数。这使得用asm写程序简单多了。你将在下一章中学习更多关于这方面的知识。

20开始

介绍已经够多了,现在让我们开始吧。要用汇编写程序,你需要一些工具。下面,你能看到我将在本教程中用哪些工具。我建议你安装同样的工具,因而你能跟着教程试验那些例子。我也给处一些其他选择,虽然你能选择其中的大部分,但是要警告的是在汇编器(masmtasmnasm)中有很大的区别。在这个教程中,将使用masm,因为它有很有用的功能(像invoke),它使得编程更容易。当然,你可以自己选择你更喜欢的汇编器,但这将使你更难跟着教程走而且你不得不把教程中的例子进行处理使它可以在你用的汇编器中运行。

汇编器

我的选择:Masm(在win32asm包中)

网址:win32asm.cjb.net

描述:一个把伪代码(opcodes)翻译为给处理器读的原始输出(object文件)的汇编器

关于:Masm,宏(macro)汇编器,是一个有很多有用的特色的汇编器。像“invoke”,它可以简化对API函数的调用并对数据类型进行检查。你将在本教程的后面学习这些。如果你读了上面的文字你就知道本教程推荐使用masm

供选择:Tasm[dl],nasm[dl]

链接器

我的选择:微软附加链接器(link.exe

网址:win32asm.cjb.net(在win32asm包中)

描述:链接器把对象(object)文件和库文件(用与DLL导入)“链接”到一起输出最终的可执行文件。

关于:我会用IczelionWin32asm包中的link.exe。但大多数的链接器都可以用。

供选择:Tasm linker[dl]

资源编辑器

我的选择:Borland资源编辑器

网址:www.crackstore.com

描述:用于创建资源(图形,对话框,位图,菜单等)的资源编辑器。

关于:大多数的编辑器都可以。我个人爱好是resource workshop但你可以用你喜欢的。注意由于resource workshop创建的资源文件有时给资源编译带来麻烦,如果你想使用这个编辑器,你应当把tasm一起下下来,他里面包含了用于编译borland风格资源的brc32.exe

供选择:Symantec资源编辑器,资源创建者(builder)等等

文本编辑器

我的选择:ultraedit

网址:www.ultraedit.com

描述:一个文本编辑器需要说明吗?

关于:文本编辑器的选这是十分个人的。我非常喜欢ultraedit。你可以下载我为ultraedit写的语法文件,因而可以使汇编代码语法高亮。但至少,选一个支持语法高亮的文本编辑器(关键字会自动标色)。这非常有用而且它使你的代码更容易读且更容易写。Ultraedit还有一个可以使你在代码中快速跳转到某一个函数的函数列表。

供选择:数百万的文本编辑器中的一个

参考手册

我的选择:win32程序员参考手册

网址:www.crackstore.com(或搜索互联网)

描述:你需要许多关于API函数的参考。最重要的是“win32程序员参考手册”(win32.hlp)。这是个大文件,大约24mb(一些版本是12mb,但不全)。在这个文件中,对所有系统dll的函数(kernelusergdishell等)都做了说明。你至少需要这个文件,其他的参考(sock2.hlp, mmedia.hlp, ole.hlp等)是有帮助的但不必须。

供选择:N/A

(译者注:该教程写成较早,现在有极好的MSDN供选择)

2.  1安装工具

现在你已经得到这些工具了,把它们安装到某个地方。这有几个值得注意的地方:

masm包安装到你打算写汇编源程序的那个区。这保证了包含文件路径的正确性。把masm(和tasm)的bin目录加到autoexec.batpath中,重起。

如果你用ultraedit,使用你可以在前面下载的语法文件并启用functionlistview(函数列表视图)。

在某个地方创建一个win32文件夹(或其他你喜欢的名字),并为你创建的每一个工程创建一个子文件夹。

masm win32asm. 立即下载

相关推荐

经典汇编教程Win32Asm教程

先来对这个教程做个小小的介绍。Win32Asm不是一个非常流行的编程语言,而且只有为数不多(但很好)的教程。大多数教程都集中在编程win32部分(例如,WinAPI,标准Windows编程技术的使用等),而不是汇编语言本身,例如伪代码(opcodes),寄存器(registers)的使用等。虽然你能在其他教程中找到这些内容,但那些教程通常是解释Dos编程的。它当然可以帮你学习汇编语言,但在Windows中编程,你不再需要了解Dos中断(interrupt)和端口(port)In/Out函数。在Windows中,WindowsAPI提供了你可在你的程序中使用的标准函数,后面还会对此有更多内容。这份教程的目的是在解释用汇编Win32程序的同时学习汇编语言本身

win32asm教程-9 ()

win32asm教程-9 ()[@more@] 10.0 masm的优点XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office"...

csd3176的博客 159

win32教学视频

win32教学视频win32教学视频win32教学视频win32教学视频win32教学视频

win32asm教程-8

 9.0更多的伪代码这儿有更多的伪代码TESTTest对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器。结果本身不会保存。Test用来测试一个位,例如寄存器:Test eax, 100b;b后缀意为二进制jnz bitset如果eax右数第三个位被设置了,jnz将会跳转。Test的一个非常普遍的用法是用来测试一方寄存器是否为空:test ecx, ec

taowen2002的专栏 1131

Win32Asm教程(基础篇)

****************************************************************来源: http://www.dav1d.org/原作者:taowen 如果你想继续深造的话,你可以参考如下资料:书名:Windows 环境下32汇编语言程序设计编著:罗云彬出版社:电子工业出版社****************************

augvii的专栏 802

win32asm教程12-完结 ()

win32asm教程12-完结 ()[@more@]这个是本系列教程的最后一篇了。下面我可能会贴出关于用汇编写一个游戏的实例。仍然是面向基础,面向初学者的。在此,也要感谢原作者:james的大力支持,无偿提供本文的中...

csd3176的博客 224

【notes6】linux命令/工具,systemd,文件操作,动静态库,信号,socket,std&boost,raii,智能指针,引用,完美转发,数据结构,类和对象,python

apt install python3-pip --fix-missing(断开vpn,cp /etc/apt/sources.list /etc/apt/sources.list.bak,python3 -m pip install --upgrade pip,apt-get update,pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com)如下设置win账号,因为默认禁止空密码登录。

持续更新ing... 6711

汇编工具 win32asm

汇编 win32 asm汉化了的,好用  下载地址:http://download.csdn.net/source/1565145

Zimmerk的杂物堆 923

Win32ASM经验点滴 ()

Win32ASM经验点滴 ()[@more@] win32ASM经验点滴#1作者:'Ates(Mailto:ates@.NET.net.tr">ates@anet.net.tr)XML:namespace pref...

csd3176的博客 107

WIN32ASM教程

dREAMtHEATER收集的WIN32ASM教程,内容很全,包括32汇编的基础知识,Iczelion的经典教程中英文版,罗云彬的32汇编教程,还有PE格式和VxD的一些内容。

精通Win32 API编程-Windows图形界面编程

Windows的API(Application Programming Interface,应用程序编程接口),是Windows 操作系统提供给应用程序的大量函数,学习本课程,不仅可以掌握Windows界面编程,开发华丽的Windows桌面运用程序,也可以为MFC框架的学习奠定扎实的基础,同时是否熟练的掌握Windows API开发,也是企业考量优秀程序员一个非常重要的指标!

Win32Asm及其编程工具和资源的介绍

介绍 先来对这个教程做个小介绍。Win32Asm不是一个非常流行的编程语言,而且只有为数不多(但很好)的教程。大多数教程都集中在编程win32部分(例如,winAPI,使用标准Windows编程技术等),而不是汇编语言本身,例如伪代码(opcodes),寄存器(registers)的使用等。虽然你能在其他教程中找到这些,但那些教程通常是解释Dos编程的。它当然可以帮你学汇编语言,但在Windows中编程,你不再需要了解Dos中断(interrupt)和断口(port)In/our函数。在Windo

今夜雨 2100
上一篇: (译)Programming Windows-1
下一篇: (译)Programming Windows-2
taowen2002
博客等级 码龄25年 8粉丝 61原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值