视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
汇编语言程序设计实验题
2025-09-29 02:45:11 责编:小OO
文档
汇编语言上机实验指导书

实验要求:

1.上机前作好充分准备,包括程序框图、调试步骤、测试方法、对运行结果的分析等。

2.上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与实验相关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在程序的调试过程中,有意识地学习及掌握DEBUG程序的各种操作命令,以便掌握程序的调试方法及技巧。

3.为了更好地进行上机管理,要求用硬盘(注:D盘下)存储程序,以避免文件丢失,此外,要求实验者按以下形式命名实验文件:

学号+字母(a/b/c…).扩展名  字母:实验题号

比如:03计算机2班章以敏编制的第2个程序,则命名为:031071203205b.asm

4.程序调试完后,须由实验辅导教师在机器上检查运行结果。

5.每个实验完成后,应写出实验报告。

实验报告:

实验报告的要求如下:

1基本信息。

包括:课程名称、实验名称、专业、班级、姓名、实验时间。

2实验报告编写要规范。

应包括:实验名称、目的、内容、原理、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。

③   实验报告应附有实验原始记录和源程序清单。

加强实践能力的培养

实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序框图,目的是让每个实验者参照程序框图编写程序将实验成功地实现,在掌握其方法后,自己可用其他的程序设计方法加以实现。

序号实验项目名称内 容 提 要

主要仪器设备套数实验类型实验要求计划学时每组人数
18086指令操作

验证指令运行结果40验证型22
2各进制数相加设计两个两位十进制数相加程序40设计型22
3各种数据转换设计各种数据相互转换40设计型22
4查表程序设计对数据表实现顺序查找40设计型22
5排序程序设计

对无序数据组实现排序40设计型22
6递归子程序设计

采用递归设计方法解决数学递归问题40设计型22
实验一     8086指令系统

一、 实验目的

1.熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。

2.掌握8086/8088的寻址方式及多字节数据的处理方法。

二、实验设备

1.硬件环境:IBM—PC及其兼容机

2.软件环境:操作系统DOS3.0版本以上;调试程序DEBUG. COM

三、实验内容和要求

实验内容:

a)利用DEBUG程序中的”E’命令,将两个多字节数”003F1AE7H”和”006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

b)分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元的数据相加,并将运算结果存放在DS:0208H单元中。

实验要求:

本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。

四、START

预习要求

1.复习DOS启动方式和DOS有关命令。

2.阅读教材后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、R、T、U

SI←200H

命令的书写格式及功能。

3.复习寻址方式和相关的数据传送指令及算术运算指令。

DI←204H

 五、实验步骤

1.启动DOS操作系统。

2.运行DEBUG.COM程序(若当前盘为C)

BX←208H

C﹥DEBUG↙

—;(“—”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令)。

  AX←[SI]

DX←[SI+2]

3.用“A”命令编辑和汇编程序

— A↙

126C:0100   MOV   AX, [0200] ↙

126C:0103   MOV   BX, [0202] ↙

  AX←(AX)+[DI]  

DX←(DX)+[DI+2]+CF

126C:0107   ADD   AX, [0204] ↙

126C:010B   ADC   BX, [0206] ↙

126C:010F   MOV   [0208], AX↙

  [BX]←(AX)    

[BX+2]←(DX)+[SI+2]

126C:0112   MOV   [020A], BX↙

126C:0116    HLT↙

126C:0117    ↙

END

注意:①DEBUG约定在其命令或源程序中所涉及到的数据均被看作十六

进制数,其后不用“H”说明。

②在DEBUG下,源出现中不能使用“标号”、“变量”和一些伪指令。              图一

4.程序未执行前,用”R”命令观察相关寄存器的内容。

—R↙

如:(AX)=       ,(BX)=        ,(SI)=         ,(DI)=          ,

(CS)=        ,(IP)=          

5. 在程序未执行前,用”D”命令观察DS:0200H~DS:020BH字节单元的内容。

6. 用”T”单步操作命令对源程序逐条执行,观察AX、BX、CS、IP寄存器内容的变化, 

并与预计的结果比较。最后用”D”命令观察DS:0200H~DS:020BH、字节单元的内容   。

六、实验结果分析

1.程序运行结果:(AX)=      ,(BX)=       , DS:0208H四字节单元的内容:                 

2.试用寄存器间接寻址方式编写程序段,完成上述程序的功能。(参考图一的程序流程图)

实验二    顺序程序设计

一、实验目的

1.学习数据显示的方法。

2.熟悉在PC机上用宏汇编MASM建立、汇编、链接、调试和运行8086汇编语言的过程。

二、实验设备

1.硬件环境:IBM—PC及其兼容机

2.软件环境:操作系统DOS3.0版本以上;宏汇编MASM5.0以上版本

三、实验内容

将两个两位十进制数相加,要求算术式以字符串的形式存放在DATA1为首的单元中,结果存放在DATA2为首的单元中。

START

四、参考流程图

                        

显示算术式   

被加数和加数以ASCⅡ码表示的数字转化为非压缩的BCD码

 

                    

用ADD完成个位数相加

 

DAA调整结果送DATA2+2

 

用ADC完成十位数相加

DAA调整结果送DATA2+1及DATA2

显示结果  

返回DOS

END

实验三   分支程序实验(1)

一、实验目的

1.掌握接收键盘数据的方法。

2.了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。

3. 掌握汇编语言源程序的编辑、汇编、连接及调试过程。

二、实验设备

1.硬件环境:IBM—PC及其兼容机

2.软件环境:操作系统DOS3.0版本以上;宏汇编MASM5.0以上版本

三、实验内容

接收键盘字符(以回车键为结束),并将其中的小写字母转变为大写字母,然后显示在屏幕上。

四、参考流程图

START

BX指向字符行缓冲区首址

INT 21H的01H号功能调用接收键入字符

是回车键?   

                            Y                                                              

                                      N                                                     

是小写字母?   

                            N                                                        

小写字母的ASCⅡ码值转换为

大写字母的ASCⅡ码值

                                      Y                                                                    

存入字符缓冲区[SI]单元

 

 

SI加1指向下一单元

换行显示转换后的字符行缓冲区内容

 

  

返回DOS

 

END

 

实验四  分支程序实验(2)

一、实验目的

1. 掌握分支程序的设计方法

2.  掌握汇编语言源程序的编辑、汇编、连接及调试过程。

二、实验设备

1.硬件环境:IBM—PC及其兼容机

2.软件环境:操作系统DOS3.0版本以上;宏汇编MASM5.0以上版本(1)      

三、实验内容

1.编写一个程序,显示AL寄存器中的两位十六进制数

2.编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

START

四、参考流程图

START

INT 21H的01H号功能调用接收键入字符

AL赋初值  

AL=0DH?   

取AL高位十六进制数送DL

                                          Y

                                                 N

‵0′≤AL≤ ‵9′  

DL >9 ?   

      N                                         Y

             Y                                               N

是A-Z或a-z字符?   

DL+07H→DL

                                                                                   N

AL→DL

                                                 Y

DL=‵C′

DL+30H→DL

INT 21H的02H号功能调用显示字符

INT 21H的02H号功能调用显示字符

取AL低位十六进制数送DL

DL >9 ?   

      N

             Y

DL+07H→DL

返回DOS

          

DL+30H→DL

END

INT 21H的02H号功能调用显示字符

返回DOS

END

实验五 循环程序实验(1)

一、实验目的

1.掌握循环程序的设计方法

2.学会针对不同的问题,选用不同的组织循环的方法。 

3.掌握汇编语言源程序的编辑、汇编、连接及调试过程。

二、实验设备

1.硬件环境:IBM—PC及其兼容机

2.软件环境:操作系统DOS3.0版本以上;宏汇编MASM5.0以上版本(1)      

三、实验内容

1.编写一个程序,用二进制显示从键盘输入一个字符的ASCII码。

2.编写一个程序,记录某个字存储单元数据中1的个数,以十进制形式显示结果。

START

四、参考流程图

DS等初始化;16→CX;0→AX

START

取字存储单元数据→BX   

INT 21H的01H号功能调用接收键入字符

BX循环左移一位   

 8→CX;AL→BL

BL循环左移一位   

CF=1 ?   

                                                      N

                                                              Y

AX+1→AX

CF=1 ?   

         N                  Y

31H→DL

30H→DL

CX—1=0 ?   

                                                     Y                    N

10→DL

INT 21H的02H号功能调用显示字符

AX/DL→AX;AX→DX

CX—1=0 ?   

                              N

返回DOS

DX∨3030H→DX

                Y

返回DOS

INT 21H的02H号功能调用显示字符

END

END

DH→DL

INT 21H的02H号功能调用显示字符

实验六  循环程序实验(2)

一、实验目的

1.掌握多重循环程序的设计方法

2.学会针对不同的问题,选用不同的组织循环的方法。 

3.掌握汇编语言源程序的编辑、汇编、连接及调试过程。

二、实验设备

1.硬件环境:IBM—PC及其兼容机

2.软件环境:操作系统DOS3.0版本以上;宏汇编MASM5.0以上版本(1)      

三、实验内容

编写一个程序,将数据段中以BUF为首址的连续N个字节数据(无符号数)从小到大排序,并在屏幕上显示。

四、参考流程图

START

AL≤9?   

CL—1=0 ?   

                                                       Y

N—1→CH

DL+07H→DL

 BUF首址→SI;CH→CL

DL+30H→DL

[SI ] →AL

INT 21H的02H号功能调用显示字符

[SI]→DL;DL∧0FH→DL

AL≤[SI+1]?   

        Y

AL≤9?   

AL←→[SI+1];AL→[SI]

                                                       Y

DL+07H→DL

SI+1→SI

DL+30H→DL

                               N

                   Y

INT 21H的02H号功能调用显示字符

CH—1=0 ?   

           N                                                           

                                                      

‘;’→DL

                         

                  Y                                            

BUF首址→SI;N→CH;4→CL

                                                                            

INT 21H的02H号功能调用显示字符

[SI]→DL

CH—1=0 ?   

                                                      N                     Y

返回DOS

SI+1→SI

DL逻辑右移四位

END

实验七  过程程序实验

一、实验目的

1.掌握过程程序的设计方法

2.学会针对不同的问题,选用不同的参数传递方法。 

3.掌握汇编语言源程序的编辑、汇编、连接及调试过程。

二、实验设备

1.硬件环境:IBM—PC及其兼容机

2.软件环境:操作系统DOS3.0版本以上;宏汇编MASM5.0以上版本(1)      

三、实验内容

从键盘输入一个数n(0≤n≤8),采用子程序调用及子程序递归设计方法实现求 X=n!的值并显示结果。

四、参考流程图

1)主程序框图                                         3) 显示子程序

START

                                                                  子程序入口

0404H→CX

INT 21H的01H号功能调用接收键入n值

DX→BX

AL∧0FH→AL;0→AH

BX循环右移CL次

调用求n! 子程序

BL→DL;DL∧0FH→DL

调用显示子程序

DL≤9?   

返回DOS

                                                            Y

DL+07H→DL

END

                                                                    N

DL+30H→DL

2) 求n! 子程序

AX—1→AX

INT 21H的02H号功能调用显示字符

            子程序入口

递归调用

                                                            

AX=0 ?   

CH—1=9?   

                                                                                    N

出栈至AX

       Y

AX压栈保存

              N             

子程序返回

AX×DX→AX

AX→DX

01H→DX

子程序返回

01H→DX下载本文

显示全文
专题