143班03冯雪实验三Word文档下载推荐.docx
- 文档编号:13640920
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:14
- 大小:162.89KB
143班03冯雪实验三Word文档下载推荐.docx
《143班03冯雪实验三Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《143班03冯雪实验三Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
③实验报告的文字书写能力和规范性(占15%)。
实验报告模版
成绩
辽宁工程技术大学上机实验报告
课程名称
计算机硬件技术及应用
实验题目
综合程序设计
院系
软件工程
专业
软件专业
班级
软件三班
姓名
冯雪
学号
1420010304
实验日期
2015-5-28
实验
目的
1.熟练掌握子程序的结构。
2.掌握子程序设计的思想、方法及上机调试过程。
3.熟练掌握系统功能调用的作用。
4.掌握系统功能调用的思想、方法。
准备
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寄存器中设置系统功能调用号
⑵在指定寄存器中设置入口参数
⑶用中断调用指令(INTi8)执行功能调用
⑷根据出口参数分析功能调用执行情况
5.DOS利用21H号中断提供给用户近百个系统功能,主要包括设备管理、目录管理和文件管理三个方面的功能
(1)输入一个字符,01H号功能调用
(2)输出一个字符,02H号功能调用
(3)输入一个字符串,0AH号功能调用
(4)输出一个字符串,09H号功能调用
注意它们的入口参数及出口参数
6.BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序
BIOS功能更加基本,且与操作系统无关,当DOS没有启动或不允许使用DOS功能调用时,可以使用BIOS功能调用
(1)键盘I/O中断调用——INT16H
(2)显示器输入中断调用——INT10H
进度
本次共有2个练习,完成2个。
内容
【练习1】
编写主程序调用一个过程,实现将两个非压缩BCD码转换为一个压缩BCD码,并用字符显示功能和字符串显示功能完成在屏幕上显示一个字符串“HelloWorld!
”的功能。
(1)实现方法
定义俩个字节和一个字符串,并开辟空间,并利用callchange语句交换其位置,然后用伪指令将其压缩
(2)程序代码
DATASSEGMENT
BCD1DB03H
BCD2DBO7H
STRINGDB"
HELLOWORLD!
"
"
$"
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
CALLCHANGE
MOVAH,4CH
INT21H
CHANGEPROC
MOVAL,BCD2
MOVCL,4
SHLAL,CL
ADDBCD1,AL
MOVAX,SEGSTRING
MOVDX,OFFSETSTRING
MOVAH,O9H
RET
CHANGEENDP
CODESENDS
ENDSTART
【练习2】
在内存建立一个表TABLE,其中存放20个字节型无符号数,从键盘输入一个数X(一位数),查找该数X在TABLE中是否存在,若存在,则在RESULT单元存入1,否则存入-1。
tabledb01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20
resultdb?
cld
MOVAX,Datas
MOVDS,AX
LEAdi,table
movcx,20
moval,0fh
repnescasb
jzzer
movresult,-1
jmpstop
zer:
movresult,1
stop:
分析
日
(1)该源程序取名1.ASM,通过汇编、连接后生成可执行文件1.EXE,运行该文件显示的内容如下:
(2)调试方法和运行结果
利用U命令观察内容如上,表明DS=0B91H;
字符串“Pleaseinputyourname:
”的起始地址为DX=002AH;
字符串“Welcome!
”的起始地址为DX=0045H,数据缓冲区起始地址为DX=0000H。
观察数据段如下:
以上数据表明:
没有通过键盘录入姓名“Mary”前,数据缓冲区0B91H:
0000H连续40个字节为空。
运行程序后再观察该位置如下:
利用P命令,录入“Mary”后,数据段0B91H:
0000H连续7个字节中,分别存放28H(40个字符)、4H(实际录入字符)、4DH(M字符)、61H(a字符)、72H(r字符)、79H(y字符)、0DH(回车)。
(3)实验问题和解决方案
(4)实验问题和解决方案
总结
【实验1】
1.存在的问题
想要显示HELLOWORLD时使用T指令,会执行中断,所以不会显示结果,但是p指令却可以乡向下执行。
使用p指令。
2.实验结论
实现了压缩BCD码和非压缩BCD码之间的转换,和在DOS屏幕上的显示。
3.收获和体会
本次实验,我们用汇编语言来实现具体问题并成功的学习过程。
并深刻的体会到本次实验的重要性以及动手能力在科学上的不可或缺的重要性。
了解到了存储器之间内容的传递,体会到了运用汇编语言,编写数值计算程序方法和步骤。
分步了解到了计算机程序在各个存储器,寄存器之间的调度。
4.改进意见
【实验2】
利用反汇编指令-u查看物理地址的时候出现了BYTEPTR,以为是数据无法传递,后来查看资料明白这是强制转换。
实现了数值的比较REPCNZSCASE,逐个比较。
教师
评语
实验报告样例
优
计算机硬件基础
实验一汇编语言程序的调试与运行
软件学院
网络13-1
1.掌握DOS系统功能的调用方法
2.掌握子程序设计的思想、方法及上机调试过程
1、编程实现屏幕信息具有应答功能
2.编写子程序程序,完成动画显示功能
本次共有2个练习,完成2个。
(续)
包含本次实验项目要完成的实验内容、实验原理、实验步骤或过程;
对原始实验数据记录要详实。
【练习1】完成具有应答功能的在屏幕提示信息,分别为:
屏幕显示“Pleaseinputyourname:
”
输入姓名后
屏幕显示“Welcome!
(1)实现方法
数据段中定义2个字符串,分别为“Pleaseinputyourname:
”和“Welcome!
”;
并定义1个数据缓冲区,40个字节,等待姓名的输入。
(2)程序代码
STACKSEGMENTSTACK
DB64DUP(?
)
STACKENDS
DATASEGMENT
BUFFDB40,?
40DUP(?
A1DB0DH,0AH
DB'
Pleaseinputyourname:
$'
A2DB0DH,0AH
Welcome!
'
'
$'
DATAENDS
CODESEGMENT
CODE,SS:
STACK,DS:
DA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 143 03 实验