实验3-汇编语言程序上机过程
汇编语言上机过程
汇编语言上机过程:一、上机前的软件准备:MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等)文本编辑器(如: , TURBO.EXE , TC.EXE , C.EXE 等)汇编程序(如:MASM.EXE , ASM.EXE 等)连接程序(如:LINK.EXE 等)调试程序(如:DEBUG.EXE 等)二、汇编程序建立过程:三、现在对(二)的每一个标有字母的过程(PROCEDURE)进行详细说明PROCEDURE a:建立汇编源程序(即:建立文件名.asm)这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。
将源程序代码录入计算机的方法很多,下面将介绍具体方法。
1.通过MD-DOS自带的EDIT.EXE文本编辑器进行输入,在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename 为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。
存盘后在DOS下可用DOS命令DIR来查看,如果看到了所存的文件存在,就可以进行进程b。
2.如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用C语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。
PROCEDURE b:编译目标文件(即:编译为.obj .lst .crf文件)这个过程计算机将把你编的正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。
如果此时你的程序有语句错误,系统将报错,并指出在第几行,什么类型的错误,你可根据提示去逐一修改。
现介绍具体过程:在DOS提示符下键入MASM filename回车(注:你系统内的汇编程序为MASM.EXE,如果你系统的汇编程序为ASM.EXE时,便将命令变为ASM filename回车。
汇编语言上机实验内容
实验一上机操作一、实验目的把握汇编语言程序编辑、汇编、连接、运行和利用DEBUG调试程序的方式。
二、实验设备PC机及相应的软件。
三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。
2、利用DEBUG进行程序调试,把握经常使用命令的利用方式,观看运行结果。
3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。
上机操作进程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDITc:\masm>MASM ABC;假设有语法错,回EDIT下改该程序c:\masm>LINK ABC;假设有错,回EDIT下改程序c:\masm>ABC假设运行结果错,回EDIT下改程序或在DEBUG下调试,找缘故。
c:\masm>DEBUG手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄放器的内容按二进制形式显示出来。
设:(BL)=01010011B分析:采纳2号功能挪用,别离输出30 31 30 31 30 30 31 31 显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;挪用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判定是不是终止MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ;编辑源程序c:\masm>MASM ShowBL ;汇编成Microsoft (R) Macro Assembler VersionCopyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成Microsoft (R) Overlay Linker VersionCopyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行01010011 ;屏幕显示c:\masm>-在DEBUG下查看的装入情形:c:\masm>DEBUG- R ;查看当前寄放器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。
汇编上机实验报告
汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。
实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。
程序运行正常,输出结果与预期一致。
实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
微机原理实验汇编程序上机过程
第一节汇编程序的开发过程本节主要介绍了汇编语言源程序的编辑、汇编、连接的方法,DEBUG调试命令及其使用方法。
一、简介汇编语言源程序:用汇编语句编写的解决应用问题的程序。
汇编程序:将汇编语言源程序翻译成机器语言程序的系统。
汇编:将汇编语言程序翻译成机器语言程序的过程。
在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。
(1)编辑软件行编辑软件:全屏编辑软件:WPS、、、WORD、PE等。
当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。
(2)汇编程序有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。
TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。
(3)连接程序用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的机器代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。
(4)辅助工具程序(.EXE)进行汇编语言程序调试和文件格式转换的程序有: 动态调试程序EXE2BIN.EXE 文件格式转换程序CREF.EXE 交叉引用程序编辑、汇编、连接、调试过程如下图所示。
TD(turbo Debugger简称)也是动态调试程序,可在DOS和Windows环境下运行,用户界面十分友好。
二、汇编源程序用编辑软件建立的源程序.ASM文件,必须经过汇编才能产生.OBJ文件。
为此,需键入:C:>MASM <源文件名>↘或C:>MASM↘按前一种格式键入,屏幕上显示:Microsoft(R) Macro assemble Version 5.00Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reservedOBJ filename[<file>.obj]:Source listing[nul.lst]:Cross-reference[nul.crf]:以上信息中方括中为该项提示的缺省回答值,冒号后面等待用户输入信息,若不改变缺省值则直接按回车键。
汇编语言程序设计上机实验报告(实验三)-循环程序设计
汇编语言程序设计上机实验报告(实验三)一、实验题目、内容及要求:一、实验题目、内容及要求:题目:循环程序设计内容:编写一程序,要求从键盘接收一个4位十六进制数,在终端上显示与它等值的二进制数。
二进制数。
要求:实验前要作好充分准备,包括程序清单、调试步骤、调试方法,对程序结果的分析等。
本实验要求在EDIT 下编写完整的汇编语言程并生成可执行文件运行。
下编写完整的汇编语言程并生成可执行文件运行。
二、实验时间及地点二、实验时间及地点日期:日期: 2011/11/21 节次:节次: 7.8 地点:地点:电子实验楼二楼电子机房电子实验楼二楼电子机房 三、实验目的三、实验目的通过本实验掌握DOS 系统功能调用功能,掌握循环程序设计的方法;学会编写循环结构程序。
构程序。
简述在实验过程中遇到的问题和解决的方法:简述在实验过程中遇到的问题和解决的方法:1、问题:遇到死循环解决方法:程序显示disp 中发现执行int int 21h 21h 会修改al 的值,避免这种情况的方法就是使用堆栈段。
2、问题:调试中出现no data segment 解决方法:start 开始时没有将数据段的IP 地址赋给dx 。
data segment 3、问题:可执行,结果为乱码解决方法:数据划分比较的粗,没有系统的将数据系统划分。
系统划分:<30h other 30h-39h num 39h-41h other 41h-46h big zi mu 46h-61h other 61h-67h small zi mu >67h other 运行结果:(要求用“抓图软件”抓程序的运行结果)(要求用“抓图软件”抓程序的运行结果)结果分析及实验体会:结果分析及实验体会:1、结果0001001000110100是十六进制数1234转化而来。
十六进制数通过ASCII码对照转换为二进制数。
A~F----- -57hA~ f----- -57h0~9 ------ -37h2、学习应用了循环指令并了解了其特点:A、循环指令不影响标志位B、其功能为使寄存器CX的值减1,如果结果不等于0,则循环至标号,否则顺序执行。
汇编语言上机实验指导
实验一汇编语言上机基本步骤一、实验目的:熟悉汇编语言的上机过程,掌握各项工具软件的使用方法二、实验环境:1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验内容:1.前期准备:在开始进行汇编语言上机练习之前,建立并进入自己的工作子目录,准备好相关工具软件如MASM.EXE、LINK.EXE等,其后所有工作均在自己的子目录中进行,以避免因路径概念不清而导致的文件存取错误,以及对系统其它部分造成影响。
1)建立自己的工作子目录(例如MYTEST):C:\>MD MYTEST2)进入自己的工作子目录:C:\>CD MYTEST3)将所需工具软件从其它地方(如C:\MASM)拷贝进自己的工作子目录:C:\MYTEST>COPY C:\MASM\MASM.EXEC:\MYTEST>COPY C:\MASM\LINK.EXE2.编写源程序:原则上可以用任何文字处理软件(如EDIT、写字板、甚至WORD)编写源程序,但必须注意,源程序应为ASCII码文件(或称纯文本文件),扩展名一般为.ASM。
因此,建议使用DOS环境下的EDIT软件。
1)在DOS系统操作提示符下键入EDIT并回车,即可进入EDIT文本编辑环境。
如果没有进入,检查当前路径下是否存在EDIT.EXE文件,以及文件是否完整等。
2)从键盘输入下列程序(不必输入注释部分):CODE SEGMENT;定义一个CODE段ASSUME CS:CODE;定义CODE段为代码段START:;可执行语句起始处MOV AH,02H ;以下三条语句将显示字母aMOV DL,’a’INT 21HMOV AH,4CH ;以下二条语句将返回DOSINT 21HCODE ENDS;CODE段结束END START;整个程序结束该程序的功能是仅在CRT屏上显示一个字母a,完成功能的只有其中的三条语句,但其它部分则是一个完整的汇编语言源程序必不可少的部分。
汇编语言上机实验汇总
汇编语言上机实验汇总汇编语言是计算机的低级语言,主要用于编写底层程序和驱动程序。
在学习汇编语言的过程中,学生通常需要进行一定数量的上机实验。
下面是一个汇编语言上机实验的汇总。
1.实验一:环境搭建-目标:搭建汇编语言开发环境2.实验二:基本语法-目标:学习汇编语言的基本语法和指令格式-内容:编写一个简单的汇编程序,包括数据段、代码段和堆栈段,以及常用指令(例如MOV、ADD、SUB、JMP等)的使用。
3.实验三:寄存器和内存操作-目标:熟悉汇编语言中的寄存器和内存的操作-内容:编写一个汇编程序,通过MOV指令将数据从内存中加载到寄存器中,然后进行运算,并将结果存储回内存。
4.实验四:条件分支和循环-目标:掌握汇编语言中的条件分支和循环结构-内容:编写一个汇编程序,使用条件分支指令(例如CMP、JE、JNE 等)实现一个简单的判断语句;然后使用循环指令(例如LOOP)实现一个简单的循环结构。
5.实验五:子程序和参数传递-目标:学习如何创建和调用子程序,并传递参数-内容:编写一个汇编程序,其中包含一个子程序,该子程序接受两个参数并返回它们的和。
然后在主程序中调用该子程序,并输出结果。
6.实验六:中断和异常处理-目标:了解中断和异常处理机制,并在汇编程序中处理中断或异常-内容:编写一个汇编程序,其中包含一个中断处理程序,当发生特定的中断时,该处理程序将执行一些特定的操作。
7.实验七:串操作和文件操作-目标:学习汇编语言中的串操作和文件操作-内容:编写一个汇编程序,使用串操作指令(例如MOVS、LODS、STOS等)操作字符串;然后使用文件操作指令(例如OPEN、READ、WRITE 等)读取或写入文件。
8.实验八:图形和音频处理-目标:了解汇编语言中的图形和音频处理- 内容:编写一个汇编程序,使用图形库(例如BGI、OpenGL、DirectX)绘制简单的图形或运行一个音频文件。
这些上机实验可以帮助学生逐步掌握汇编语言的基本知识和技能,并为以后的高级汇编语言编程打下基础。
汇编语言程序上机实验
设置断点
在需要调试的代码行设置断点,以便在程 序运行时暂停执行。
分析程序的输出结果
运行可执行文件
在实验环境中运行可执行文件,观察 程序的输出结果。
分析结果
根据程序的输出结果,分析程序的逻 辑和功能是否正确实现。如果输出结 果与预期不符,检查源代码和调试过 程,找出问题所在并进行修正。
04
实验内容
根据实验需求选择合适的硬件设备是实验成功的关键,需要 考虑设备的性能、兼容性和可扩展性等因素。
03
实验步骤
编写汇编语言源代码
确定实验题目和要求
根据实验指导书的要求,明确实验目的和任务,确定需要编写的 汇编语言程序。
编写代码
使用汇编语言编写源代码,实现程序的功能。注意语法和指令的 正确性,确保程序逻辑正确。
编写一个简单的汇编语言程序
总结词
了解汇编语言的基本语法和结构
详细描述
编写一个简单的汇编语言程序,如输出“Hello, World!”的程序,了解汇编语言的指令、寄存器、数据和程序结 构等基本概念。
实现一个简单的计算器程序
总结词
掌握汇编语言的算术运算指令
详细描述
编写一个可以进行加、减、乘、除运 算的简单计算器程序,通过汇编语言 的算术指令实现。
了解汇编语言程序的 基本结构,如程序头、 数据段、代码段等。
熟悉子程序和中断服 务程序的编写和使用。
掌握汇编语言程序的 流程控制结构,如顺 序、分支、循环等。
掌握汇编语言的程序调试方法
熟悉汇编语言程序的调试工具, 如调试器、反汇编器等。
掌握调试工具的基本使用方法, 如设置断点、单步执行、查看 寄存器值等。
调试程序并运行可执行文件
打开调试器
汇编语言程序设计的实验环境及上机步骤
第1章汇编语言程序设计实验1.1 汇编语言程序设计的实验环境及上机步骤1.1.1 实验环境汇编语言程序设计的实验环境如下。
1.硬件环境微型计算机(Intel x86系列 CPU)1台。
2.软件环境·Windows 98/XP/Me/2000操作系统;·任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等);·汇编程序(MASM.EXE或TASM.EXE);·链接程序(LINK.EXE或TLINK.EXE);·调试程序(DEBUG.EXE或TD.EXE)。
本书建议文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM.EXE,链接程序使用LINK.EXE,调试程序使用TD.EXE。
1.1.2 上机步骤汇编语言程序设计的实验2和实验3仅使用TD.EXE,关于TD.EXE的使用方法请参见附录B。
下面介绍的上机实验步骤适用于除实验2和实验3的所有实验(包括硬件接口部分的全部实验)。
1.确定源程序的存放目录建议源程序存放的目录名为ASM,并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建。
通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中单击右键,弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM5文件夹下的所有文件及TD.EXE都复制到此目录中。
2.建立ASM源程序建立*.ASM源程序可以使用记事本文本编辑器。
注意:保存时扩展名必须ASM。
设建立的源文件为HELLO.ASM3.用MASM.EXE汇编源程序产生OBJ目标文件源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。
具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。
微机原理汇编语言的上机过程 实验报告
微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。
实验原理及操作步骤一、上机环境❖要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。
▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。
▪调试程序:DEBUG.EXE,用于调试可执行程序。
二、上机过程❖汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序❖用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
❖无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编❖用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
❖汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。
❖汇编过程如下:❖在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。
❖此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。
Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。
如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。
此时,需要进行修改,然后再进行汇编。
❖如此进行,直至汇编无错误,得到目标文件为止。
3.连接❖汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
汇编语言程序设计的实验环境及上机步骤
汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下:1.硬件环境微型计算机(Intel x86系列CPU)一台2.软件环境⏹Windows98/2000/XP操作系统⏹任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)⏹汇编程序(MASM.EXE或TASM.EXE)⏹连接程序(LINK.EXE或TLINK.EXE)⏹调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。
二、上机实验步骤注:以下步骤适用于除汇编语言程序设计的实验一到实验四外的所有实验(实验一到实验四仅使用TD.EXE)。
1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。
2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。
下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。
在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“ C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图1所示。
图1 文本编辑器EDIT的编辑窗口窗口标题行显示了EDIT程序的完整路径名。
紧接着标题行下面的是菜单行,窗口最下面一行是提示行。
菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。
汇编语言程序上机实验
常用命令
C: CD
MD
RD DIR
bme bme bme
DEL
CLS EXIT
c.asm
进入C盘 指定当前路径上的bme为当前工作目录 在当前路径新建名为bme的子目录 删除当前路径的bme子目录 显示当前工作目录的文件列表 删除当前工作目录下的c.asm文件 清除屏幕显示内容 退出命令提示符
把MASM.zip 解压到E盘, 把已经编辑 好的 Hello.asm 放入文件夹 内。 打开命令提 示符。
输入“E:” 回车 进入E盘
输入“CD masm” 回车 指定masm 为当前工 作目录
此时可以输 入“DIR” 查看masm目 录下的文件 列表 可以看到, 有我们放进 去的 Hello.asm 文件
输入“link hello.obj” 回车 再三个回车 对 hello.obj 文件进行连 接
提示用户输入要建立的可执行文件 名,若默认括弧内的可执行文件名, 则直接按回车
询问用户是否要建立地址分配文件, 若要,则打入文件名,否则按回车
询问用户是否用到库文件,如果用 户自己建立了库文件,则键入库文 件名,否则按回车
obj文件进行连接提示用户输入要建立的可执行文件名若默认括弧内的可执行文件名若默认括内的则直接按回车执行文件询问用户是否要建立地址分配文件若要则打入文件名否则按回车询问用户是否用到库文件如果用户自己建立了库文件则键入库文件名否则按回车?观察masm文件夹当中是否生成hello
汇编 编辑 连接
调试
? 运行
ቤተ መጻሕፍቲ ባይዱ
代码区
数据区
寄存器区
堆栈区
汇编语言程序的上机过程.
返回DOS 和显示输出使用DOS功能调用 (INT 21H),参见P302页。调用步骤如 下:
;设置入口参数 AH=功能号 INT 21H AH=2 显示输出 DL=输出字符 AH=4CH 带返回码结束 程序结束前执行: MOV AX,4C00H INT 21H 就可以退出程序,返回DOS。
汇编语言程序的上机过程
一、进入系统
1、Ctrl+Alt+Del 系统热启动 屏幕显示:如果不是授权用户,请勿登录 确定 2、按确定后,屏幕显示: 用户名:wl51-2 密码: cjx 域:student6(6号机房),student7 (7号机房) 欢迎使用Windows NT!
3、出现Windows界面 光标指向左下角,点击开始,出现一菜单,选择其中程序 项,点击,出现子菜单。或在运行项中键入cmd也可进入 DOS状态。 在子菜单中选择“MS-DOS命令提示符”,点击后系统退 回 到DOS方式,出现DOS提示符Z : \ > 在Z盘的目录下有一子目录masm ,在该目录下有5个程序: A .OBJ ;老师提供的模块 DEBUG.EXE ;调试程序 ;文本编辑程序 MASM.EXE ;宏汇编程序 LINK.EXE ;链接程序 可以不进入DOS状态,而在WINDOWS下直接进入E盘。 4、 Z : \ > E : (回车);Z是系统盘,用户不能用。 要进入E盘(这是用户盘)
Байду номын сангаас
四、连接程序(LINK.EXE)
目标程序必须经过连接后,才能成为扩展名为.EXE 的可执行文件。 多个目标文件连接时,可用空格或+号来连接。 例如:LINK 文件名.obj A.obj(回车) 这里.OBJ可以省略
3月21日8:00-10:00,第一次上机,做编程题 中的第1、2两题。 其中第1题提示如下: ESC键的扫描码为01H,ASCII码为1BH;空格 的ASCII码为20H。 使用BIOS调用,参见P310页。 INT 16H AH=0 从键盘读入字符 AL=字符码 AH=扫描码 AH=1 读键盘缓冲区 ZF=0 AL=字符码 AH=扫描码 ZF=1 缓冲区空
汇编语言上机过程
汇编语言上机过程一、用汇编语言编写的源程序,使之运行必须经过以下几个步骤:1.用编辑程序建立一个扩展名为.ASM的汇编语言源程序文件。
2.调汇编程序(MASM),对源程序汇编,生成机器码目标文件,扩展名为.OBJ。
3.连接(LINK)目标文件,生成可执行文件,扩展名为.EXE。
4.运行可执行文件。
5.如果程序运行有错,可调用DEBUG 程序对.EXE文件进行调试。
二、编辑汇编语言源程序可用各种编辑软件来建立汇编语言源程序,例如记事本。
先保存为.TXT文件,然后改为.ASM文件,方法是在windows界面:工具——文件夹选项——查看——将“隐藏已知文件的扩展名”选项去掉。
然后将扩展名.TXT直接改为.ASM,汇编程序文件名称由用户自定(只能用英文字母、数字下划线)。
三、编译汇编语言源裎序用MASM程序汇编源程序,生成浮动目标程序(即扩展名为.OBJ的文件),这里产生的是浮动的目标模块,是不可执行程序。
汇编前,在DOS状态下用下列命令可以打开源程序,例如打开z1.asm的方法是:>type z1.asm <CR>则屏幕上显示出z1.asm的源程序。
汇编z1.asm文件过程的屏幕操作与显示如下:>masm z1.asm<CR>屏幕显示以下各行(一次一行),提示用户所应键入的信息:OBJECT FILENAME [ Z1.OBJ ] <CR>SOURCE LISTING [ NUL.LST ]:<CR>CROSS REFERENCE [ NUL.CRF]:<CR>产生目标文件(.OBJ)是汇编的主要目的,通常用户可以直接回车,表示采用默认文件名。
(.LST)文件为列表文件,提供全部汇编后的信息。
若用户不需要这些信息,可直接回车。
(.CRF)文件为交义引用文件,要建立交叉引用文件,则键入文件名。
MASM将为用户建立扩展名为(.CRF)的交叉引用文件,这里所得到的交叉引用文件,必须调用CREF程序处理,以建立一个按字母顺序排列的能被显示或打印的源程序中的符号(包括变量)表。
汇编语言程序设计上机实验指导
汇编语言程序设计上机实验指导一、实验目的1.掌握汇编语言的基本原理和编程技巧。
2.加深对计算机系统结构的理解。
3.培养实验操作和编程能力。
二、实验环境1.所需软件:MARS仿真器。
2.操作系统:任意支持MARS仿真器的操作系统。
三、实验内容1.实验一:编写一个简单的汇编语言程序,实现加法运算。
(1)要求用户输入两个整数。
(2)将两个数相加。
(3)输出两个数的和。
2.实验二:编写一个汇编语言程序,实现乘法运算。
(1)要求用户输入两个整数。
(2)将两个数相乘。
(3)输出两个数的乘积。
3.实验三:编写一个汇编语言程序,实现判断一些数是否为质数。
(1)要求用户输入一个整数。
(2)判断该整数是否为质数。
(3)输出判断结果。
4.实验四:编写一个汇编语言程序,实现打印从1到N之间的所有质数。
(1)要求用户输入一个整数N。
(2)打印出从1到N之间的所有质数。
四、实验步骤1.打开MARS仿真器,创建一个新的程序。
2.按照实验要求,编写汇编语言程序代码。
3.在MARS仿真器中调试和运行程序。
4.检查程序输出结果是否与预期相符。
5.优化程序代码,提高程序的效率和性能。
五、实验注意事项1.确保编写的代码逻辑正确、语法规范。
2.程序设计要遵循模块化设计原则,尽量将程序划分为多个模块,提高程序代码的可读性和维护性。
3. 实验过程中要注意调试程序,排除可能出现的bug。
4.在程序编写过程中,保持良好的编程习惯,合理命名变量和子程序,提高代码的可读性。
六、实验总结1.实验报告中需包含实验的目的、内容、步骤、注意事项等内容。
2.分析并总结实验中遇到的问题和解决方法。
3.对实验过程、结果的合理性进行分析和讨论。
4.提出对实验中存在问题的改进建议。
以上就是一份汇编语言程序设计上机实验指导的内容。
希望这份指导能够帮助学生们更好地进行汇编语言程序设计的实验,提高他们的实践能力和编程水平。
汇编语言上机实验报告
汇编语言上机实验报告汇编语言上机实验报告引言:汇编语言是一种底层的计算机语言,通过使用汇编语言,我们可以更加深入地了解计算机的运行原理和底层机制。
本次实验旨在通过上机实践,掌握汇编语言的基本语法和编程技巧,同时加深对计算机底层的理解。
实验目的:1. 学习汇编语言的基本语法和指令集;2. 掌握汇编语言的程序设计和调试方法;3. 加深对计算机底层原理的理解。
实验环境:本次实验使用的是Windows操作系统,并安装了MASM汇编语言开发工具。
实验过程:1. 实验一:Hello World程序我们首先编写一个简单的Hello World程序,用于验证汇编语言的环境是否正常。
通过使用MASM工具,我们可以将源代码汇编成可执行文件,并在命令行中运行。
该程序的功能是在屏幕上输出"Hello World"。
```assembly.model small.stack 100h.datamsg db 'Hello World$'.codemain procmov ah, 09hlea dx, msgint 21hmov ah, 4chint 21hmain endpend main```通过编译、链接和运行,我们可以在屏幕上看到"Hello World"的输出。
2. 实验二:计算两个数的和在这个实验中,我们将学习如何编写一个简单的加法程序。
我们定义两个变量a和b,并将其值相加,然后将结果输出到屏幕上。
```assembly.model small.stack 100h.dataa db 10b db 20sum db ?.codemain procmov al, aadd al, bmov sum, almov ah, 09hmov dl, sumadd dl, 30hint 21hmov ah, 4chint 21hmain endpend main```在屏幕上,我们可以看到输出结果为"30",即10加20的和。
汇编语言上机步骤
实验一汇编语言上机基本步骤一、实验目的:熟悉汇编语言的上机过程,掌握各项工具软件的使用方法二、实验环境:1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验内容:1.前期准备:在开始进行汇编语言上机练习之前,建立并进入自己的工作子目录,准备好相关工具软件如MASM.EXE、LINK.EXE等,其后所有工作均在自己的子目录中进行,以避免因路径概念不清而导致的文件存取错误,以及对系统其它部分造成影响。
1)建立自己的工作子目录(例如MYTEST):C:\>MD MYTEST2)进入自己的工作子目录:C:\>CD MYTEST3)将所需工具软件从其它地方(如C:\MASM)拷贝进自己的工作子目录:C:\MYTEST>COPY C:\MASM\MASM.EXEC:\MYTEST>COPY C:\MASM\LINK.EXE2.编写源程序:原则上可以用任何文字处理软件(如EDIT、写字板、甚至WORD)编写源程序,但必须注意,源程序应为ASCII码文件(或称纯文本文件),扩展名一般为.ASM。
因此,建议使用DOS环境下的EDIT软件。
1)在DOS系统操作提示符下键入EDIT并回车,即可进入EDIT文本编辑环境。
如果没有进入,检查当前路径下是否存在EDIT.EXE文件,以及文件是否完整等。
2)从键盘输入下列程序(不必输入注释部分):CODE SEGMENT;定义一个CODE段ASSUME CS:CODE;定义CODE段为代码段START:;可执行语句起始处MOV AH,02H ;以下三条语句将显示字母aMOV DL,’a’INT 21HMOV AH,4CH ;以下二条语句将返回DOSINT 21HCODE ENDS;CODE段结束END START;整个程序结束该程序的功能是仅在CRT屏上显示一个字母a,完成功能的只有其中的三条语句,但其它部分则是一个完整的汇编语言源程序必不可少的部分。
实验三 汇编语言程序上机操作方法
一 T AX=0233 BX=0000 CX=0011 DX=0038 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=000B NV UP EI PL NZ NA PO NC_ 0B75:000B CD21_ INT_____21_ ・ 在_DEBUG_状态下执行程序 一 G 8 Program terminated normally ・ 退出 DEBUG 一 Q_ 2. 比较字符串_bjchx_ 编写一程序,比较两个字符串_string1_和 _string2_所含的字符是否相同,若相同则显示‘Match’ ,否则,显 示‘No_Match’ 。 参考程序如下:(程序名:SY3-2.ASM) D_SEG SEGMENT STRING1 DB '12345' STRING2 DB '1a345' MATCHSTR DB 'MATCH$' NOMATCHSTR DB 'NO MATCH$'
实验注意事项 1.如果使用的是 MASM5.1 的汇编工具,应包括以下文件:MASM 宏汇 编程序文件 LINK 连接程序文件CREF 索引程序文件(也可不用) EDIT 全屏幕文本编辑程序(或其他文字处理系统) 2.能用宏汇编通过的汇编语言源程序与在 DEBUG状态下运行的汇编 语言程序不同,必须是一个完整的程序,有各逻辑段的定义,而在 DEBUG 状态下运行的汇编语言源程序只是其程序段。 3.连接程序 LINK 是把一个或多个独立的目标程序模块装配成一个 可重定位的可执行文件,扩展名为.EXE。 实验与思考 1. 机器语言(Machine Language)、汇编语言(Assembler Language) 和高级语言(High_Level_ Language)的区别? 2.DOS 2 号功能调用和 DOS 9号功能调用的区别? 3.利用 DEBUG 调试程序过程中,应注意什么?
实验三、完整的上机程序编程
实验三要求:1)通过上机实验熟悉汇编语言程序的完整的上机过程2)熟悉汇编语言程序的编程当编制好汇编语言原程序后,必须要在机器上运行,要经过以下几个步骤见图:一、上机程序一要求:请把DS段源缓冲区中以source_buf为首地址的40个小写字母a传送到ES段以dest_buf为首地址的目的缓冲区中实验步骤:1.用EDIT编辑程序建立ASM源文件文件取名为ex_movs.asmDATA SEGMENTSOURCE_BUF DB 40 DUP (‘a’)DATA ENDSEXTRA SEGMENTDEST_BUF DB 40 DUP (‘?’)EXTRA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:EXTRASTART: MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXLEA SI,SOURCE_BUFLEA DI,DEST_BUFCLDMOV CX,40REP MOVSBMOV AH,4CHINT 21HCODE ENDSEND START2.用MASM程序产生OBJ文件原程序建立后就要用汇编程序MASM对原程序进行汇编,汇编后如果没有语法错误,就会产生二进制的目标文件(文件名.OBJ),其操作过程及屏幕显示如下c:MASM ex_movs.asm↙(‘↙’表示回车)汇编程序的输入文件是ASM原文件,其输出文件有三个,表示于应该回答的三行中,第一个是OBJ文件,这是我们需要的目标文件,第二个是LST文件称为列表文件,这个文件同时列出原程序和机器语言程序清单,同时也给出符号表,因而可给调试程序带来方便。
这个文件可要可不要,不需要时可用回车回答,如果需要这个文件,就写出文件名作答ex_movs↙ex_movs.lst的列表文件的屏幕显示如下:汇编程序提供的第三个文件是CRF 文件,这个文件用来产生交叉引用表REF,对于一般程序不需要建立此文件,所以对于第三行以回车键作答3.用LINK连接程序产生EXE文件汇编程序已经产生二进制的目标文件(OBJ文件),但OBJ文件并不是可执行的文件,还必须用连接程序(LINK)把OBJ文件转换成可执行的EXE文件,主要原因是OBJ文件中的存储器地址还没有真正分配实际的存储器物理地址,而分配的是浮动地址,连接程序操作方法和屏幕显示如下:c:LINK ex_movs↙屏幕显示如下:连接程序有二个输出文件,一是EXE文件这是我们需要的,用回车作答就可以了,另一个输出文件为MAP文件,它是连接程序的列表文件,又称为连接映象(Link map),它给出了每个段在存储器中的分配情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验3 汇编语言程序上机过程
3.1 实验目的
(1)掌握常用工具软件EDIT,MASM,和LINK的使用。
(2)伪指令:SEGMENT ,ENDS,ASSUME,END, OFFSET,DUP.
(3)利用INT 21H的1号功能实现键盘输入的方法。
(4)了解.EXE和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。
3.2 实验类型
验证型实验
3.3 实验内容
data segment
message DB 'THIS IS A SAMPLE PROGRAM OF KEY AND DISPLAY'
DB 0DH, 0AH, 'PLEASE STRIKE THE KEY!', 0DH, 0AH,'$'
data ends
stack segment PARA STACK'STACK'
DB 50 DUP(?)
stack ends
code segment
assume CS:COE, DS:DATA, SS:STACK
start:
mov ax, data
mov ds, ax
mov dx, OFFSET MESSAGE
mov ah, 9
INT 21h ; add your code here
AGAIN:
MOV AH,1
INT 21H
CMP AL,61H
JE ND
CMP AL,61H
JC ND
CMP AL,74H
JA ND
AND AL,11011111B
ND: MOV DL,AL
MOV AH,2
INT 21H
JMP AGAIN
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
3.5 实验报告
(1)汇编,连接及调试时产生的错误,其原因及解决办法。
(2)思考
①若在源程序中把INT 21H的‘H’省去,会产生什么现象?
答:若在源程序中把INT 21H的‘H’省去,可以生成.EXE,但是在运新生儿湿疹行时提示出错语句:
refer to the list of support interrupts
If you need to int 21h, put h suffix to 21
②把INT 21H 4CH 号功能改为INT20H,行不行?
答:不行。
此两功能号对应的功能不同。
INT 21H号:终止当前程序,返回调用程序。
INT 20H : 程序正常退出。
(3)写出自编的程序,并注释。
data segment ;定义数据段message DB 'THIS IS A SAMPLE PROGRAM OF KEY AND DISPLAY' ;定义message DB 0DH, 0AH, 'PLEASE STRIKE THE KEY!', 0DH, 0AH,'$' ;光标自动换行message1 DB 'TEST','$' ;定义message1 data ends
stack segment PARA STACK'STACK' ;定义堆栈段DB 50 DUP(?) ;分配50个字节空间,初值为任意值stack ends
code segment ;定义代码段assume CS:COE, DS:DATA, SS:STACK ;定义段寄存器start:
mov ax, data
mov ds, ax ;将数据段的段地址送入DS
mov dx, OFFSET message ;将message 的偏移地址送DX
mov ah, 9 ;功能号送AH
INT 21h ;执行系统功能调用,字符串输出到显示器AGAIN:
MOV AH,1 ;功能号送AH
INT 21H ; 执行系统功能调用,这里是从键盘输入CMP AL,54H ;比较AL和54H
JE NT ;若两数相等则转到NT
CMP AL,61H ;比较AL和61H
JC ND ;若AL<61H,则转到ND
CMP AL,74H ;比较AL和74H
JA ND ;若AN>74H,则转到ND
AND AL,11011111B ;AL和1011111按位相”与”,结果送AL ND: MOV DL,AL ;把AL中显示的字符送入DL MOV AH,2 ;功能号2送入AH
INT 21H ;执行系统调用功能,这里是显示字符JMP AGAIN ;执行完上一步后,跳转到AGAIN NT: MOV DX,OFFSET MESSAGE1 ;把MESSAGE1的偏移地址送DX MOV AH,9 ;功能号9送入AH
INT 21H ;执行系统调用功能,这里是显示字符串
JMP AGAIN ;执行完上一步后,跳转到AGAIN
EXIT:
MOV AH,4CH ;调用返回DOS功能
INT 21H ;返回到DOS
CODE ENDS ;结束ENDS
END START ;结束START
(5)实验体会
通过本次的上机操作,掌握常用工具软件EDIT,MASM,和LINK的使用。
熟悉了伪指令:SEGMENT ,ENDS,ASSUME,END, OFFSET,DUP.知道利用INT 21H 的1号功能实现键盘输入的方法。
了解.EXE和.COM文件的新生儿湿疹区别及用INT 21H 4C号功能返回系统的方法。
在自编程序中更深刻的理解每一语句的含义,为以后的学习打下牢固的基础,同时也提高了学习汇编的兴趣。