8086汇编语言程序设计

  • 格式:doc
  • 大小:58.00 KB
  • 文档页数:21

下载文档原格式

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

实验1 简单汇编语言程序设计

一、实验目的与要求

1.熟悉汇编语言运行、调试环境及方法。

2.掌握简单汇编语言程序的设计方法。

3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。

二、实验内容

根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。

1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的

地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)⨯(R+ 2) 。

2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0

位置1,否则将该位置0。

三、实验报告要求

1.程序算法流程图。

2.源程序清单。

3.程序运行结果。

4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计

一、实验目的与要求

1.熟悉汇编语言运行、调试环境及方法。

2.掌握分支程序和循环程序的设计方法。

3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。

二、实验内容

根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。

1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。

2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定)

三、实验报告要求

1.程序算法流程图。

2.源程序清单。

3.程序运行结果。

4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计

一、实验目的与要求

1.熟悉汇编语言运行、调试环境及方法。

2.掌握子程序的设计方法。

3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。

二、实验内容

根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。

1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。

2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下:

EXAMSCORE DB 01 ;学号

DB 89,76,54,77,99 ;单科成绩

DW ? ;该学生的总分

DB 02 ;学号

DB 79,88,64,97,92 ;单科成绩

DW ? ;该学生的总分

三、实验报告要求

1.程序算法流程图。

2.源程序清单。

3.程序运行结果。

4.调试过程中遇到的问题和解决的方法。

实验4 综合程序设计

一、实验目的与要求

1.熟悉汇编语言运行、调试环境及方法。

2.掌握汇编语言程序的设计方法。

3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。

二、实验内容

根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。

1. 编写汇编程序接收用户从键盘键入的月份数,在终端上显示该月的英文缩写名。当用户按下ESC键时,程序退出,返回DOS。

参考程序执行过程如下:month?

5↙MAY month?

9↙SEP month?

2. 按15行×16列的表格形式显示ASCII码为10H~FFH的所有字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII码为0)分隔。

3.在第2题程序的基础上进行修改。将显示表格的行、列数由固定的15行16列改为由用户从键盘输入。然后,按用户输入的行列值进行显示。

4.编写汇编程序将内存数据区保存的若干个带符号16位数据按从大到小的顺序排列后,以十进制真值的形式在屏幕上显示。

三、实验报告要求

1.程序算法流程图。

2.源程序清单。

3.程序运行结果。

4.调试过程中遇到的问题和解决的方法。

源程序:

1.1****************************************************************** DATA SEGMENT

x DB 3

y DB 1

z dw ?

w db 23

r db 6

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

mov al,w

sub al,[x]

cbw

mov bl,5

idiv bl

sub al,[y]

mov bl,r

add bl,2

imul bl

mov [z],ax

MOV AH,4CH

INT 21H

CODE ENDS

END START

1.2****************************************************************** DATA SEGMENT

x db 63

y db ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

mov al,[x]

shr dl,1

shr al,1