实验报告格式.docx
- 文档编号:6292208
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:7
- 大小:97.18KB
实验报告格式.docx
《实验报告格式.docx》由会员分享,可在线阅读,更多相关《实验报告格式.docx(7页珍藏版)》请在冰豆网上搜索。
实验报告格式
微机原理
实验报告
实验名称:
分支结构程序设计
班级:
CDIO
学号:
111145115
姓名:
卢高林
指导老师:
李珍香
2012年11月17日
实验报告要求
1.实验要求
(1)预习条件转移指令和无条件转移指令
(2)熟悉分支程序员设计的方法
2.实验目的
1,熟悉运算指令对标志位的状态影响以及标致位的表示方法
2,掌握条件专一,无条件转移指令的使用方法
3,掌握分支结构
3.程序说明:
(1)说明程序基本结构,包括程序中各部分的功能。
(2)说明入口参数与出口参数,各种参数输入与输出的方式。
(3)说明程序中各部分所用的算法和编程技巧。
(4)说明主要符号和所用到寄存器的功能。
4.上机调试说明
(1)上机调试步骤。
(2)上机调试过程中遇到的问题是如何解决的。
(3)对调试源程序的中间结果和最终结果进行分析。
5.写出源程序清单及执行结果。
(1),编写程序面试线将大写字母字符串转换成小写字符串
datasegment
stringdb'IamaStudent$';定义字符串
dataends
codesegment;定义代码段
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movbx,0;清零
next:
moval,string+[bx]
cmpal,'$'
jzover;判断结束
cmpal,'A'
jbexit
cmpal,'Z';判断是否是大写字母
jaexit
addal,20h;是则转换成小写字母
exit:
movdl,al;调用2号功能
movah,02h
int21h
incbx
jmpnext
over:
movah,4ch;返回系统
int21h
codeends
endstart
程序调试过程:
(1)将程序一个分支命名为out,通过查找资料发现out是汇编语言中已经运用的符号,所以我改为over
(2)起初的寻址写的是incstring。
moval,string来实现指针下移,汇编连接没有错误,但是运行结果是乱码,通过查找资料发现,inc指令是一个任意的8或16位的通用寄存器或存储单元,但不能是立即数,而变量名string表示从段的起始地址到定义变量额地址间的字节数,所以寻址方式不对,改为Incbx.moval,string+[bx]
程序运行结果显示
(2)在内存中定义三个16位数,判断这三个数是否相等。
显示相应提示。
datasegment
bufdb50,50,50;定义字符串
str1db'allequall$'
str2db'onlytwoequall$'
str3db'allthreedifferentfromeachother$'
dataends
codesegment
sssumeds:
data,cs:
code
Start:
movax,data
movdx,ax
xordx,dx
moval,buf;将第一个数放在AL中
cmpal,buf+1;第一个数个第二个数比较
jzcase2;相等,则转向case2
cmpal,buf+2;不等,则与第三个数比较
jzcase1
moval,buf+1;第二个数转到AL
cmpal,buf+2;第二个数与第三个数比较
jzcase1
movdx,offsetstr3;调用9号功能输出字符串
movah,09h
int21h
jmpexit
case1:
movdx,offsetstr2
movah,09h
int21h
jmpexit
case2:
cmpal,buf+1
jnzcase1
movdx,offsetstr1
movah,09h
int21h
exit:
movah,4ch;返回系统
int21h
codeends
endstart
程序调试过程:
起初误使用了2号功能输出,查找资料发现2号功能是单字符输出,入口参数DL=要输出的字符串或其SACLL码值
改用9号功能后结束语句中endstart中end多加了s导致出错,改后运行通过
程序运行结果:
(3)从键盘输入,判断是大写,小写,数字,还是其他,显示相应的提示
datasegment
str1db'thisisanupperletter$';定义4个字符串
str2db'thisisalowercaseletter$'
str3db'thisisafigure$'
str4db'thisisanotherletter$'
dataends
codesegment;定义代码段
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movah,1
int21h
cmpal,'0';判断是否是数字
jbcase1
cmpal,'9'
jbcase2
cmpal,'A';判断是否是大写字母
jbcase1
cmpal,'Z'
jbcase3
cmpal,'a';判断是否是先写字母
jbcase1
cmpal,'z'
jbcase4;都不是则归为其他
jmpcase1
case1:
movdx,offsetstr4;输出相应的字符串内容
movah,9
int21h
case2:
movdx,offsetstr3
movah,9
int21h
case3:
movax,offsetstr1
movah,9
int21h
case4:
movdx,offsetstr2
movah,9
int21h
movah,4ch;返回系统
int21h
codeends
endstart
程序调试过程:
混淆2号功能和9号功能入口参数的设置了。
2号功能是是DL=要输出的字符,9号功能是DX=指向字符串首地址,改正后运行通过
起初定义字符串时候末尾没有加上$,程序编译通过,但是运行结果是:
经过查找资料,明白了数据存储的规律,同时明白了为什么字符串定义结尾必须加上结束标志$
程序运行结果:
6.心得体会
(1)输入程序的时候要仔细,输入完毕后再检查,谨防无意中程序输入错误而浪费时间
(2)目前对部分伪指令的使用规则不太熟悉,有混淆的现象,这个问题需要自己多练多记多下功夫解决
(3)学会了借助DEBUG来分析检查错误
(4)学会了部分DOS系统指令功能的调用,达到了实验目的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 格式