昆明理工大学微机原理与应用实验.docx

上传人:b****1 文档编号:2451195 上传时间:2022-10-29 格式:DOCX 页数:13 大小:461.62KB
下载 相关 举报
昆明理工大学微机原理与应用实验.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

昆明理工大学微机原理与应用实验

 

昆明理工大学

《微机原理与应用》实验指导书

 

班级:

电自091

姓名:

学号:

2012年5月23日

 

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

实验课程名称:

汇编语言程序上机操作方法实验

开课实验室:

计算中心2012年4月27日

实验项目

名称

汇编语言程序上机操作方法实验

指导

教师

蔡子龙

一、实验目的

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

二、实验原理

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

实验题目:

比较两个字符串的长度并输出较长的字符串

三、实验仪器、材料

1.软件MASM5.0

2.PC微机一台

四、实验步骤

1、建立asm文件

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

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

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

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

4、执行程序。

5、程序调试

源程序代码:

DATASEGMENT

ARRAYDB12,90,100,54,43,32,21,56,11,34

COUNTDW$-ARRAY

MAXDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,COUNT

MOVSI,OFFSETARRAY

MOVAL,[SI]

AGAIN:

INCSI

CMPAL,[SI]

JAENEXT

MOVAL,[SI]

NEXT:

DECCX

JNZAGAIN

MOVMAX,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

运行程序得到的结果:

六、实验结果分析:

DEBUG是汇编语言的调试指令,当程序出现语法错误时,运行中无法形成EXE文件,可以直接检查程序。

但是若出现逻辑错误,则在程序中无法看出,需要用DEBUG来检查内存和寄存器的内容。

各种不同的指令有不同的作用,如D为显示内存命令,E为修改存储单元内容命令等。

该程序比较简单,因此DEBUG命令并不明显,在程序比较复杂的情况下,DEBUG的作用极为明显。

七、实验中遇到的问题及其解决方法。

第一次编程时,程序容易出错,主要是容易遗漏一些语句,中英文的冒号混淆,认真检查便可发现并改正错误。

 

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

实验课程名称:

汇编语言程序上机操作方法实验

开课实验室:

计算中心2082012年4月27日

实验项目

名称

十制的进BCD码加(减)法运算。

指导

教师

蔡子龙

一、实验目的

1.掌握使用运算类指令编程及调试方法。

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

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

二、实验原理/说明

实验题目:

十进制的BCD码加(减)法运算。

三、实验仪器、材料

1.软件MASM5.0

2.PC微机一台

四、实验方法、步骤

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

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

3.反复试几组数,考察程序的正确性。

五、实验思考题及实验报告要求

 

程序代码

DATASEGMENT

ADB25H

BDB17H

SUMDB?

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

MOVAL,A

ADDAL,B

DAA

MOVSUM,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

执行link后的结果:

执行debug后再执行反汇编u后的结果:

执行g0012后在执行d0命令后的结果:

结果如图,AL的值为42,符合25加17的计算结果。

 

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

实验课程名称:

汇编语言程序上机操作方法实验

开课实验室:

计算中心2082012年5月11日

实验项目

名称

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

指导

教师

蔡子龙

一、实验目的

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

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

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

二、实验原理/说明

实验题目:

求某数据区内负数的个数。

三、实验仪器、材料

1.软件MASM5.0

2.PC微机一台

四、实验方法、步骤

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

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

3.反复试几组数,考察程序的正确性。

五、实验思考题及实验报告要求

 

代码:

DATASEGMENT

ARRAYDB-16,18,-12,9,-5,-6,5,0,-11

COUNTDW$-ARRAY

MAXDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,0

MOVDL,0

MOVCX,COUNT

MOVSI,OFFSETARRAY

AGAIN:

CMP[SI],AL

JGENEXT

INCDL

NEXT:

INCSI

DECCX

JNZAGAIN

ADDDL,30H

MOVAH,2

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

执行MASM命令后的结果如下:

执行link后的结果如下:

执行debug后再执行反汇编u后的结果如下:

执行g0029后在执行d0命令后的结果如下:

程序运行后得上图,与预期结果一致,所以正确。

本题要求负数的个数首先负数计数器BL、程序计数器CX清零,指针指向数据段的首地址,然后取数据段的第一个数和0比较,若大于零则指针加一,循环计数器加一,否则负数个数加一,指针加一,程序计数器加一,直到程序计数器等于数据区的数据个数,程序执行完毕,输出结果。

 

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

实验课程名称:

汇编语言程序上机操作方法实验

开课实验室:

计算中心2082012年5月11日

实验项目

名称

显示程序设计实验

指导

教师

蔡子龙

、实验目的

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

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

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

二、实验原理/说明

实验题目:

在显示器上显示A~Z26个英文字母。

三、实验仪器、材料

1.软件MASM5.0

2.PC微机一台

四、实验方法、步骤

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

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

3.修改程序,使显示结果重复5次后退出。

4.要求分别用AH=02H和AH=09H来完成。

五、实验思考题及实验报告要求

 

使用AH=09H

DATASEGMENT

BUFDB'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0AH,0DH,'$'

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

MOVCX,5

AGAIN:

MOVDX,OFFSETBUF

MOVAH,9

INT21H

LOOPAGAIN

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

AH=09H的ASM源程序:

DATASEGMENT

BUFDB'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0AH,0DH,'$'

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

START:

MOVCX,5

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETBUF

AGAIN:

MOVAH,9

INT21H

LOOPAGAIN

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

AH=02H的结果:

执行MASM命令后的结果:

执行link后的结果:

执行EXE文件后的结果:

AH=09H的结果:

执行MASM命令后的结果:

 

执行link后的结果:

执行EXE文件后的结果:

用AH=02H和AH=09H做出来的结果是一样的,但是09H是输出一个字符串而02H输出的是一个字符。

显然用09H输出较为简便。

02H中断为单个字符显示输出,所以需要循环才来实现整个字符串的输出。

首先取第一个字符,用02H来显示,然后指针自加1后,循环显示下一个字符,当所设循环次数CX=26被减为0时,循环结束,屏幕上出现26个字母,然后再循环五次。

 

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

当前位置:首页 > 求职职场 > 职业规划

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

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