昆明理工大学微机原理实验报告资料.docx

上传人:b****6 文档编号:16681684 上传时间:2023-07-16 格式:DOCX 页数:21 大小:1.16MB
下载 相关 举报
昆明理工大学微机原理实验报告资料.docx_第1页
第1页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第2页
第2页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第3页
第3页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第4页
第4页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第5页
第5页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第6页
第6页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第7页
第7页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第8页
第8页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第9页
第9页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第10页
第10页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第11页
第11页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第12页
第12页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第13页
第13页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第14页
第14页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第15页
第15页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第16页
第16页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第17页
第17页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第18页
第18页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第19页
第19页 / 共21页
昆明理工大学微机原理实验报告资料.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

昆明理工大学微机原理实验报告资料.docx

《昆明理工大学微机原理实验报告资料.docx》由会员分享,可在线阅读,更多相关《昆明理工大学微机原理实验报告资料.docx(21页珍藏版)》请在冰点文库上搜索。

昆明理工大学微机原理实验报告资料.docx

昆明理工大学微机原理实验报告资料

昆明理工大学电力工程学院学生实验报告

实验课程名称:

微机原理及应用

开课实验室:

计算机3022017年5月9日

年级、专业、班

14电自3班

学号

201410501321

姓名

栾江飞

成绩

实验项目

名称

实验1Emu8086仿真软件的使用

指导

教师

毕贵红

教师评语

一、实验目的:

学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,为后继课程打下坚实的基础。

学会运算类指令解决实际问题的方法。

掌握运算类指令对各标志位的影响及其测试方法。

二、实验原理:

使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试,以便掌握汇编语言设计、编写、调试和运行程序的方法

三、实验仪器、材料:

a)软件MASM5.0

b)PC微机一台

四、实验步骤:

a)建立asm文件

在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。

注意保存的源文件以asm为后缀。

b)用汇编程序MASM对源文件汇编产生目标程序.OBJ。

c)用连接程序LINK产生可执行文件.EXE。

d)执行程序。

e)程序调试

五、实验过程原始记录(数据图表、计算等)

熟悉Emu8086软件

运行Emu8086软件

点击“继续”按钮,点击“新建”按钮

选择“EXE模板

编程练习一

在数据表DATA1中存放数据0F865H,在数据表DATA2中存放数据360CH。

现编写出将两数分别取出相加,然后将计算结果存放到当前数据段中,偏移地址为3800H单元中的源程序。

 

 

 

 

 

3、编程练习二

编写计算5899H+7987H的程序,并将计算结果存入0B88H单元;

单步运行,并认真记录标志寄存器的信息变化;

从内存中观察计算结果

六、实验结果分析

 

汇编源程序清单

练习1

;EXEformatallowsseveralsegments-forstack,dataandcode.

TITLE8086CodeTemplate(forEXEfile)

;AUTHORemu8086

;DATE?

;8086CodeTemplate

DSEGSEGMENT'DATA'

;TODO:

addyourdatahere!

!

!

!

DATA1DW0F865H

DATA2DW360CH

DSEGENDS

SSEGSEGMENTSTACK'STACK'

DW100hDUP(?

SSEGENDS

CSEGSEGMENT'CODE'

STARTPROCFAR

;StorereturnaddresstoOS:

PUSHDS

MOVAX,0

PUSHAX

;setsegmentregisters:

MOVAX,DSEG

MOVDS,AX

MOVES,AX

;TODO:

addyourcodehere!

!

!

!

LEASI,DATA1

MOVAX,DATA1

ADDAX,DATA2

MOV[2800H],AX

HLT

;returntooperatingsystem:

RET

STARTENDP

CSEGENDS

ENDSTART;setentrypoint.

练习2

;EXEformatallowsseveralsegments-forstack,dataandcode.

TITLE8086CodeTemplate(forEXEfile)

;AUTHORemu8086

;DATE?

;8086CodeTemplate

DSEGSEGMENT'DATA'

;TODO:

addyourdatahere!

!

!

!

DATA1DW0F865H

DATA2DW360CH

DSEGENDS

SSEGSEGMENTSTACK'STACK'

DW100hDUP(?

SSEGENDS

CSEGSEGMENT'CODE'

STARTPROCFAR

;StorereturnaddresstoOS:

PUSHDS

MOVAX,0

PUSHAX

;setsegmentregisters:

MOVAX,DSEG

MOVDS,AX

MOVES,AX

;TODO:

addyourcodehere!

!

!

!

LEASI,DATA1

MOVAX,DATA1

ADDAX,DATA2

MOV[2800H],AX

POPDX

POPBX

HLT

;returntooperatingsystem:

RET

STARTENDP

CSEGENDS

ENDSTART;setentrypoint.

 

昆明理工大学电力工程学院学生实验报告

实验课程名称:

微机原理及应用

开课实验室:

计算机3082017年5月11日

年级、专业、班

14电自3班

学号

201410501321

姓名

栾江飞

成绩

实验项目

名称

实验2分支、循环及子程序设计实验

指导

教师

毕贵红

教师评语

七、实验目的

1.学习分支程序、循环结构程序的设计和调试方法。

2.学习子程序的定义和调试方法。

3.掌握分支、循环、子程序等程序的基本结构。

八、实验原理

实验题目:

从键盘输入一个字符串,统计字母(不分大小写)出现的个数,并显示结果。

九、实验仪器、材料

1.软件MASM5.0

2.PC微机一台

一十、实验步骤

1.输入程序并检查无误,经汇编、连接后生成.EXE文件。

2.使用DEBUG命令运行以上程序。

一十一、实验过程原始记录(数据图表、计算等)

 

一十二、实验结果分析

 

汇编源程序清单

MLENGTH=128;缓存区长度

DATASEGMENT

STR1DBMLENGTH;符合0AH功能调用所需的缓冲区

DB0;实际键入的字符数

DBMLENGTHDUP(0)

MESS1DB'PLEASEINPUTESTR1:

$';提示输入一个字符STR1

MESS2DB'THENUMBEROFDIGITAL:

$';数字个数输出提示

MESS3DB'THENUMBEROFLITTER:

$';字符个数输出提示

NDW30;

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,ES:

DATA,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX;设置DS

MOVES,AX

MOVDX,OFFSETMESS1;显示提示语

CALLDISPMESS

MOVDX,OFFSETSTR1

MOVAH,0AH;接收一个字符串

INT21H

CALLNEWLINE

MOVBH,0;清数字字符计数器

MOVBL,0;清字母字符计数器

MOVCL,STR1+1;取字符串长度

MOVCH,0

JCXZCOK;若字符串长度等于零,不统计

MOVSI,OFFSETSTR1+2;指向字符串首地址

AGAIN:

MOVAL,[SI];取一个字符

INCSI;调整数据指针,指向下一个数据

CMPAL,'0';判断是否为数字字符

JBNEXT;小于'0',不属于统计字符,转向取一个字符

CMPAL,'9'

JANODEC;大于'9',不属于统计字符,转向取一个字符

INCBH;'0'-'9',数字字符计数加1

JMPSHORTNEXT;转向取一个字符

NODEC:

ORAL,20H;转小写

CMPAL,'a';判断是否是字母字符

JBNEXT

CMPAL,'z'

INCBL;字母字符计数加1

NEXT:

LOOPAGAIN

COK:

MOVDX,OFFSETMESS2

CALLDISPMESS

MOVAL,BH

XORAH,AH

CALLDISPAL;显示数字字符个数

CALLNEWLINE

MOVDX,OFFSETMESS3

CALLDISPMESS

MOVAL,BL

XORAH,AH

CALLDISPAL;显示字母字符个数

CALLNEWLINE

JMPRETU;宏跳转

DISPALPROCNEAR

MOVCX,3;8位二进制数转换成3位十进制

MOVDL,10

DISP1:

DIVDL

XCHGAH,AL;使AH=商、AL=余数

ADDAL,30H;使余数转换成ASCII码

PUSHAX;压入堆栈

XCHGAH,AL

MOVAH,0

LOOPDISP1

MOVCX,3

DISP2:

POPDX;弹出1位

CALLECHOCH;显示字符

LOOPDISP2

RET

DISPALENDP

DISPMESSPROCNEAR;调用DOS9号功能,显示字符串

MOVAH,09H

INT21H

RET

DISPMESSENDP

ECHOCHPROCNEAR;调用DOS2号功能,显示1个字符

MOVAH,2

INT21H

RET

ECHOCHENDP

NEWLINEPROC;显示回车和换行

PUSHAX

PUSHDX

MOVDL,0DH;回车符的ASCII码是0DH

MOVAH,2

INT21H;显示回车符

MOVDL,0AH;换行符的ASCII码是0AH

MOVAH,2

INT21H;显示换行符

POPDX

POPAX

RET

NEWLINEENDP

RETU:

MOVAH,4CH;返回DOS系统

INT21H

CODEENDS

ENDSTART

昆明理工大学电力工程学院学生实验报告

实验课程名称:

微机原理及应用

开课实验室:

计算机3022017年5月16日

年级、专业、班

14电自3班

学号

201410101105

姓名

栾江飞

成绩

实验项目

名称

实验3显示程序设计实验

指导

教师

毕贵红

教师评语

一十三、实验目的

1.了解INT21H部分功能号的功能和使用方法。

2.掌握字符方式下PC机显示器显示控制。

3.掌握分支、循环、子程序等程序的基本结构。

一十四、实验原理

实验题目:

从键盘输入两个字符串,比较是否一致,并显示比较结果。

一十五、实验仪器、材料

软件MASM5.0

PC微机一台

一十六、实验步骤

1.输入程序并检查无误,经汇编、连接后生成.EXE文件。

2.使用DEBUG命令运行以上程序,并观察实验结果。

一十七、实验过程原始记录(数据图表、计算等)

 

一十八、实验结果分析

 

汇编源程序清单

MLENGTH=128

DATASEGMENT

STR1DBMLENGTH

DB0

DBMLENGTHDUP(0)

STR2DBMLENGTH

DB0

DBMLENGTHDUP(0)

MESS1DB'PLEASEINPUTESTR1:

$'

MESS2DB'PLEASEINPUTESTR2:

$'

MESS3DB'RESULT:

THEYARETHESAME$'

MESS4DB'RESULT:

THEYAREDIFFERENT$'

NDW30

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,ES:

DATA,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVDX,OFFSETMESS1

CALLDISPMESS

MOVDX,OFFSETSTR1

MOVAH,0AH

INT21H

CALLNEWLINE

MOVDX,OFFSETMESS2

CALLDISPMESS

MOVDX,OFFSETSTR2;输入一串字符串至STR2缓冲区

MOVAH,0AH

INT21H

CALLNEWLINE

MOVAX,SEGSTR1;取STR1的段地址

MOVDS,AX

MOVAX,SEGSTR2

MOVES,AX

LEASI,STR1;取STR1的偏移地址

LEADI,STR2

MOVCX,N

CLD

REPECMPSB;逐一比较两串的对应字符是否相等

JNEEXIT;不相等,则转EXIT

MOVBX,0;相等,则BX=0

MOVDX,OFFSETMESS3

CALLDISPMESS

JMPRETU

EXIT:

MOVBX,-1

MOVDX,OFFSETMESS4

CALLDISPMESS

JMPRETU

DISPMESSPROCNEAR;调用DOS9号功能,显示字符串

MOVAH,09H

INT21H

RET

DISPMESSENDP

NEWLINEPROC;显示回车和换行

PUSHAX

PUSHDX

MOVDL,0DH;回车符的ASCII码是0DH

MOVAH,2

INT21H;显示回车符

MOVDL,0AH;换行符的ASCII码是0AH

MOVAH,2

INT21H;显示换行符

POPDX

POPAX

RET

NEWLINEENDP

RETU:

MOVAH,4CH;返回DOS系统

INT21H

CODEENDS

ENDSTART

 

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2