实验一 RedASM编译器的使用
实验1-汇编器的使用及调试

用编辑软件一个简单的例子程序如下,存为test.asm (为方便将文件存 入汇编器目录下)
• • •
• • • • • • • • • • • • • • • • • • •
DATA SEGMENT var dw 1234h DATA ENDS
CODE SEGMENT ASSUME CS:CODE, DS:DATA .386 MAIN: MOV AX, DATA MOV DS, AX ;将数据段DATA段首址赋值给DS MOV AX, 2345h MOV BX, 3456h MOV CX, 4567h AND AX, 0FF0h AND BX, 0Fh AND CX, 0F000h OR AX, BX OR AX, CX MOV var, AX mov ax, 4c00h INT 21H CODE ENDS END MAIN
CODE
mov ax, 4c00h INT 21H ENDS
• 7)在调试程序中输入单步执行命令 t
• 8)多次输入单步执行命令 t,执行到最后,再输入”d 0”,
查看内存地址为0的开始的若干内存的值,如下:
• 9)输入退出命令 q, 退出调试程序。
• 用汇编程序MASM汇编上述的汇编语言源程序 1)运行cmd,打开命令行界面,如下:
2)键入”cd masm615” 命令,将当前目录调整到汇编器所在 的目录,如下:
3)键入”masm test.asm” 汇编命令,汇编源文件test.asm, 汇编完成后,在masm615目录下就出现了一个test.obj文件
• 4)键入”link test.obj” 链接命令,将目标文件test.obj链接 成一个可执行程序test.exe
其中会要求你输入文件名,直接回车,生成默认文件 输入其他文件名
RedASM编译器的使用简介1

RedASM编译器的使用简介1.编译器的设置本次实验采用汇编语言进行设计。
使用RedASM进行汇编程序的编译与调试。
具体设置如下:单击“新建工程”菜单选择“Dos App”,单击“下一步”单击“下一步”单击“下一步”按照上面的复选框钟的选择,单击“完成”双击右边黄色区域的文件,即可在灰色区域进行程序的输入了。
而程序的编译、连接、构建和调试等全部在“构建(W)”菜单里。
2.DOS中断调用程序的调试在编辑区输入下面的源程序,然后利用构建菜单里的“构建并运行”可以看到结果!;****************************;;* 简单汇编语句的使用*;;* 红色斜字体部分不要改动*;;****************************;data segmentx db 1000 dup(0)data endssseg segment stackdata1 db 100 dup(?)sseg endscode segment 'code'assume cs:code,ds:data,ss:ssegstart:;下面是汇编语句编辑部分MOV AX,1234HMOV SI,100HMOV [SI],AXexit: mov ah,4chint 21hcode endsend start3.调试状态下参数的说明在程序顺利通过构建后,才可以进行源程序的调试及分析,否则要依照提示修改错误!!!!选择菜单“在调试器中运行”,如下图所示:(1)寄存器状态选择“windows->Register”,可以看到如下窗口:ZR-零标志位 OV-溢出标志位 CY-进位标志位 AC-辅助进位标志位NG-符号位 PE-奇偶校验标志位(2)单步执行鼠标点击屏幕上的“ <Step>”,注意观察右边寄存器的值的变化!当运行到“MOV AH,4C”语句时一定要停止单步执行,如下图所示:(3)观察存储器的值选择“windows->Memory 1”,可以看到如下窗口:再选择“windows->Maximize”,可以看到如下窗口:可以清楚得看到在“0A73H:0100H”逻辑地址处放入了“1234H”这个数据!!!。
汇编教程7:RadAsm使用教程

汇编教程7:RadAsm使⽤教程最近深圳的天⽓真的⾮常热,对我个⼈来说、我从没有感觉过深圳有那么热。
现在已经到35°了,⾮常热。
⽽且我在深圳这边的租房条件差,诶空⽓流通不好、弄的我现在连家都不敢回。
即使回家也谈不上学习了、太热了。
这⾥同时再发发牢骚,深圳这边的消费实在是太⾼了,在关内租房⼀个不⾜20平⽅⽶的地⽅就2000⼀个⽉,消费⾼也就算了,这⼏年消费⾼了,⼯资⼀直都没有跟着增加、实在是有点不想在这待了,听说现在浙江那边还可以,不知道是不是真的。
好了,吹⽜就到这吧。
下⾯看看我们今天的话题Radasm使⽤教程。
本来我不想写这个教程的,因为jhkdiy ⼤哥已经写了⼀篇了,名字叫本来我不应该瞎掺合的,可是我发现jhkdiy ⼤哥写的是win32的,并没有提及16位汇编程序的开发(实际上我觉得都差不多),但是为了照顾⼤家的感觉,我还是写⼏篇吧。
⾸先我要说明下,我是不会全部教你怎么弄了,不难,好好参考下jhkdiy ⼤哥写的教程,他已经写的⾮常详细了。
⼤家⼀听说汇编,⽼是以为这是很难,或者是很古⽼的东西,其实正如jhkdiy ⼤哥所说的,汇编也有集成化的IDE开发环境,我个⼈只⽤过Radasm、其他的我觉得不怎么样,特别是现在cao_cong已经发布了打包好的开发环境,让你写汇编程序⾮常省⼼,可以说cao_cong已经为我们做完了⼏乎全部的⼯作,我个⼈对此是⾮常满意的,只是觉得这个汇编IDE还有个⼩bug、在Courier New字体下宋体会显⽰成英⽂,就这点让我⾮常不满意,希望下⼀个版本改进下。
既然是介绍Radasm那么我先告诉⼤家在哪下载,发布的最新版本,是2.2.1.1。
⾥⾯已经有了我们所需要的⼀切东西,甚⾄⾥⾯还带了好⼏篇汇编教程。
界⾯如下:下载安装我就不说了,jhkdiy ⼤哥已经说的⾮常明⽩,我主要和⼤家说说怎么建⽴dos程序、运⾏程序,点击[⽂件]-[新建⼯程] 注意了这⾥要选择Dos App,然后给个⼯程⽂件名,[下⼀步],这⾥选择[标准Dos程序.tpl],就这样,⼀个标准的dos程序就已经给你写好了,然后点击[构建]菜单下的编译和连接,最后点击运⾏,如果看到以下的提⽰表⽰你就安装完成了,就可以继续学习写程序⽽不⽤管怎么编译怎么运⾏了。
教你用RadASM编译《Intel汇编语言程序设计的代码》

话说在控制台上编译汇编程序已经有阵子了,从一开始的兴奋到现在的麻烦。
很想摆脱控制台上的编译,无可奈何的是没人教,没搜索到,因此只能凑合着用。
但在今晚,我解决了,我能摆脱了。
独乐乐不如众乐乐。
所以我写出方法来。
我的这个方法是在我上一篇文章《教你编译Intel汇编语言程序设计》的基础上的。
其实如果看完这两篇文章后,完全可以不用按照我说着的做。
所以你不必觉得麻烦。
第一篇文章的链接在最下面。
1:打开RadASM,选择菜单栏的“选项”,接着点击“路径设置”,然后就是设置路径。
设置路径图如下:“C:\Masm615\nm”是上篇文章中头文件、库、编译器、链接器的存放处。
(我承认我这样做是为了偷懒)2:然后创建个“控制台工程”,如下图:3:接着是一直按下一步,直到创建工程完毕(别按的太快哦,-_- 嘿嘿)。
4:打开窗口,把课本上的代码敲上去。
但我现在提供给你。
include irvine32.incincludelib irvine32.libincludelib kernel32.lib.codemain PROCmov eax, 10000hadd eax, 40000hsub eax, 20000hcall DumpRegsmain ENDPEND main ;希望大家自己把代码敲进去,我不敢保证我输入的符号对5:最后保存,然后按“构建并运行”。
当然,你也可以先按“编译”,“链接”,然后再按“运行”。
最后输出看下图:天啊!啥我就运行不了呢!为什么链接时会出现一个蓝色进度条呢!而且等了半天进度条还没完。
嘿嘿。
千万别在心里说上面句话。
你以为完了吗?其实是完了,只不过我故意不讲,因为我要让你们加深印象。
在第三步创建工程时,我已经很奸诈的笑了。
如果你看第一遍时就边看边做的话,那么我很遗憾的告诉你,你要重新来。
嘿嘿,没办法,只为了加深印象。
创建工程时,不停的按下一步,直到看到下图时就不要再按了。
看到上图的红色框框吗?刚才为什么在链接的时候蓝色进度条一直不停,就是因为LINK.EXE的原因。
使用MASM运行第一个汇编程序全过程

初次使用MASM编译器编写汇编程序的完整过程1.运行 cmd 命令2.输入edit3.进入汇编源码编辑框4.在源码输入框中输入汇编源码并将源程序保存,并拷贝到MASM和LINKER所在的盘符或文件夹下5.在 Dos 环境下进入到 MASM 5.0 汇编编译器所在的目录6.然后运行 masm.exe可以从上面的截图中看到 [. ASM] 的标记,这个标记代表的是需要在这里输入要编译的源程序文件名,这里有一点特别的是,由于默认的文件扩展名为 .asm ,所以在编译 .asm 的汇编源程序时可以不用指定源程序所在文件的扩展名。
7.我们将一开始编辑好的汇编源程序所在的文件输入以进行编译(1)此时可以看到编译器提示需要输入要编译出的目标文件的名称,由于在一开始已经指定了 js.asm,所以编译器自动指定了目标文件的名称为 js. obj 的名称,如果在这里不做修改的话,则编译器会以默认目标文件名称 js. obj 进行输出,在这里我并不改变名称,所以直接按 Enter 键即可;(2)提示需要输入列表文件的名称,其实是完全可以不要让编译器生成这个 LST 文件的,所以也不需要进行输入,直接按 Enter 键即可;(3)提示需要输入交叉引用文件的名称,这里也完全可以不要让编译器生成这个 CRF 文件,所以也不需要进行输入,直接按 Enter 键即可。
至此,汇编源程序编译成功编译得到的结果就是在我的 D:\ 目录下生成了一个 JS.obj 文件8.下面就是要实现对目标文件的连接经过编译操作后,我们得到了一个 .obj 的目标文件,但很显然,这还并不是一个可执行文件,下面就需要对目标文件进行连接,从而得到一个可执行文件。
一般来说,需要准备一个连接器,这里我使用的是微软提供的 Linker 连接器,即LINK.EXE。
9.进入 LINK.EXE 文件所在目录,直接运行 LINK.EXE此时提示需要输入被连接的目标文件的名称,这里也就是JS.obj ,由于我的 JS.obj 和 Link.exe 在同一目录下,所以不需要指定路径,直接给出.obj的名称即可,按Enter 键。
教你用RadASM编译《Intel汇编语言程序设计的代码》

话说在控制台上编译汇编程序已经有阵子了,从一开始的兴奋到现在的麻烦。
很想摆脱控制台上的编译,无可奈何的是没人教,没搜索到,因此只能凑合着用。
但在今晚,我解决了,我能摆脱了。
独乐乐不如众乐乐。
所以我写出方法来。
我的这个方法是在我上一篇文章《教你编译Intel汇编语言程序设计》的基础上的。
其实如果看完这两篇文章后,完全可以不用按照我说着的做。
所以你不必觉得麻烦。
第一篇文章的链接在最下面。
1:打开RadASM,选择菜单栏的“选项”,接着点击“路径设置”,然后就是设置路径。
设置路径图如下:“C:\Masm615\nm”是上篇文章中头文件、库、编译器、链接器的存放处。
(我承认我这样做是为了偷懒)2:然后创建个“控制台工程”,如下图:3:接着是一直按下一步,直到创建工程完毕(别按的太快哦,-_- 嘿嘿)。
4:打开窗口,把课本上的代码敲上去。
但我现在提供给你。
include irvine32.incincludelib irvine32.libincludelib kernel32.lib.codemain PROCmov eax, 10000hadd eax, 40000hsub eax, 20000hcall DumpRegsmain ENDPEND main ;希望大家自己把代码敲进去,我不敢保证我输入的符号对5:最后保存,然后按“构建并运行”。
当然,你也可以先按“编译”,“链接”,然后再按“运行”。
最后输出看下图:天啊!啥我就运行不了呢!为什么链接时会出现一个蓝色进度条呢!而且等了半天进度条还没完。
嘿嘿。
千万别在心里说上面句话。
你以为完了吗?其实是完了,只不过我故意不讲,因为我要让你们加深印象。
在第三步创建工程时,我已经很奸诈的笑了。
如果你看第一遍时就边看边做的话,那么我很遗憾的告诉你,你要重新来。
嘿嘿,没办法,只为了加深印象。
创建工程时,不停的按下一步,直到看到下图时就不要再按了。
看到上图的红色框框吗?刚才为什么在链接的时候蓝色进度条一直不停,就是因为LINK.EXE的原因。
汇编编译器的使用及程序调试 实验报告

将“隐藏已知文件类型的扩展名”选项前的 去掉;
将文件名“firPro.txt”重命名为“firPro.asm”即可。
(1)在“运行”窗口键入“cmd”,回车,打开字符界面,进入masm文件夹下,如图1-3所示;
图1-3进入masm文件夹
(2)键入masm firPro.asm,并回车,如图1-4所示。
(3)汇编语言的调试相对也比较麻烦,需要用到Debug或Deb2000命令,希望掌握常用的Debug或Deb2000选项,能够看懂反汇编的结果。
四、实验软硬件环境:奔腾系列机器,操作系统为Dos或者Windows系列,相关的汇编语言编译工具(MASM、LINK和DEBUG)以及集成编译器。
五、实验步骤和方法:
希望大家在熟悉了最基本的masm、link以及Debug的基础之上再去使用所提供的集成试验环境!
图1-6 link命令的执行
图1-7编译之后出现的可执行文件
图1-8可执行文件的执行结果
图1-9反汇编之后的结果
图1-10反汇编命令U的结果
图1-11推出反汇编的命令
四、实验预习要求:认真阅读实验指导书附录部分的内容,了解最基本的汇编语言的知识,包括8088/8086的体系结构和指令系统,在以后的实验中将会不断的用到相关的指令,在实验课中给出的课件中的相关内容也请大家仔细研读。根据实验过程和实验结果完成实验报告,并按时上交
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,msg ;此处输入代码据段代码
mov ah,9
INT 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START
ASM宏汇编使用指导手册

ASM-51宏汇编使用手册ASM-51宏汇編主要川來开发Inter8051系列单片机.它具有宏处理.数据处理•列液处理和条件处理等多种功能。
源程序的编写完全采用Inte「标准助记符和行恪式。
在編写程用过程中.吋借助于文本编辑(Windows的记泉本)或文字处理软件Word等編休经ASM-51汇編后生成列表输出文件(丄ST)和目标代码文件(・HEX)。
此目标代码文件(.HEX)町H接用CZS ・51或MedWin. Keil、Debug8051进行模拟/调试,或宜接用于硬件仿真器上运行•当然.这也是要烧写到单片机ROM中的代码。
1、宏汇編语肓的基本i吾法1、1宏汇編的特点ASM-51宏汇編完全支持Inte「助记符的汇編语育•它含有宏语句.英文人小写字母・变册名.标号等不受限!有二十.十六进制和弗参数类型.有汇編控制播令和多层条件语句.程用逻轲分段.还冇模块化程序设汁的连接功能.汇編速度抉等特点。
r2汇编处理过程(1)用行编辑EDLIN或文字处理软件WS或全屏毎編辑软件PE等.編辑宏江編语言谏程序.它的文件扩展名为。
ASM.(2)用ASM-51宏M褊程序对上述漁程序文件进行汇編.产生扩展名为丄ST的列表输出文件和扩展划为.HEX的目标代码文件(.HEX).列茨输出文件包含淞程序语句所汇編成的代码•以及有关的地址.语句和符号表等.目标代码文件包含源祝序语句所汇编成的代码.不包含任何符号信恩或助记符。
进行模拟/调试.或宜接用于硕件仿真器上运行。
1、3语句汇編语肓可分为两类语句:捋令性语句和描示性语句.(1)描令性语句这一类语句是抬在汇编过程中能生成揣令代码的语句(如MOV • DEC等).其恪式为:[标号:][摇令助记符][操作数][•注释]其中方括号[]中为选择项.卜同。
(2)抬示性语句这一类语句即通帘所说的伪折令•它揣示汇編程序后面的播示性语句如何产生代码.ASM-51宏汇編完全支持Inte「助记符的汇編语乳因此汇編程序的格式.抬令完全号8051订编语肓一样.这屮不再介绍它们的揣令系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 RedASM编译器的使用
一、实验目的
1.熟练掌握RedASM软件的使用方法。
2. 熟练掌握RedASM调试汇编程序的方法。
3. 掌握简单汇编程序的设计方法。
二、实验原理
参考《RedASM编译器的使用简介》。
三、实验设备与器件
PC机一台以及RedASM软件。
四、实验内容
1.按照《RedASM编译器的使用简介》,完成简介材料中的所有内容。
2.参照《RedASM编译器的使用简介》,编写程序计算X+Y,X-Y的值,并将结果放置
在Z变量中,记录运行后内存结果以及符号标志位的值。
(X,Y,Z均为变量)
3.参照《RedASM编译器的使用简介》,编写程序计算X/Y的值,并将商放置在变量
Y1中,余数放在变量Y2中。
规定X,Y均是8位二进制带符号数形式的变量,记录运行后内存结果。
(注意:实验结果不能直接显示在屏幕上,必须通过参看内存状态才能看到结果。
)
五、实验总结(实验报告要求)
1、给出实验中所有调试通过的汇编源程序,并给出实验结果。
2、对实验结果及实验中碰到的问题进行分析、讨论。
3、本次实验的心得体会。
4、必须用实验报告纸书写实验报告。