实验报告格式.docx

上传人:b****6 文档编号:6292208 上传时间:2023-01-05 格式:DOCX 页数:7 大小:97.18KB
下载 相关 举报
实验报告格式.docx_第1页
第1页 / 共7页
实验报告格式.docx_第2页
第2页 / 共7页
实验报告格式.docx_第3页
第3页 / 共7页
实验报告格式.docx_第4页
第4页 / 共7页
实验报告格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

实验报告格式.docx

《实验报告格式.docx》由会员分享,可在线阅读,更多相关《实验报告格式.docx(7页珍藏版)》请在冰豆网上搜索。

实验报告格式.docx

实验报告格式

微机原理

实验报告

 

实验名称:

分支结构程序设计

班级:

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系统指令功能的调用,达到了实验目的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1