河东软件园:绿色免费的软件下载站! 最新软件|软件分类|软件专题|软件发布

所在位置:首页 > 应用软件 > 编程工具 > RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

RadASM(WIN32汇编编辑器)下载 附使用教程

 2.2.2.0 绿色中文版
  • 软件大小:25.2 MB
  • 更新日期:2016-10-31
  • 软件语言:简体中文
  • 软件类别:编程工具
  • 软件授权:免费软件
  • 软件官网:
  • 适用平台:WinXP, Win7, Win8, Win10, WinAll
  • 软件厂商:

8.9
软件评分

本地下载文件大小:25.2 MB 高速下载需下载高速下载器,提速50%

软件介绍人气软件相关文章网友评论下载地址

为您推荐:编程工具

  RadASM(WIN32汇编编辑器)是一款功能非常强大的WIN32汇编编辑器;它在业内是很著名的,汇编编译器包括了TASM,MASM、语法高亮、Windows界面等多种功能;还自带了资源编辑器,调试器、更加完美的工程管理功能,内置了非常之多的插件支持,使用户在使用此软件的时候,更加的得心应手,需要的朋友可以将RadASM(WIN32汇编编辑器)下载来所以试试吧!

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

软件功能

  机器语言

  机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果所存放的位置等。

  由于机器指令与CPU紧密相关,所以,不同种类的CPU所对应的机器指令也就不同,而且它们的指令系统往往相差很大。但对同一系列的CPU来说,为了满足各型号之间具有良好的兼容性,要做到:新一代CPU的指令系统必须包括先前同系列CPU的指令系统。只有这样,先前开发出来的各类程序在新一代CPU上才能正常运行。

  机器语言是用来直接描述机器指令、使用机器指令的规则等。它是CPU能直接识别的唯一一种语言,也就是说,CPU能直接执行用机器语言描述的程序。

  用机器语言编写程序是早期经过严格训练的专业技术人员的工作,普通的程序员一般难以胜任,而且用机器语言编写的程序不易读、出错率高、难以维护,也不能直观地反映用计算机解决问题的基本思路。

  由于用机器语言编写程序有以上诸多的不便,现在几乎没有程序员这样编写程序了。

  汇编语言

  虽然用机器语言编写程序有很高的要求和许多不便,但编写出来的程序执行效率高,CPU严格按照程序员的要求去做,没有多余的额外操作。所以,在保留“程序执行效率高”的前提下,人们就开始着手研究一种能大大改善程序可读性的编程方法。

  为了改善机器指令的可读性,选用了一些能反映机器指令功能的单词或词组来代表该机器指令,而不再关心机器指令的具体二进制编码。与此同时,也把CPU内部的各种资源符号化,使用该符号名也等于引用了该具体的物理资源。

  如此一来,令人难懂的二进制机器指令就可以用通俗易懂的、具有一定含义的符号指令来表示了,于是,汇编语言就有了雏型。现在,我们称这些具有一定含义的符号为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。

  汇编语言是汇编指令集、伪指令集和使用它们规则的统称。伪指令是在程序设计时所需要的一些辅助性说明指令,它不对应具体的机器指令,有关内容在以后的各章节中会有详细叙述,在此不展开介绍。

  用汇编语言编写的程序称为汇编语言程序,或汇编语言源程序,在本教材中或特定的环境下,也可简称为源程序。汇编语言程序要比用机器指令编写的程序容易理解和维护。

软件特色

  1、与机器相关性

  汇编语言指令是机器指令的一种符号表示,而不同类型的CPU有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程序与机器有着密切的关系。

  由于汇编语言程序与机器的相关性,所以,除了同系列、不同型号CPU之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU之间的汇编语言程序是无法移植的,也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低。

  2、执行的高效率

  正因为汇编语言有“与机器相关性”的特性,程序员用汇编语言编写程序时,可充分发挥自己的聪明才智,对机器内部的各种资源进行合理的安排,让它们始终处于最佳的使用状态,这样做的最终效果就是:程序的执行代码短,执行速度快。

  现在,高级语言的编译程序在进行寄存器分配和目标代码生成时,也都有一定程度的优化(在后续课程《编译原理》的有关章节会有详细介绍),但由于所使用的“优化策略”要适应各种不同的情况,所以,这些优化策略只能在宏观上,不可能在微观上、细节上进行优化。而用汇编语言编写程序几乎是程序员直接在写执行代码,程序员可以在程序的每个具体细节上进行优化,这也是汇编语言程序执行高效率的原因之一。

  3、编写程序的复杂性

  汇编语言是一种面向机器的语言,其汇编指令与机器指令基本上一一对应,所以,汇编指令也同机器指令一样具有功能单一、具体的特点。要想完成某件工作(如计算:A+B+C等),就必须安排CPU的每步工作(如:先计算A+B,再把C加到前者的结果上)。另外,在编写汇编语言程序时,还要考虑机器资源的限制、汇编指令的细节和限制等等。

  由于汇编语言程序要安排运算的每一个细节,这就使得编写汇编语言程序比较繁琐、复杂。一个简单的计算公式或计算方法,也要用一系列汇编指令一步一步来实现。

  4、调试的复杂性

  在通常情况下,调试汇编语言程序要比调试高级语言程序困难,其主要原因有四:

  汇编语言指令涉及到机器资源的细节,在调试过程中,要清楚每个资源的变化情况;

  程序员在编写汇编语言程序时,为了提高资源的利用率,可以使用各种实现技巧,而这些技巧完全有可能破坏程序的可读性。这样,在调试过程中,除了要知道每条指令的执行功能,还要清楚它在整个解题过程中的作用;

  高级语言程序几乎不显式地使用“转移语句”,但汇编语言程序要用到大量的、各类转移指令,这些跳转指令大大地增加了调试程序的难度。如果在汇编语言程序中也强调不使用“转移指令”,那么,汇编语言程序就会变成功能单调的顺序程序,这显然是不现实的;

  调试工具落后,高级语言程序可以在源程序级进行符号跟踪,而汇编语言程序只能跟踪机器指令。不过,现在这方面也有所改善,CV(CodeView)、TD(Turbo Debug)等软件也可在源程序级进行符号跟踪了。

使用领域

  综上所说,汇编语言的特点明显,其诱人的优点直接导致其严重的缺点,其“与机器相关”和“执行的高效率”导致其可移植性差和调试难。所以,我们在选用汇编语言时要根据实际的应用环境,尽可能避免其缺点对整个应用系统的影响。

  下面简单列举几个领域以示说明,但不要把它们绝对化。

  1、适用的领域

  要求执行效率高、反应快的领域,如:操作系统内核,工业控制,实时系统等;

  系统性能的瓶颈,或频繁被使用子程序或程序段;

  与硬件资源密切相关的软件开发,如:设备驱动程序等;

  受存储容量限制的应用领域,如:家用电器的计算机控制功能等;

  没有适当的高级语言开发环境。

  2、不宜使用的领域

  大型软件的整体开发;

  没有特殊要求的一般应用系统的开发等。

  生成PE文件的顺序:

  1:Compile(编译资源文件) SHIFT+F5

  2:Assembly(汇编asm为机器码) F5

  3:Link(连接文件并生成PE文件) CRTL+ALT+F5

  4:Run(运行文件) SHIFT+CRTL+F5

  5:Run w/debug(调试运行) CRTL+D 技巧:

  一:通过在2,3行处下断点,当执行到第3行命中时,看EAX中的数值,把数值贴到VS中的工具-错误查找。可看出错误的问题是什么。(注意是十六进制的数)

  1:invoke LoadLibrary,offset dllName

  -》2:invoke GetLastError

  -》3:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK OTHER:

  1。选项设置路径:可设置相应的路径。

  2。OllyDbg中可设置OD相关路径:选项界面选项目录选项卡。 FAQ:

  1.radasm中无法找到resource文件时,是相对路径的问题

  当有资源时需要设置工程选项

  工程工程选项 4,O,$B/RC.EXE /v /I "$I",1

  这样就可以在使用rc文件中使用相对路径了······ 2.格式化输出字符串和数值

  wsprintf,addr szBuffer,addr szStart,............ szBuffer db 256 dup (?) ;全局变量

  local @szBuffer[256]:db ;局部变量 szStart db 'return : %d!',0 ; %d 输出十进制 %x输出十六进制 %s输出字符串, %c输出字符,%08x,小于8位时就用0填充,%lu是输出32位整数

  invoke wsprintf,addr szBuffer,addr szStart,eax ;

  szStart db 'return : %s!',0 ; 若是%s格式时就需要用 addr伪指令,因为%s接收的是一个变量的地址

  invoke wsprintf,addr szBuffer,addr szStart,addr szText ;

  invoke MessageBox,NULL,offset szBuffer,offset szCaption,MB_OK

快捷键

  一、设置字符格式常用快捷键:

  字体

  Ctrl+Shift+ F

  字号

  Ctrl+Shift+ P

  下一个更大的字号

  Ctrl+Shift+ >

  下一个更小的字号

  Ctrl+Shift+ <

  字号升一磅值

  Ctrl+ ]

  字号降一磅值

  Ctrl+ [

  二、设置段落格式常用快捷键:

  左对齐文本

  Ctrl+ L

  居中文本

  Ctrl+ E

  右对齐文本

  Ctrl+ R

  两端对齐文本

  Ctrl+ J

  单倍行距

  Ctrl+ 1

  1.5倍行距

  Ctrl+ 5

  2倍行距

  Ctrl+ 2

  取消段落格式

  Ctrl+ Q

  三、用键盘选择文本常用快捷键:

  自光标处向右选取连续的字符

  Shift+ →

  自光标处向左选取连续的字符

  Shift+ ←

  自光标处向下选取连续的行

  Shift+ ↓

  自光标处向上选取连续的行

  Shift+ ↑

  光标至一段的开始

  Ctrl+Shift+ ↑

  光标至一段的末尾

  Ctrl+Shift+ ↓

  光标至文档开始

  Ctrl+Shift+ Home

  光标至文档末尾

  Ctrl+Shift+ End

  光标至本行的开始

  Shift+ Home

  光标至本行的末尾

  Shift+ End

  上一屏

  Shift+ PageUp

  下一屏

  Shift+ PageDown

  选取全部文本

  Ctrl+ A

  纵向文本块

  Ctrl+Shift+F8+ 方向键

  随意放大或缩小预览文档

  Ctrl+ 鼠标滚轮

  在预览和页面视图间切换

  Ctrl+Alt+ I

  多任务时在各窗口间切换

  Shift+Alt+ Tab

安装方法

  1、下载文件找到"jfsky.com-HA.RadASM.exe"双击运行,进入软件安装向导界面;

  2、进入软件安装向导界面,点击下一步;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  3、点击我同意此协议中的条款;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  4、选择安装的组件,不需要的把勾去掉,点击下一步;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  5、文件安装位置,建议安装在D盘,点击下一步;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  6、安装进行中,请耐心的等待.....

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  7、安装完成,点击完成;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

使用方法

  1、安装完成,进入软件主界面如下图;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  2、文件包括了新建工程,打开工程、关闭工程、删除工程等;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  3、编辑包括了重做,剪切、复制、删除、查找、替换、列快等;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  4、视图保护了工具栏,工具栏、输出窗口、工程浏览器、属性、打开文件标签等;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  5、格式包括了锁定控件,置后、置前、显示网格、对齐等;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  6、工程包括了新建、导入、快捷键、资源、版本信息、语言等;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

  7、构建包括了编译资源脚本、编译、连接、构建、构建并运行等;

RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

常见问题

  字符串的处理程序

  字符或字符串是一类重要的非数值计算的处理对象。许多编辑软件都具有字符串查找、替换、大小写的转换、单词的自动识别等功能,网络上的信息搜索也是现在一种常用的功能等,这些功能的实现无疑都要涉及到字符串的处理功能。

  为了方便对字符串的处理,各种常用的编程环境也都给予了足够的支持。如:c语言编程环境提供了大量处理字符串的标准函数,象strlen、strcmp和strcpy等函数;C++、VC或VB等编程环境提供了字符串类String等。这些函数或类大大方便了程序员的编程。

  在计算机系统内,为了加快字符串的处理,在其指令系统中设置了多条处理字符串的指令,其详细内容请参阅第5.2.11节中的介绍。

  下面我们将通过几个例子来学习汇编语言处理字符串的方法。

  例10.1 编写一个求字符串长度的子程序Strlen,要求字符串的首地址为入口参数,且以ASCII码0为结束符,CX为出口参数,其存放该字符串的长度。

  解:

  .MODEL SMALL, C

  .DATA

  buffDB "This is a example.", 0

  .CODE

  StrlenPROC USES AX BX, String:PTR BYTE

  MOVBX, String

  XORCX, CX

  MOVAL, [BX]

  .WHILE AL!=0

  INCCX

  INCBX

  MOVAL, [BX]

  .ENDW

  RET

  StrlenENDP

  .STARTUP

  INVOKE Strlen, ADDR buff

  .EXIT 0

  END

  编写一个把字符串中的所有小写字符转换成大写字符的子程序Strupr,要求字符串的首地址和结束符为其入口参数。 解:

  .MODEL SMALL, C

  .DATA

  buffDB "This is a example.", 0

  .CODE

  StruprPROC USES AX BX, String:PTR BYTE, Tail:BYTE

  MOVBX, String

  .REPEAT

  MOVAL, [BX]

  .IF AL>='a' && AL<='z'

  SUBAL, 20H

  MOV[BX], AL

  .ENDIF

  INCBX

  .UNTIL AL==Tail

  RET

  StruprENDP

  .STARTUP

  INVOKE Strupr, ADDR buff, 0

  .EXIT 0

  END

  例10.3 编写一个从字符串中拷贝子串的子程序Strncpy,它有四个参数str1、str2、idx和num,其具体功能为把字符串str2中从第idx个(从0开始记数)字符开始、num个字符传送给str1,字符串str1和str2都是以ASCII码0为结束符。

  解:

  .MODELSMALL, C

  .DATA

  str1DB "12345ABCDEF", 0

  str2DB 20 DUP('A')

  .CODE

  StrlenPROC USES AX BX, String:PTR BYTE

  ……;参见例10.1

  StrlenENDP

  StrncpyPROC USES AX CX DI SI DS ES, str1:FAR PTR BYTE, str2:FAR PTR BYTE, idx:WORD, num:WORD

  LESDI, str1

  LDSSI, str2;取两个字符串的首地址

  INVOKEStrlen, SI;计算源字符串的长度,在CX中

  MOVAX, idx

  .IF AX >= CX;若字符起点就超过源串的长度

  MOVBYTE PTR ES:[DI], 0;拷贝的字符串为“空”

  JMPover

  .ENDIF

  ADDSI, AX;定源串中字符的起点SI

  MOVCX, num

  CLD

  .REPEAT

  LODSB

  STOSB

  .UNTILCXZ AL==0

  .IF AL!=0;设置目标串的结束符

  MOVBYTE PTR[DI], 0

  .ENDIF

  over:RET

  StrncpyENDP

  .STARTUP

  INVOKEStrncpy, ADDR str2, ADDR str1, 3, 5

  .EXIT0

  END

  是用“用16位除10”的方法从低向高依次得到每位的数值,但若待输出的数据是32位,用10除之后,其商很可能会超过16位,所以,不能简单地引用例10.7的方法来输出32位二进制。

  假设:32位二进制数Z为A×216+B,其中:A和B都是16位二进制数。 用10去除A,得:A=A1×10+A2,于是

  (1)

  假设A2×216+B被10除后所得的商和余数分别为B1和C1(B1≥0,C1≥0)。

  利用式(1)和“A2<10”,我们不难看出:Z的个位就是C1和B1<216。

  令Z1=A1×216+B1,显然,Z1就是Z/10所得到的商。

  对于Z1,再利用式(1)得到商Z2和C2。……,重复上面的步骤,直到所得商为0为止。

  下面的例10.9就是利用上面方法来输出32位二进制数值。

  例10.9 编写一个子程序,该子程序能把32位二进制变量的数值以十进制形式输出出来。若该数值为负数,则需要输出负号"-",否则,不输出符号。

  解:

  .MODEL SMALL, C

  .DATA

  CR = 13

  LF = 10

  Data1DD 908976789

  .CODE

  ;子程序Display是按十进制输出32位二进制数值SOURCE

  DisplayPROC USES AX BX CX DX SI DI SOURCE:DWORD

  LOCALFLAG:BYTE;定义一个字节类型的局部变量FLAG

  MOVBX, WORD PTR [SOURCE]

  MOVCX, WORD PTR [SOURCE+2]

  MOVFLAG, 0;FLAG=0——正数

  CMPCX, 0

  JGEnext

  INCFLAG;FLAG=1——负数

  NOTBX

  NOTCX

  ADDBX, 1;能否用指令INC BX?

  ADCCX, 0;上四条指令把32位数CX-BX变为正数

  next:

  XORDI, DI;压入堆栈字符的个数

  MOVSI,10;用10来除

  .REPEAT;本循环把32位二进制数转换成十进制

  XORDX, DX;数的字符串存入堆栈之中

  MOVAX, CX

  DIVSI

  MOVCX, AX

  MOVAX, BX

  DIVSI

  ADDDL, '0'

  PUSHDX

  INCDI

  MOVBX, AX

  .UNTILBX==0 && CX==0

  .IF FLAG==1;判断前面转换的数是否为负数

  MOVAL, '-';若是,把符号'-'压入堆栈

  PUSHAX

  INCDI

  .ENDIF

  MOVCX, DI

  .REPEAT;本循环把堆栈中的字符串显示出来

  POPDX

  MOVAH, 2

  INT21H

  .UNTILCXZ

  MOVDL, CR;下面六条指令显示回车、换行

  MOVAH, 2

  INT21H

  MOVDL, LF

  MOVAH, 2

  INT21H

  RET

  DisplayENDP

  .STARTUP

  INVOKEDisplay, Data1

  INVOKEDisplay, -123456789

  .EXIT0

  END

注意

  1、如果你曾安装了以前版本的RadASM汉化增强版,请不要卸载,只需覆盖安装即可。安装版本除了你选择了注册文件类型会在你的注册表中添加数据(可到ICON目录下查看具体添加内容,如果选择卸载同样会删除这些数据)外,不会产生别的垃圾文件,所以没必要卸载。因为卸载时可能把你安装后新建的一些工程一并删除,请谨慎使用卸载(默认在Masm和Cpp中新添加的工程不会被删除,但还是小心一点比较好)。若必须要卸载的话,请把你安装后新建的工程及配置文件备份到其它目录,再执行卸载!

  注:对于曾下载过我上一个 2.2.0.7 版汉化增强版本的朋友,为了减小下载负担,可以直接到我的网络硬盘 http://CCDebuger.ys168.com 上的 RadASM 文件夹中下载更新文件,就不需再下载完整的版本了。准备在以后的更新版本中也采取这种方法,以方便大家更新。

  2、这个版本我去掉了 TASM 5.0 的安装文件(主要为减小安装包体积),若要编译Tasm的程序的话请大家自己去下载TASM。

  3、考虑到在有的未装VC的机器上测试时,编译时会提示找不到MSPDB60.DLL的错误,我在这个安装版本中复制了一个VC的MSPDB60.DLL到你的系统目录,因为有些程序可能会用到它,所以在卸载时未作处理。你要是不需要的话,可到你的系统目录手工删除(建议保留这个文件)。

  4、如果你第一次编译 MASM 的 Dos App,可能会在构建的时候提示找不到 *.obj 文件,其实这时 *.obj 文件已经生成了。简单的方法就是重新启动一下 RadASM,再编译、构建时就正常了。

更新日志

  1、包含了编译 Win32 Asm 、C++ 的必须文件及我汉化的 OllyDBG(安装时需选择OllyDBG、Masm32及vc++6.0这几个组件)。

  2、添加了用于RadASM关联汇编文件的图标(安装时需选择文件关联组件),安装后你可在安装目录下的Icon目录内使用你喜欢的图标来定制关联文件的显示图标(替换图标时请把你需要替换的图标更名为原目录下的对应图标名称)。

  3、添加了由怜香整理的8086汇编教程、Venjiang整理的 Win32 汇编教程、陈国强整理的Win32 API参考(VB描述)、整理的C语言教程及经典的 Windows 程序设计电子书。

  4、添加了一个Cpp的对话框程序模板文件。

  5、添加了一个Masm的注册机程序示例,位于Masm的工程目录下的ASMkeyg文件夹内,推荐大家看一下。

  060621新增:

  1、把RadASM作者另一个资源编辑工具ResEd的汉化版也打包放在安装目录下,虽然RadASM自带有可视化的资源编辑器,但这个ResEd工具有些时候还是很有用的,你可以可视化的编辑其他的资源脚本,很方便。这个工具我以RadASM网站上的最新版本为基础汉化的。

  2、从WinASM中提取了两个模板(MDI和SDI模板),放了一个简单的注册机模板。

  3、放了一个可以在对话框程序中添加调整对话框控件大小代码的插件 KSresizer,已汉化并配置好了。把作者提供的例子程序也放在了MASM的工程目录下,有兴趣的可以看看。

  4、把帮助文件更新为 RadASM 官方主页上的最新版本。

  061207新增:

  1、添加由 drizz 写的两个库文件:

  (1)、Stdlib.lib:包含一些对文件、注册表、INI文件、字串等一些常用的操作函数,可以直接调用,以减少编程工作量。

  (2)、cryptohash.lib:密码学算法库,包含大部分常用密码学算法。

  这两个库我都在RadASM中添加了相应的API文件,方便写代码时自动列出函数。

下载地址

  • RadASM(WIN32汇编编辑器)下载 附使用教程 2.2.2.0 绿色中文版

    本地高速下载

人气软件

查看所有评论>>网友评论1

发表评论

您的评论需要经过审核才能显示

精彩评论

最新评论

盖楼回复X

(您的评论需要经过审核才能显示)