首页
社区
课程
招聘
[原创]Win32汇编开发环境介绍和RadAsm简明教程第二版
发表于: 2006-2-11 15:23 18079

[原创]Win32汇编开发环境介绍和RadAsm简明教程第二版

2006-2-11 15:23
18079
自从第一版发布以来,陆续收到不少网友的来信,很多朋友说教程不错,很适合入门Win32汇编的开发环境,当初我写这个教程的目的也正是如此,所以自我感觉还不错。但随着来信的增多,问题也陆陆续续地来了,这也是很正常的事,因为人总是会出错的嘛,我现在不是来自首了吗^_^!,但更多的是更新本教程的内容。 以下的修改或更新有的是应网友提议,有的是我自己认为应该做的更好的事情,现列表如下:

  增加对安装MASMV328.2的介绍,很多朋友来信都是问如何安装MASM32,虽然对有些老手说完全没有这个必要,因为MASM32的安装程序已经制作的够简单了。可是我认为谁都有第一次的时候,介绍一下这方面的情况和注意事项还是有必要的。

  自己认为在语言上还可以更加通俗点,本来从小学到中学,我的作文一直都是不错的(!@%#^!!$&#$``别扔鸡蛋!),可是有电脑以后看的都是计算机的书,满脑子的逻辑性,使得写出的文章缺少了很多文学墨水,所以呢,第一版中我认为罗嗦和阐述不清的地方会做相应的修改。

  修改关于建立第一个测试程序的问题,这个测试代码是图片来的,可能由于图片的清晰度问题,使得有些细小的问题发生:看漏了一个小逗号程序就编译不通过了,而很多朋友正是因为第一次写程序就有问题而急急忙忙发邮件问我。现在改为用文本表示。

  还是修改第一个测试程序,第一版是说直接新建一个文本文件,然后粘贴代码,即可编译连接和运行程序了,本来当初是想尽量减少第一次工作的复杂性,但有的朋友说老是编译不通过,而照着后面的介绍新建一个工程就没有问题了。现在改为第一次就新建一个工程来测试我们的开发环境,虽然这样做会多走几步,但我保证不会难倒你的。

  虽然看教程的网友没有提及图片模糊的问题,但在我1024*768的显示器上有些图片并不是很清晰,而且我主页上的教程和电子书里的图片是无法通过鼠标右键来另存为图片的。这不是图片本身清晰度不高,而是当初是使用Word来编写教程的,保存为网页后图片的清晰度就差了很多。所以这个教程允许独立浏览每张关键的图片,让大家看的更清晰。

  新增名词解释,对认为大家比较陌生的缩略语或英文简称进行解释部分解释来自网络,在此对原作者表示感谢。

  由于RadAsm不像其它IDE那样集成了功能强大的调试器,而且汇编开发程序又容易犯错误。所以在RadAsm环境中调试程序显的颇为重要。这一版本增加了在RadAsm中进行程序调试的全面介绍。该章分三小节,第一节介绍RadAsm内置的调试方式;第二节介绍使用MASM32中的VkDebug来调试程序;第三节介绍了在RadAsm中配置第三方调试器。

  翻译了VkDebug的帮助文件,介绍了VkDebug所有的宏和相关函数的使用,已集成到本版的附录里。

  第一版的内容没有明确地分章节,这个版本会有明确的章节。

  第一版的电子书做的比较简单,而且在排版方面也做的不够好,这个版本将有所改进


  关于在RadAsm中无法输入中文的问题,这个版本会增加RadAsm编辑环境的介绍。

  一些不知名的更新。。。。。。

  --jhkdiy

  2006-1-21

教程和源代码下载:
下载地址已更新,请大家使用下载工具下载。
http://jhkdiy.501megs.com/code/download/Win32IDEandRadAsmV2.rar
网页教程:
http://jhkdiy.501megs.com/file/article/Win32AsmIDEandRadAsmIntroductionV2/index.htm



[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (37)
雪    币: 4580
活跃值: (992)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
不能下载啊,希望楼住检查一下
2006-2-11 15:36
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
3
不要用右键另存为,请使用FlashGet等下载工具下载电子书。
2006-2-11 15:41
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
我顶一下先!!!!!!!!!!!!
2006-2-12 12:47
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
在用书中提到的地址 http://www.aogosoft.com/masmplus/masmplus.rar
下载的压缩包好象有问题,我下载了好几次都遇到了解压错误,不知是为什么?
2006-2-12 12:50
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
6
可以到 http://www.aogosoft.com/ 网站下载
2006-2-12 13:23
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
7
刚刚试过,压缩包确实有问题,如果你需要的话可以留下您的电子邮件,我发给你。
2006-2-12 13:25
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢楼主,写的很好的教程,我下了,确实对我很有用。
2006-2-12 20:51
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
能不能发一份给我
谢谢
my email:iamrob@21cn.com
2006-2-12 21:46
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
10
TO:roby
你是要我的教程还是MASMPLUS?
我刚刚问过Aogo,他说MASMPLUS就要出新版了,测试版暂停下载了。
2006-2-12 22:13
0
雪    币: 246
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
我也要
email: amct@163.com
2006-2-13 08:54
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最初由 jhkdiy 发布
TO:roby
你是要我的教程还是MASMPLUS?
我刚刚问过Aogo,他说MASMPLUS就要出新版了,测试版暂停下载了。


我是要教程
我已经下载到了

感谢兄弟写的教程
抽空好好学习下
:)
2006-2-13 17:19
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我下了RadASM  搞了好久,可还是通不过,你的那个hello world 的程序知,不
知道,是哪错。
2006-2-13 21:28
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
14
TO:浪流
你能详细说一下你是怎么做的吗,我会尽量帮忙的。
2006-2-14 14:58
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我的是xp系统  系统盘是C盘   ,把masm32装到了F:\  
                              RadASM也装到了F:\
用汉化包汉化了RadASM         
设置路径   App: F\:masm32
别的都  默认的。
然后,就是新建工程了,上面选择 masm编译器
                      下面选择win32 app(no res
                      工程名称和说明 为  001
然后一直下一步,到完成
双击   001.Asm  
把那个  第一个Win32汇编程序      的代码复制过去
点 构建---》全部构建并运行
下面提示  构建时发生错误
不知道是哪弄错了,我真的想不出来了。
谢谢大哥帮忙。
2006-2-14 19:09
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
我把错误提示全都复制上来了:
F:\RadASM\masm32\bin\RC.EXE /v "001.rc"
Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823

Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.

Using codepage 936 as default
Creating 001.RES

RC: RCPP -CP 936 -f F:\111\001\RCa03692 -g F:\111\001\RDa03692 -DRC_INVOKED -D_WIN32 -pc\:/ -E -I. -I .

RC : fatal error RC1110 : could not open 001.rc

构建时发生错误.
总共编译时间 187 ms
2006-2-14 19:13
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
17
你把RadAsm构建时的错误信息贴出来看看。
2006-2-14 19:30
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
F:\RadASM\masm32\bin\ML.EXE /c /coff /Cp /nologo /I"F:\RadASM\masm32\include" "001.asm"
Assembling: 001.asm
001.asm(12) : error A2044: invalid character in file
001.asm(13) : error A2044: invalid character in file
001.asm(14) : error A2044: invalid character in file
001.asm(15) : error A2044: invalid character in file
001.asm(16) : error A2044: invalid character in file
001.asm(17) : error A2044: invalid character in file
001.asm(18) : error A2044: invalid character in file
001.asm(19) : error A2044: invalid character in file
001.asm(20) : error A2044: invalid character in file
001.asm(21) : error A2044: invalid character in file
001.asm(22) : error A2044: invalid character in file
001.asm(23) : error A2044: invalid character in file
001.asm(24) : error A2044: invalid character in file
001.asm(25) : error A2044: invalid character in file
001.asm(26) : error A2044: invalid character in file
001.asm(27) : error A2044: invalid character in file
001.asm(28) : error A2044: invalid character in file
001.asm(29) : error A2044: invalid character in file
001.asm(30) : error A2044: invalid character in file
001.asm(31) : error A2044: invalid character in file
001.asm(32) : error A2044: invalid character in file
001.asm(33) : error A2044: invalid character in file
001.asm(34) : error A2044: invalid character in file
001.asm(35) : error A2044: invalid character in file
001.asm(36) : error A2044: invalid character in file
001.asm(37) : error A2044: invalid character in file
001.asm(38) : error A2044: invalid character in file
001.asm(39) : error A2044: invalid character in file
001.asm(40) : error A2044: invalid character in file
001.asm(41) : error A2044: invalid character in file
001.asm(42) : error A2044: invalid character in file
001.asm(43) : error A2044: invalid character in file
001.asm(44) : error A2044: invalid character in file
001.asm(45) : error A2044: invalid character in file
001.asm(46) : error A2044: invalid character in file
001.asm(47) : error A2044: invalid character in file
001.asm(48) : error A2044: invalid character in file
001.asm(49) : error A2044: invalid character in file
001.asm(50) : error A2044: invalid character in file
001.asm(51) : error A2044: invalid character in file
001.asm(52) : error A2044: invalid character in file
001.asm(53) : error A2044: invalid character in file
001.asm(54) : error A2044: invalid character in file
001.asm(55) : error A2044: invalid character in file
001.asm(56) : error A2044: invalid character in file
001.asm(57) : error A2044: invalid character in file
001.asm(58) : error A2044: invalid character in file
001.asm(59) : error A2044: invalid character in file
001.asm(60) : error A2044: invalid character in file
001.asm(61) : error A2044: invalid character in file
001.asm(62) : error A2044: invalid character in file
001.asm(63) : error A2044: invalid character in file
001.asm(64) : error A2044: invalid character in file
001.asm(65) : error A2044: invalid character in file
001.asm(66) : error A2044: invalid character in file
001.asm(67) : error A2044: invalid character in file
001.asm(68) : error A2044: invalid character in file
001.asm(69) : error A2044: invalid character in file
001.asm(70) : error A2044: invalid character in file
001.asm(71) : error A2044: invalid character in file
001.asm(72) : error A2044: invalid character in file
001.asm(73) : error A2044: invalid character in file
001.asm(74) : error A2044: invalid character in file
001.asm(75) : error A2044: invalid character in file
001.asm(76) : error A2044: invalid character in file
001.asm(77) : error A2044: invalid character in file
001.asm(78) : error A2044: invalid character in file
001.asm(79) : error A2044: invalid character in file
001.asm(80) : error A2044: invalid character in file
001.asm(81) : error A2044: invalid character in file
001.asm(82) : error A2044: invalid character in file
001.asm(83) : error A2044: invalid character in file
001.asm(84) : error A2044: invalid character in file
001.asm(85) : error A2044: invalid character in file
001.asm(86) : error A2044: invalid character in file
001.asm(87) : error A2044: invalid character in file
001.asm(88) : error A2044: invalid character in file
001.asm(89) : error A2044: invalid character in file
001.asm(90) : error A2044: invalid character in file
001.asm(91) : error A2044: invalid character in file
001.asm(92) : error A2044: invalid character in file
001.asm(93) : error A2044: invalid character in file
001.asm(94) : error A2044: invalid character in file
001.asm(95) : error A2044: invalid character in file
001.asm(96) : error A2044: invalid character in file
001.asm(97) : error A2044: invalid character in file
001.asm(98) : error A2044: invalid character in file
001.asm(99) : error A2044: invalid character in file
001.asm(100) : error A2044: invalid character in file
001.asm(101) : error A2044: invalid character in file
001.asm(102) : error A2044: invalid character in file
001.asm(103) : error A2044: invalid character in file
001.asm(104) : error A2044: invalid character in file
001.asm(105) : error A2044: invalid character in file
001.asm(106) : error A2044: invalid character in file
001.asm(107) : error A2044: invalid character in file
001.asm(108) : error A2044: invalid character in file
001.asm(109) : error A2044: invalid character in file
001.asm(110) : error A2044: invalid character in file
001.asm(111) : error A2044: invalid character in file
001.asm(112) : fatal error A1012: error count exceeds 100; stopping assembly

构建时发生错误.
总共编译时间 1281 ms

我的masm32 本来是装在F:\  下面的
后来改到F:\RadASM\  下面了
2006-2-14 19:57
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
19
你给的第一个错误提示表示你可能建立了一个有资源的工程或者单击了资源编译选项。你可以用RadAsm打开我做的例子试试编译和运行。如果能正常编译、连接、和运行代表RadAsm环境配置好了。

你给的第二个错误提示表示在源代码文件(.asm)文件有非法字符,这个现象可能是复制时复制了一下网页代码或者其它特殊字符,请再次检查一下源代码。

最后建议:用RadAsm打开我的例子试试。
2006-2-14 22:42
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
谢谢,解决了
原因是复制过来的代码,确实有非法字符
后来,我用手工原样输入了一遍,就编译运行成功了。
再次真心的谢谢大哥的帮助.
2006-2-15 08:53
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
复制过来的代码是有一些类似于!!!!!!!!!的附加字符,但我改过字体以后就没有了。
再提一个问题:改过字体以后,光标的定位就不准确了,这种情况我在用JBuilder的时候也遇到过,不知道在RADASM下该如何应付。
2006-2-15 17:07
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
22
我自己觉得是字符宽度的问题
2006-2-15 17:08
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
23
楼主的教程那天载下来之后就拜读了一遍,感觉收获颇多。之前我下了RADASM之后是自己手动修改的.ini文件来改变它的一些属性的。我觉得RADASM最大的优势就是它给user的定制权利和自由很多。到目前为止,我还是只支持它.
2006-2-15 17:20
0
雪    币: 262
活跃值: (56)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
24
嗯,我也有同感,RadAsm在可扩展性方面也很好,我为此还特意向作者提出可以将代码编辑窗口变成全屏编辑模式。而作者在3天后便发布了2.2.0.7版本。其中就增加了对全屏编辑模式的支持。可以在2.2.0.7的代码编辑窗口中按Ctrl+W来切换模式。
2006-2-15 21:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
henhao,收益费钱
2006-2-15 22:08
0
游客
登录 | 注册 方可回帖
返回
//