辅助科技网

  RadASM(WIN32汇编编辑器)是编编版一款功能非常强大的WIN32汇编编辑器;它在业内是很著名的,汇编编译器包括了TASM,辑器MASM、下载语法高亮、附使Windows界面等多种功能;还自带了资源编辑器,用教调试器、程 流放之路辅助灵体更加完美的绿色工程管理功能,内置了非常之多的中文插件拥穿着,使用户在使用此软件的编编版时候,更加的辑器得心应手,需要的下载挚友可以将RadASM(WIN3流放之路释出辅助...

流放之路辅助灵体,RadASM(WIN32汇编编辑器)下载 附使用教程 2220 绿色中文版

流放之路辅助灵体,RadASM(WIN32汇编编辑器)下载 附使用教程 2220 绿色中文版

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

软件功能

  机器语言

  机器指令是附使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  、进入软件安装向导界面 ,点击下一步;

  3、点击我拥穿着此协议中的条款;

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

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

  6 、安装铺开中  ,请耐心的等待.....

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

使用计划

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

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

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

  4 、视图驻防了工具栏,工具栏、输出窗口、工程校验器 、属性 、打开文件标签等;

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

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

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

常见尴尬

  字符串的筹备程序

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

  为了方便对字符串的筹备  ,各种常用的编程环境也都授予了足够的拥穿着 。如: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文件,方便写代码时自动列出函数。

访客,请您发表评论:

© 2026. sitemap