微机原理实验五报告模板计算器设计.docx

上传人:b****7 文档编号:23784251 上传时间:2023-05-20 格式:DOCX 页数:13 大小:108.97KB
下载 相关 举报
微机原理实验五报告模板计算器设计.docx_第1页
第1页 / 共13页
微机原理实验五报告模板计算器设计.docx_第2页
第2页 / 共13页
微机原理实验五报告模板计算器设计.docx_第3页
第3页 / 共13页
微机原理实验五报告模板计算器设计.docx_第4页
第4页 / 共13页
微机原理实验五报告模板计算器设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

微机原理实验五报告模板计算器设计.docx

《微机原理实验五报告模板计算器设计.docx》由会员分享,可在线阅读,更多相关《微机原理实验五报告模板计算器设计.docx(13页珍藏版)》请在冰豆网上搜索。

微机原理实验五报告模板计算器设计.docx

微机原理实验五报告模板计算器设计

 

南京工程学院

自动化学院

实验报告

课程名称微机原理及应用B

实验项目名称计算器设计

实验学生班级

实验学生姓名

同组学生姓名

实验时间

实验地点

实验成绩评定

指导教师签字

年月日

本实验类型:

□演示性□验证性■设计性□论证性

一、实验目的和要求

二、实验主要仪器和设备

三、实验原理

四、实验方案设计、实验方法

五、实验步骤

六、实验结果分析

七、实验结论

八、思考题

注:

①1-4项内容为实验预习内容,学生须在进实验室之前完成。

②实验结果须有指导教师签字。

一、实验目的和要求

巩固强化微机系统中断的理解,掌握文本的计算机显示方法、常用汇编语言指令,掌握中断程序设计与DOS功能调用方法。

在此基础上,根据计算器的功能要求,提出计算器的实现原理与实现方法,完成系统框架设计,并完成系统的流程图描述,基于汇编语言设计开发计算器程序。

学会利用流程图描述系统工作过程,能够根据设计要求编制中断服务程序,响应中断实现设计功能,熟练应用开发工具完成汇编程序的设计、调试与分析。

二、实验主要仪器和设备

1.计算机及操作系统

2.EDIT、MASM、LINK与Debug软件

3.伟福实验系统及集成开发调试环境

三、实验原理

1.功能描述

✧系统给出提示“PleaseInputNumberAndOperation:

”,用户键盘输入加数与被加数后按下回车,计算器计算结果并显示。

✧一次计算结束,系统显示“CONTINUE(Y/N?

)”,用户键入“Y”,程序继续,键入“N”,系统退出

2.系统原理

✧系统输入采用DOS中断的01号功能获取键盘输入,系统只接受数字与“+”运算符,字母或其它字符时作为非法字符处理。

✧出错信息、结果等的显示利用DOS中断的02号功能实现,显示字符送DL完成显示。

✧加数、结果与被加数分别分配存储单元分开存储,计算结束,系统取结果存储区内容显示。

✧加运算通过指令带进位的加法指令ADC实现,输入输出按位相加依次相加并存入结果存储段

四、实验方案设计、实验方法

1.实验方案

计算器的实现方法有很多,本设计中主要采用汇编语言中常用的带进位加法指令、十进制调整指令、程序控制指令,加1指令、减1指令、DOS中断指令等实现计算器的设计,设计流程如下图,详细方案与方法略。

 

2.实验方法

根据所述原理,对照设计流程细化分析设计过程,编制汇编语言程序,而后编译并连接,生成可执行代码,利用MASM调试软件Debug或集成环境WAVE6000跟踪调试可执行程序,观察各变量、寄存器等内容,调试无误后,运行并测试程序。

五、实验步骤

1.代码编制利用wave软件或WINDOWS的EDIT编辑器,创建源文件并编制汇编语言代码,存储为.asm文件

2.设计项目的创建

3.设计编译

采用汇编语言工具MASM或WAVE集成环境的编译菜单编译….

4.设计链接…..

5.设计调试…..

6.系统测试…..

六、实验结果与分析

1.汇编语言源程序清单

DATASEGMENT

NUM1DB20DUP(?

NUM2DB20DUP(?

INFODB'PleaseInputNumber:

'

QINFDB'CONTINUE(Y/N)?

$'

DATAENDS

STACKSEGMENTSTACK

DB20DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

REIN:

MOVSI,OFFSETINFO;Informationdisplay

MOVCX,14H

DISP1:

MOVDL,[SI]

MOVAH,02H

INT21H

INCSI

LOOPDISP1

MOVDL,0AH;Linechangedisplay

MOVAH,02H

INT21H

MOVDL,0DH;returndisplay

INT21H

MOVSI,OFFSETNUM1

MOVCL,00H

A1:

MOVAH,01H;theFirstnumberinputting

INT21H

CMPAL,2BH;+ispressed

JZA22

MOV[SI],AL

INCSI

INCCL

JMPA1

A22:

MOVSI,OFFSETNUM2;thesecondnumberinputting

MOVCH,00H

A23:

MOVAH,01H

INT21H

CMPAL,0DH

JZA2;enterispressed

MOV[SI],AL

INCSI

INCCH

JMPA23

A2:

PUSHCX

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH

INT21H

MOVSI,OFFSETNUM1;thefirstnumberisdisplayed

MOVCH,00H

A3:

MOVDL,[SI]

MOVAH,02H

INT21H

INCSI

LOOPA3

MOVDL,2BH

MOVAH,02H

INT21H

MOVSI,OFFSETNUM2;thesecondnumberisdisplayed

POPCX;

PUSHCX;numberprotect

MOVCL,CH

MOVCH,00H

A33:

MOVDL,[SI]

MOVAH,02H

INT21H

INCSI

LOOPA33

POPCX;

PUSHCX;

MOVCH,00H;

MOVSI,OFFSETNUM1

DCON1:

SUBBYTEPTR[SI],30H

INCSI

LOOPDCON1;

POPCX;

PUSHCX;

MOVCL,CH;

MOVCH,00H

MOVSI,OFFSETNUM2

DCON2:

SUBBYTEPTR[SI],30H

INCSI

LOOPDCON2;

POPCX;

PUSHCX;

CMPCL,CH

JGN1GN2

CMPCL,CH

JZCALC

MOVSI,OFFSETNUM1;ADD"0"intheheadofnum2;N2GN1:

N1AD0:

MOVBL,CL

MOVBH,00H

MOVAL,[BX+SI-1]

MOVBL,CH

MOVBH,00H

MOV[BX+SI-1],AL

DECCL

DECCH

CMPCL,00H

JNZN1AD0

POPCX;

PUSHCX

SUBCH,CL

MOVCL,CH

MOVCH,00H

AD0N1:

MOVAL,00H

MOV[SI],AL

INCSI

LOOPAD0N1

JMPCALC

N1GN2:

MOVSI,OFFSETNUM2;ADD"0"intheheadofnum2

POPCX;

PUSHCX;

N2AD0:

MOVBL,CH

MOVBH,00H

MOVAL,[BX+SI-1]

MOVBL,CL

MOVBH,00H

MOV[BX+SI-1],AL

DECCH

DECCL

CMPCH,00H

JNZN2AD0

POPCX;

PUSHCX

SUBCL,CH

MOVCH,00H

AD0N2:

MOVAL,00H

MOV[SI],AL

INCSI

LOOPAD0N2

CALC:

POPCX

CMPCL,CH

JGADFUC

XCHGCH,CL

ADFUC:

MOVCH,CL

PUSHCX

MOVCH,00H

CLC

MOVSI,OFFSETNUM1

MOVDI,OFFSETNUM2

ADDSI,CX

ADDDI,CX

DECSI

DECDI

CLC

LCAL:

MOVAL,[SI]

MOVAH,00H

ADCAL,[DI]

AAA

MOV[SI+1],AL

DECSI

DECDI

LOOPLCAL

MOVSI,OFFSETNUM1

MOV[SI],AH

POPCX;

PUSHCX

INCCL

MOVCH,00H

MOVSI,OFFSETNUM1

DCON3:

ADDBYTEPTR[SI],30H;Resultadgsted

INCSI

LOOPDCON3;

MOVDL,3DH

MOVAH,02H

INT21H

POPCX;

PUSHCX;

RSTD:

INCCL

MOVSI,OFFSETNUM1;theresultisdisplayed

MOVCH,00H

CMPBYTEPTR[SI],30H

JZNCRY

MOVDL,[SI]

MOVAH,02H

INT21H

NCRY:

INCSI

DECCL

A34:

MOVDL,[SI]

MOVAH,02H

INT21H

INCSI

LOOPA34

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH;returndisplay

INT21H

MOVDX,OFFSETQINF

MOVAH,09H

INT21H

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH;returndisplay

INT21H

MOVAH,01H

INT21H

CMPAL,'N'

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH;returndisplay

INT21H

JZOVER

JMPSTART

OVER:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

2.系统调试

调试窗口如下图

采用WAVE集成工具调试,利用单步指令F8、跟踪指令F7、执行到断点指令CTRL+F9、断点设置指令CTRL+F8等调试软件,利用观察窗查看寄存器值等内容,考察程序执行状况与各段结果。

3.系统测试

系统测试结构如下图,从中可以得出,系统计算结果正确,功能达到设计要求

4.测试分析

通过上述调试测试结果可以得到,采用前文所述原理与设计流程可以实现简易计算器的设计,设计中采用非组合的BCD码表述数据及计算过程,占用计算机资源较多,同时容错性与界面友好性有待提高,同时作为计算器,系统的乘、除、减等运算模块尚待添加。

七、结论

利用WAVE的8086汇编语言集成工具与汇编语言实现了简易计算器的设计,并完成了程序的设计编译、调试、测试等工作,结果表明采用所提出的设计方案与实现方法,能够达到设计目标,设计方案可行

八、思考题

画流程图说明采用基本的加法指令与移位指令如何实现多字节的乘法运算?

多字节的乘法运算可以通过带进位的加法与移位指令实现,原理如下…..

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

当前位置:首页 > 小学教育 > 小升初

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

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