--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!
辽宁工程技术大学上机实验报告
成绩优
课程名称计算机硬件基础实验题目综合程序设计(三)院系软件学院专业网络工程班级09-2姓名母涵予学号0920020214实验日期10-17实验
目的1.熟练掌握2.掌握熟练掌握掌握实验
准备1.8086/8088汇编语言指令及伪指令的用法
2.子程序设计的思想和方法
(1)子程序是功能相对独立的程序段,它可以实现源程序的模块化,简化源程序结构,提高编程效率
(2)子程序定义:利用过程伪指令PROC和ENDP,格式如下:
过程名PROC [NEAR|FAR]
……;过程体
过程名ENDP
其中:可选的参数指定过程的调用属性。没有指定过程属性,则采用默认属性NEAR。
NEAR属性:段内近调用,子程序只能被相同代码段的其他程序调用
FAR属性:段间远调用,子程序可以被相同或不同代码段的程序调用
(3)主程序(调用程序)调用子程序(被调用程序):利用CALL指令
(4)子程序返回主程序:利用RET指令
(5)保护现场:子程序开始处应该保护子程序中使用的寄存器(通常利用堆栈),子程序返回前相应进行恢复。
(6)子程序中对堆栈的压入和弹出操作通常成对使用,以保持堆栈的平衡。
(7)子程序允许嵌套和递归
(8)处理好子程序与主程序之间的参数传递问题:利用寄存器、内存缓冲区及堆栈。
3.DOS和BIOS中断调用是机器及操作系统提供的中断调用功能
4.系统功能调用的步骤:
⑴ 在AH寄存器中设置系统功能调用号
⑵ 在指定寄存器中设置入口参数
⑶ 用中断调用指令(INT i8)执行功能调用
⑷ 根据出口参数分析功能调用执行情况
5.DOS利用21H号中断提供给用户近百个系统功能,主要包括设备管理、目录管理和文件管理三个方面的功能
(1)输入一个字符,01H号功能调用
(2)输出一个字符,02H号功能调用
(3)输入一个字符串,0AH号功能调用
(4)输出一个字符串,09H号功能调用
注意它们的入口参数及出口参数
6.BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序
BIOS功能更加基本,且与操作系统无关,当DOS没有启动或不允许使用DOS功能调用时,可以使用BIOS功能调用
(1)键盘I/O中断调用——INT 16H
(2)显示器输入中断调用——INT 10H
实验
进度本次共有 2 个练习,完成 2 个。
实验
内容
实验
内容
(续)
包含本次实验项目要完成的实验内容、实验原理、实验步骤或过程;对原始实验数据记录要详实。
1 .编写主程序调用一个过程,实现将两个非压缩BCD码转换为一个压缩BCD码,并用字符显示功能和字符串显示功能完成在屏幕上显示一个字符串“Hello World!”的功能。
(1)实现方法
(2)程序代码
data?segmenta?db?04hb?db?05hc?db??d?db?10hstring?db?"hello?world","$"data?endscode?segmentassume?cs:code,ds:datastart:cldmov?ax,datamov?ds,axcall?hmov?ax,seg?stringmov?ds,axmov?dx,offset?stringmov?ah,09hint?21hh?procmov?al,amul?dadd?al,bmov?c,alh?endpcode?end
send start
2.在内存建立一个表TABLE,其中存放20个字节型无符号数,从键盘输入一个数X(一位数),查找该数X在TABLE中是否存在,若存在,则在RESULT单元存入1,否则存入-1。
(1)实现方法 定义一个table表 ,存有20个字节数。利用repne scasb比较01 是否在table中,利用CX 存放字符串长度,al中01在我所编写的程序中,在result中存入1.
(2)程序代码
data segment
table db 01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20
result db ?
data ends
cseg segment
assume cs:cseg,es:data
start:cld
MOV AX, Data
MOV es, AX
LEA di, table
mov cx,20
mov ah,01h
int 21h
mov al,0fh
repne scasb
jz zer
mov result,-1
jmp stop
zer:mov result,1
s