汇编语言上机试验指导

合集下载

实验一 汇编语言程序设计的实验环境及上机步骤

实验一  汇编语言程序设计的实验环境及上机步骤

实验一熟悉汇编语言程序设计的实验环境及上机步骤一、实验目的:1、掌握文本编辑程序EDIT的基本使用方法。

2、熟练掌握汇编语言上机操作的基本步骤,学会汇编语言程序的编辑、汇编、连接、运行等操作方法。

二、上机实验指导(一)实验环境1.硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境⏹Windows98/2000/XP操作系统⏹文本编辑器(NOTEPAD(记事本))⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)(二)上机实验步骤上机步骤总结如下:1.把汇编程序拷贝到 C:\ASM\2.用记事本建立ASM源程序,保存为C:\ASM\HELLO.ASM3.汇编 C:\ASM>MASM HELLO.ASM<回车>4.链接C:\ASM>LINK HELLO.OBJ<回车>5.执行C:>ASM>HELLO〈回车〉下面详细介绍上机步骤:1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

创建方法:找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。

请把MASM.EXE、LINK.EXE都拷贝到此目录中。

2.建立ASM源程序使用NOTEPAD(记事本)文本编辑器建立ASM源程序。

打开记事本,输入源程序后,保存为后缀为.ASM的文件,保存路径为C:\ASM\HELLO.ASM。

3.用MASM.EXE汇编源程序产生OBJ目标文件具体操作如下:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:\Documents and Settings>cd..(回车,退回到上一级根目录)C:>CD ASM<回车>C:\ASM>MASM HELLO.ASM<回车>操作时的屏幕显示如图2所示。

80868088汇编语言上机调试与实验指导

80868088汇编语言上机调试与实验指导

2、DEBUG的常用命令
1)显示、修改寄存器命令 R
格式:R[寄存器名]
功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
8)指定文件命令 N
格式:N<文件名或扩展名>
功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L命令和W命令之前。
9)装入命令 L
格式1:L[起始地址][盘符号][扇区号][扇区数]
1、编辑软件
行编辑软件:
全屏编辑软件:WPS、、、WORD、PE等。
当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。
2、汇编程序
有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。
Microsoft(R) Macro assemble Version 5.00
Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reserved
Run file [<file>.EXE]:
List File [nul.map]:
4)汇编命令 A
格式:A[起始地址]
功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。

汇编语言上机实验指导书(不含源代码)

汇编语言上机实验指导书(不含源代码)

汇编语言上机实验指导书一、概述上机实验总学时为14学时,其中综合性实验为2学时。

实验共有6项暂定为7次,每次2学时。

1.实验辅导的主要内容实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。

开始的实验介绍较细,后面的实验简要介绍。

2.实验的软硬件要求关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。

软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。

3.加强实践能力的培养实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。

其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。

对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。

实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性)1.实验目的:(1) 熟悉汇编语言运行环境和方法(2)了解如何使用汇编语言编制程序(3) 熟悉DEBUG有关命令的使用方法(4) 利用DEBUG掌握有关指令的功能(5) 利用DEBUG运行简单的程序段2.实验内容(1)学会输入、编辑汇编语言程序(2)学会对汇编语言程序进行汇编、连接和运行(3)进入和退出DEBUG程序(4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应试一下。

3.实验准备(1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。

汇编语言上机实验指导书

汇编语言上机实验指导书

《汇编语言》实验指导书计算机实验中心目录目录::实验一利用DEBUG调试程序调试程序段 (4)实验二分支程序实验 (5)实验三循环程序实验 (8)实验四子程序实验(一) (9)实验五子程序实验(二) (13)实验六字符处理程序实验 (19)实验七输入输出实验 (23)试验八中断程序试验 (28)汇编语言上机实验指导书一、概述上机实验总学时为18学时,其中综合性和设计性实验至少为8学时。

实验的次数暂定为8次,每次2-3学时,可结合实际条件适当增减,但不少于6次。

1.实验辅导的主要内容实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。

开始的实验介绍较细,后面的实验简要介绍。

2.实验的软硬件要求关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。

软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG 程序和EDIT.EXE编辑软件(其它编辑软件也可以)。

3.加强实践能力的培养实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。

其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS 功能调用的能力,进行模块程序设计的能力等。

对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或本分改变程序加以实现。

实验一利用DEBUG调试程序调试程序段1.实验目的:(1)熟悉DEBUG有关命令的使用方法(2)利用DEBUG掌握有关指令的功能(3)利用DEBUG运行简单的程序段2.实验内容(1)进入和退出DEBUG程序(2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

汇编实验指导新(实验一)

汇编实验指导新(实验一)

汇编语言程序设计实验指导实验一汇编语言程序设计上机及debug的使用一、实验目的及要求1.学会使用EDIT、MASM、LINK、DEBUG等软件工具。

2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

二、实验内容(一) 上机过程1.汇编语言源程序的上机环境硬件环境:目前8086汇编语言程序一般多在IBM PC/XT及其兼容机上运行,因此要求机器具有一些基本配置就可以了,汇编语言对机器硬件环境没有特殊要求。

软件环境:软件环境是指支持汇编语言程序运行和帮助建立汇编语言源程序的一些软件。

编写MASM程序至少需要三个工具,一个是用来准备源文件的文本编辑程序,一个是用来将源文件转换成目标文件的MASM汇编程序,最后一个是用来将多个目标文件连接成一个DOS可执行文件的LINK连接程序。

(1)进入DOS操作系统:汇编语言程序的建立和运行在DOS操作系统支持下进行,要首先进入MS-DOS状态:点击开始菜单/运行在打开提示框中输入cmd再回车cd\apps\masm回车(2)编辑程序:编辑程序是用来输入和建立汇编语言源程序的一种通用的系统软件,通常源程序的修改也是在编辑状态进行的。

编写汇编语言程序的第一步,就是用文本编辑程序编写源文件。

源文件的编写可以利用任何一种文本编辑程序完成,具体使用哪一种,完全取决于个人喜好。

比如,记事本、、WORDSTAR、、等,但要注意,除了注释的内容外,一定要在非文本方式下输入各种语句和间隔符号,否则会汇编出错。

如:Edit abc.asm回车源程序以asm作文件名后缀。

Microsoft公司在推出MASM6.0的同时也提供了优秀的全屏幕文本编辑程序,作为PWB(程序员工作平台)的组成部分。

该编辑程序支持下拉式菜单、鼠标,并可根据用户特定需求进行裁剪。

(3)汇编程序:8086的汇编程序有基本汇编ASM.EXE和宏汇编MASM.EXE两种。

基本汇编ASM.EXE不支持宏操作,因此,一般选用宏汇编MASM.EXE。

汇编上机实验报告

汇编上机实验报告

汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。

实验内容:实验一:汇编程序的简单输入输出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常用命令及8086指令使用实验目的:通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG2、DEBUG命令: A,D,E,F,H,R,T,U。

3、ASCII码及用16进制数表示二进制码的方法。

4、8086寄存器: AX,BX,CX,DX,F,IP。

内容及步骤:一、DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示符 '_ '。

2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。

3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII 字符。

4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。

5、用命令E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

8、用R命令将AX,BX内容改写为1050H及23A8H。

二、8086常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。

3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。

并注意标志位有无变化。

2、加减法指令:1)用A命令在内存100H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。

汇编语言上机指导

汇编语言上机指导

汇编语言上机指导一、概述汇编语言是一种低级别的程序设计语言,它直接使用计算机的指令集架构来编写程序。

而在进行汇编语言的实际操作时,上机指导是必不可少的一环。

本文将为您提供一份汇编语言上机指导,以帮助您在实践中更好地掌握汇编语言的应用。

二、实验环境与所需工具在进行汇编语言的上机实验之前,您需要准备以下工具和环境:1. 计算机:一台能够运行汇编语言开发环境的计算机;2. 汇编语言开发环境:例如MASM、NASM等;3. 文本编辑器:用于编写汇编源代码的工具,例如Notepad++、Sublime Text等;4. 模拟器或调试器:用于模拟或调试汇编程序的工具,例如DOSBox、Emu8086等。

三、实验步骤1. 安装汇编语言开发环境:根据您选择的汇编语言开发环境,下载并安装相应的软件。

2. 创建汇编源代码文件:使用文本编辑器创建一个新的文本文件,并将其保存为.asm文件格式。

3. 编写汇编程序:根据实验要求或题目要求,使用汇编语言编写相应的程序代码。

在编写过程中,需要熟悉所选汇编语言的语法和指令集。

4. 保存源代码文件:在编写完成后,保存源代码文件,并注意文件的命名规范和格式要求。

5. 编译源代码:打开所选汇编语言开发环境,并将源代码文件导入到该环境中。

使用编译器将源代码文件转换为可执行文件。

6. 运行汇编程序:在模拟器或调试器中加载生成的可执行文件,并运行程序。

通过观察程序的运行结果,验证程序代码的正确性和准确性。

7. 调试程序:如果程序在执行过程中出现错误或异常,可以使用调试器来逐步调试程序,找出错误的原因,并进行修正。

8. 优化程序:经过测试和调试后,可以根据实验需求对程序进行优化或改进,提高程序的性能和效率。

9. 文档整理:在上机实验结束后,对实验过程、实验结果和实验心得进行文档整理。

将实验相关的代码、截图和注释整理成文档,并附上你的实验心得和体会。

四、注意事项1. 在编写汇编程序时,需要遵循所使用汇编语言的语法和规范,注意标识符的命名规则和字符集的使用限制。

汇编语言上机实验指导

汇编语言上机实验指导

汇编语言上机实验指导实验一汇编语言基本指令操作练习一、实验目的:1、掌握8086/8088基本指令的使用方法和功能。

2、初步了解汇编语言程序设计的基本结构和利用DEBUG调试程序的方法。

3、进一步熟悉汇编语言的上机过程。

二、上机实验指导:(一)利用DEBUG的A命令输入指令,做如下实验。

1、比较下面指令的区别:①MOVAX,2000H②MOVBX,[2000H]-D2*******;显示字存储单元DS:2000的内容3ADC:20005A58ZX-R;显示指令执行前AX,BX的内容AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=3ADCES=3ADCSS=3ADCCS=3ADCIP=0100NVUPEIPLNZNAPONC3ADC:0100858CFFF3TESTCX,[SI+F3FF]DS:F3FF=74C0-A;利用A命令输入汇编指令3ADC:0100MOVAX,20003ADC:0103MOVBX,[2000]3ADC:0107INT3;此中断为断点中断,使程序执行暂停3ADC:0108-G;不指定地址,从当前CS:IP处执行AX=2000BX=585ACX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000 DS=3ADCES=3ADCSS=3ADCCS=3ADCIP=0107NVUPEIPLNZNAPONC3ADC:0107CCINT3;指令执行后,AX=2000H,BX=585AH2、以寄存器BX作为地址指针,从BX所指的存储单元开始起,连续存放着两个无符号数(字操作数),编程求它们的和,并将结果存放在这两个数之后。

-RBX;显示BX寄存器中的内容(BX=0000h)BX0000:;回车-D0*******;显示DS:0000到DS:0005的内容(BX所指的三个字操作数),如BX不为0000H,自己修改范围。

微机原理与汇编语言实验指导书

微机原理与汇编语言实验指导书

实验一显示程序[实验目的]1.掌握汇编语言程序上机的实验过程2.掌握显示程序的基本设计方法。

[实验原理]汇编语言上机过程1、建立汇编源程序(建立文件名.asm)(1)通过MD-DOS自带的EDIT.EXE文本编辑器进行输入和其它的文本编辑器进行录入、编辑,如可用c语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。

2、编译目标文件(即:编译为.obj .lst .crf文件)将正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。

如果此时程序有语句错误,系统将报错,并指出在第几行,什么类型的错误,可根据提示去逐一修改。

3、连接为可执行文件(即:连接为.exe 或.com文件)在DOS提示符下: LINK filename 回车4、运行编译好的可执行文件当4通过后,会产生一个可执行文件,这时只需运行这个程序,看它是否按你所想象那样得出结果。

在试运行期间,要尽量试一些临界状态,看程序是否运行稳定、结果是否正确,进行5。

5、用调试工具调试,重新修改(逻辑错误)用DOS中自带的调试程序DEBUG.EXE来进行程序调试、检查错误。

6.有关显示DOS基本命令1)单个字符显示命令将要显示的字符的ASCII码送给DL寄存器中断功能号2送AH寄存器,中断类型21H.如显示“3” MOV DL,33H 或 MOV DL, ‘3’如显示‘A’ MOV AH,‘A’MOV AH,2 MOV AH,2 MOV AH,2INT 21H INT 21H INT 21H 2)字符串显示命令将要显示的字符串所在存储区的首地址送给DX寄存器中断功能号9送AH寄存器,中断类型21H.如显示字符串“HELLO”存储区定义为 T DB“HELLO”,10,13,24H LEA DX,TMOV AH,9[实验方法及步骤] INT 21H1、编写实验程序。

2、编译。

3、运行(单步,跟踪),检查结果。

汇编语言上机实验指导

汇编语言上机实验指导

实验一汇编语言上机基本步骤一、实验目的:熟悉汇编语言的上机过程,掌握各项工具软件的使用方法二、实验环境: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、上机时要遵守实验室的规章制度、爱护实验设备。

要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。

在程序的调试过程中,有意识地学习及掌握debug程序的各种操作命令、以便掌握程序的调试方法和技巧。

3、每个实验完成后,应写出实验报告。

实验报告的要求如下:①实验目的②实验内容③算法分析及详细的寄存器和变量分配④流程图⑤程序代码⑥实验结果⑦分析总结(心得体会)实验一、汇编语言上机操作过程一、实验目的1、熟悉汇编语言程序的调试环境2、掌握部分DEBUG命令二、实验内容编写一个汇编语言程序,计算1+2+3+…+99+100,并将结果存入SUM字单元。

通过调试程序熟悉汇编语言的上机操作过程及部分命令。

三、上机操作过程1、建立ASM文件(编辑源程序)使用编辑程序EDIT在磁盘上建立源程序EX.ASM例如:D:\MASM>EDIT EX.ASM2、用MASM程序产生OBJ文件源文件建立后,就要用汇编程序对源文件汇编,汇编后产生二进制的目标文件(OBJ 文件)例如:D:\MASM>MASM EX3 、用LINK程序产生EXE文件汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行文件,还必须使用连接程序(LINK)把目标文件转换为可执行的EXE文件例如:D:\MASM>LINK EX4、调试运行在建立了EXE文件后,就可以直接从DOS执行程序。

如果用户程序有错误或者没有直接将结果在终端上显示出来,程序执行完之后无法看见正确的结果。

那么怎么知道程序执行的结果是正确的呢?此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,得到正确的结果。

汇编语言程序设计上机实验指导

汇编语言程序设计上机实验指导

汇编语言程序设计上机实验指导一、实验目的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.提出对实验中存在问题的改进建议。

以上就是一份汇编语言程序设计上机实验指导的内容。

希望这份指导能够帮助学生们更好地进行汇编语言程序设计的实验,提高他们的实践能力和编程水平。

08计算机汇编语言上机实习一

08计算机汇编语言上机实习一
的实验报告目录中。 文件名:学号_姓名_汇编语言实验一.word
INT 21H ; 9号调用输出How do you do?
MOV AH,4CH ;设置4CH号调用 INT 21H ;结束程序运行,返回DOS CODE ENDS END START
注意:请在西文状态下输入程序和, ;等符号,否则汇编会 出错 (out of memory)。
思考题:修改程序,使用2号单字符输出DOS功能调用显示
二、实验环境建立
1、汇编语言源程序的上机环境 (1)硬件系统(省略) (2)软件系统
1)DOS操作系统:汇编语言程序的建立和 运行都是在DOS操作系统下进行的。 注意在WIN XP/WIN 2K/WIN SERVS的开始 程序 附件 C:\命令 提示
• DOS 命令简单介绍 改变盘符: C:\>D: (变成D:\>)
How do you do?(参照老师提供的程序实例AAA.ASM)
实验(二)汇编语言调试过程部分实验 报告内容
1、写出汇编语言源程序结构 2、汇编语言调试过程 3、汇编调试中的问题和解决方法
四、要求
1、必须完成课件规定的两个实验内容。 2、将连接后的执行文件保留,老师抽查,完
成后签到。 3、提交电子档实验报告至网络教学平台指定
DATA SEGMENT STR DB “How do you do?$” DATA ENDS STACK SEGMENT STACK DB 200 DUP(?) STACK ENDS
CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE
START: MOV AX,DATA ; 给DS赋初值 MOV DS,AX LEA DX,STR ;显示缓冲区首址赋DX MOV AH,9 ; 设置9号调用

汇编语言上机实验报告

汇编语言上机实验报告

汇编语言上机实验报告汇编语言上机实验报告引言:汇编语言是一种底层的计算机语言,通过使用汇编语言,我们可以更加深入地了解计算机的运行原理和底层机制。

本次实验旨在通过上机实践,掌握汇编语言的基本语法和编程技巧,同时加深对计算机底层的理解。

实验目的: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的和。

实验三 汇编语言程序上机操作方法

实验三 汇编语言程序上机操作方法

一 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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作实验2 【1】.有空加作实验【4】(1).实验2 算术及位串处理程序【1】.在数据段预先存放16个十六进制数的ASCII码,把BX中的四位十六进制数,从左到右用查表的方法找到对应数位的ASCII码,并取出显示出来。

要求见书:参考程序:data segmentasc db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39hdb 41h,42h,43h,44h,45h,46hdata endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov cl,4rol bx,clmov si,bxand si,0fhmov dl,[asc+si]mov ah,2int 21hrol bx,clmov si,bxand si,0fhmov dl,[asc+si]mov ah,2int 21hmov ah,4chint 21hcode endsend start【2】用字符串处理指令编制程序,处理字符串的比较和查找,显示结果。

要求:(1) 字符串的比较程序中,一个字符串在数据段定义,另一个字符串在程序执行时从键盘输入,必须定义键盘缓冲区。

并指出不相等的位置。

参考书上例3.51,题目改为MESS2 定义为从键盘输入缓冲区,键盘输入缓冲区定义:mess2 DB 9,?,9 DUP(?)例3.51 在数据段中有一个长度为19的字符串MESS1,在附加段中有一个长度为19的字符串MESS2,比较它们是否相等。

若相等显示‘Y’,否则显示‘N’。

编制程序如下所示。

data segmentmess1 db ‘computer software $’data endsext segmentmess2 db ‘comkuter software $’ext endscode segmentassume cs:code,ds:data,es:extstart:mov ax, datamov ds, axmov ax, extmov es, axlea si, mess1lea di, mess2mov cx, 19cldrepe cmpsbjz yes ;如果zf=1跳转到标号yesmov dl,‘n’jmp disp ;跳转到标号dispyes: mov dl,‘y’disp:mov ah,2int 21hmov ah, 4chint 21hcode endsend start实验3 分支程序设计实验目的:掌握分支与循环程序等基本编程方法。

熟悉数制转换。

用LOOP指令、条件转移指令和跳跃表法实现程序转移。

实验内容:【1】分离字数组ARRAY中的正、负数,把其中的正数复制到PDATA数组;负数复制到NDATA数组,并分别统计正、负数个数。

要求:三个数组的占用单元数应一致。

通过DEBUG跟踪程序的执行,检查运行结果:是否完成分离。

参考程序:data segmentarray dw 2,-2,3,-3,4,-4,5,0,0org 10hpdata dw 7 dup (?)org 20hndata dw 7 dup (?)org 30hp db 0n db 0data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea bx,arraylea si,pdatalea di,ndatamov cx,7kk:mov ax,[bx]test ax,8000hjz zs。

jmp nextzs:。

next:add bx,2loop kkmov dl,padd dl,30hmov ah,2int 21hmov dl,nadd dl,30hmov ah,2int 21hmov ah,4chint 21hcode endsend start【2】在数据段定义分支地址表,通过键盘输入数字1~8,实现转移。

要求:(1) 分支表定义如下:PTABLE DW P1,P2,P3,P4,P5,P6,P7,P8(2) P1~P8为标号,如果键盘输入数字3,则从分支地址表PTABLE中取出P3的地址,实现间接转移,标号处的指令只是显示一个信息。

参看例5.3例5.3根据键盘输入的一位数字(0~3),使程序转移到4个不同的分支中去。

算法分析:建立一个地址表,集中存放4个分支的偏移地址,因偏移地址为16位,所以每两个字节存放一个偏移地址。

根据输入的数字指向地址表,从地址表中取出对应分支的偏移地址,以间接寻址方式转向对应分支。

例5.3程序如下:code segmentassume cs:code,ds:codestart: mov ax,code ;ds=csmov ds,axmov ah,7 ;键盘输入无回显int 21hcmp al,30hjl exit ;非法输入cmp al,33hjg exit ;非法输入mov dl,al ;放入dl,待显示mov ah,2sub al,30h ;转换ascii码为数值shl al,1 ;(al)×2,指向地址表中某地址mov bl,almov bh,0jmp branch[bx] ;转向分支rout0: int 21h ;显示键盘输入的数字jmp exitrout1: int 21hjmp exitrout2: int 21hjmp exitrout3: int 21hjmp exitexit: mov ah,4ch ;程序终止并退出int 21hbranch dw rout0dw rout1dw rout2dw rout3code endsend start该程序在代码段的最后定义了地址表,汇编程序进行汇编时,各标号的有效地址可以确定,地址表首地址BRANCH的有效地址可以确定,其后定义的4个字的值就是四个分支标号的有效地址。

该程序也可以定义一个数据段,并把地址表BRANCH定义在数据段。

用地址表方法处理多分支程序,可以简单直接地实现分支的转移,避免了大量的比较和条件转移指令,使程序显得简洁紧凑。

实验4 循环程序设计实验目的:掌握和提高循环程序编程技巧,熟悉键盘输入、显示输出等基本人机交互。

【1】从键盘输入7位二进制数,显示对应的字符,回车键退出循环,终止程序。

参考程序:code segmentassume cs:codestart:mov cx,7mov dl,0next:shl dl,1mov ah,1int 21h。

loop nextmov ah,2int 21hmov ah,4chint 21hcode endsend start【2】从键盘输入一个单个字符,显示该字符的ASCII码(十六进制),回车键退出循环,终止程序。

DEBUG下跟踪,注意结果。

参看例5.7,程序的核心是斜体部分,要求修改程序中的斜体部分,当然其它关联部分也需修改。

例5.7 从键盘输入一个单个字符,显示该字符的ASCII码(十六进制),回车键退出循环,终止程序。

算法分析:用1号功能调用从键盘输入一个单个字符时,该字符ASCII码在AL中,为两位十六进制数,而要显示这两位十六进制数,则要把每位十六进制数位转换成ASCII码才能用2号功能调用显示。

高位十六进制数位为数字,低位十六进制数位为数字或A~F。

该循环程序的循环终止条件是输入回车键。

流程图如图5.7所示:图5.7 例5.7流程图例5.7程序如下:code segmentassume cs:codestart: mov ah,1 ;输入字符int 21hcmp al,13je exit ;回车键则退出循环mov bl,al ;保存到BLmov cl,4 ;把2位十六进制数转换成的2个ascii码shl bx,cland bx,0f00hadd bh,30hand al,0fhadd al,30hmov ah,0cmp ax,39hjle l2l1:add ax,7l2:add bx,axmov dl,bh ;显示高位ascii码mov ah,2int 21hmov dl,bl ;显示低位ascii码mov ah,2int 21hjmp start;转循环入口exit:mov ah,4chint 21hcode endsend start实验5 子程序设计实验目的:掌握通用子程序的设计方法,合理划分子程序功能和正确进行子程序的参数传递。

【1】采用通过地址表传递参数地址的方法,求数组元素累加和的通用子程序。

该通用子程序能处理字节类型或字类型的数组元素。

参看例6.5例6.5采用通过地址表传递参数地址的方法,求数组元素累加和的通用子程序(不考虑溢出)。

data segmentary dw 100 dup(4) ;设元素值是4num dw 100 ;设元素个数是100sum dw ?table dw 3 dup(?) ;地址表3个字data endscode segmentassume cs:code,ds:datamain proc farpush dsxor ax,axpush axmov ax,datamov ds,axmov table, offset ary ;ary地址送table mov table+2, offset num ;元素个数的地址送table+2mov table+4, offset sum ;存放和的地址送table+4 lea bx, table ;table的首地址送bxcall prosumretmain endp;------------------------prosum proc nearmov si, [bx] ;ary地址送si mov di, [bx+2] ;取元素个数的地址mov cx,[di] ;元素个数送cxmov di,[bx+4] ;存放和的地址送dixor ax, axnext: add ax, [si]add si, 2loop nextmov [di], axretprosum endpcode endsend main程序中在数据段建立一个三个字的地址表TABLE,主程序把数组ARY的三个参数的地址依此放入地址表TABLE中,并把地址表TABLE的首地址放入BX寄存器。

子程序PROSUM通过BX寄存器间接取得数组ARY的首地址、元素个数和存放累加和的地址,实现数组元素的累加。

由于子程序中没有出现具体的数组参数,所以对其它数组求和也是可行的。

但该程序只能处理字类型的数组元素,如果希望子程序PROSUM也能处理字节类型的数组元素,那么可以增加一个公用的类型参数,类型参数可用一个变量也可用一个常量说明。

相关文档
最新文档