8086汇编语言程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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