微机原理实验报告1.docx

上传人:b****2 文档编号:18084550 上传时间:2023-04-24 格式:DOCX 页数:13 大小:449.54KB
下载 相关 举报
微机原理实验报告1.docx_第1页
第1页 / 共13页
微机原理实验报告1.docx_第2页
第2页 / 共13页
微机原理实验报告1.docx_第3页
第3页 / 共13页
微机原理实验报告1.docx_第4页
第4页 / 共13页
微机原理实验报告1.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

微机原理实验报告1.docx

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

微机原理实验报告1.docx

微机原理实验报告1

微机原理实验报告

 

院系:

机电工程学院

               专业:

机械设计制造及其自动化

班级:

100220

学号:

姓名:

日期:

12/12/20

 

实验一系统认知

一.实验目的:

学习掌握利用QTH-2008PCI连机软件调试汇编程序。

二.实验内容:

编写程序要求“在数据段中定义5个数,求这5个数的和,并将结果存放到AX寄存器中(或内存SUM中)”。

三.程序:

DATASSEGMENT

BUFDB3,4,5,6,7

SUMDB2DUP(?

DATASENDS

CODESSEGMENT

ASSUMEDS:

DATAS,CS:

CODES

START:

MOVAX,DATAS

MOVDS,AX

MOVSI,0

MOVCX,5

MOVAX,0

CLC

AGAIN:

ADDAL,BUF[SI]

ADCAH,0

INCSI

LOOPAGAIN

MOVSUM,AL

MOVAX,4C00H

INT21H

CODESENDS

ENDSTART

四.结果与分析

从调试结果可以看出,AX=19,并且在数据段地址对应的内存中查出了对应的数据:

3,4,5,6,7以及这五个数之和19。

说明了所编写的程序是正确无误的。

五.思考题

1.软件调试“四部曲“是什么?

答:

写程序xxx.asm,编译xxx.obj,链接xxx.exe,调试。

2.执行程序有哪三种方法?

答:

全速执行,单步执行,执行到指定点。

3.该程序完成什么功能?

执行结果是什么?

如何察看原始数据?

如何显示最终结果?

答:

求5个数的和,结果是19。

在debug调试中,用-D命令显示内存,可以查看原始数据和最终结果,即-D DS:

0000。

最终结果也可以通过定点运行-g001C显示AX      

4.MOVAX,DATAS和MOVDS,AX指令执行完后,在DS里送了个什么东西?

具体值是多少?

答:

将那5个数输入到内存中,具体值为3H,4H,5H,6H,7H。

5.最后两条指令MOVAX,4C00H和INT21H的功能是什么?

答:

DOS调用命令,即返回DOS界面。

6.如何看内存结果单元?

答:

在DEBUG调试中,通过—D命令和对应的物理地址查看内存单元。

 

同组实验者:

 

实验二分支程序设计

一.实验目的:

掌握分支程序设计的方法。

二.实验内容:

验证程序“符号函数SGN(X)的实现”。

三.程序:

DATASSEGMENT

XVARDW3A2BH;给X赋值

SGNDW?

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,XVAR

CMPAX,0

JGENEXT1

MINUS:

MOVAX,0FFFFH

JMPDONE

NEXT1:

JGNEXT2

ZERO:

MOVAX,0

JMPDONE

NEXT2:

MOVAX,1

;--------------------------------------------------------

DONE:

MOVSGN,AX

MOVAX,4C00H

INT21H

CODESENDS

ENDSTART

四.结果与分析

1.当X为正数(3A2BH)时,结果如下图1所示

可以看出,当X为正数时,SGN(X)=1。

2.当X=0时,结果如下图2所示

可以看出,当X为0时,SGN(X)=0。

3

 

 

2

 

 

1

3.当X为负数(X=8000H)时,结果如上图3所示

可以看出,当X为负数时,SGN(X)=0FFFFH

所以验证了这个程序的功能,即当X为正数时,结果为1;当X为0时,结果为0;当X为负数时,结果为0FFFFH。

五.思考题

1.XVAR是多少位数?

答:

它是十六进制数,2个字节,16位。

2.MOVAX,XVAR指令中的源操作数和目的操作数分别是什么寻址方式?

可以到Debug中找到这条指令,并分析之。

答:

源操作数是内存寻址方式,目的操作数是寄存器寻址方式(直接寻址方式)。

这条命令对应的是0C84:

:

0005 MOV AX,[0000]  可见XVAR的偏移地址是0.

3.本程序里有几个条件转移指令?

实现了几个分支?

答:

两个,分别是“JGENEXT1”和“JGNEXT2”,实现了三个分支

4.每个分支后为什么必须有一条无条件转移指令?

答:

因为该分支执行完之后,要跳过其后程序,转到DONE.

5.如何察看原始数据?

如何显示计算结果?

答:

在debug调试中,通过D命令查看原始数据所在的内存单元。

用执行到定点G,和对应的偏移地址001E,即-G001E可以显示计算结果。

6.根据数据段具体数据,从CMPAX,0指令开始,指出往下执行哪五条指令?

 答:

分别是“JGENEXT1”,“NEXT1:

JGNEXT2”,“NEXT2:

MOVAX,0001”,“DONE:

MOVSGN,AX”,“MOVAX,4C00H”。

 

同组实验者:

 

实验三循环程序设计

一.实验目的

掌握循环程序设计的方法。

二.实验内容

编写程序实现“在数据段以NUMBER为首地址,存放有10个无符号数,求其最大数放到MAX单元中。

数据段的十个数:

01H,11H,22H,33H,44H,55H,66H,77H,88H,99H”。

三.程序:

DATASSEGMENT

NUMBERDB01H,11H,22H,33H,44H,55H,66H,77H,88H,99H

MAXDB?

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEASI,NUMBER

LEADI,MAX

MOVCX,10

;------------------------------------------------------------------

MOVAL,[SI]

INCSI

DECCX

AGAIN:

CMPAL,[SI]

JANEXT

MOVAL,[SI]

NEXT:

INCSI

LOOPAGAIN

RESULT:

NOP

MOV[DI],AL

;------------------------------------------------------------------

MOVDL,AL

ADDDL,30H

MOVAH,02H

INT21H

MOVAX,4C00H

INT21H

CODESENDS

ENDSTART

四.结果与分析

从实验结果可以看出,最大值为99H,与理论值相符合。

五.思考题

1.循环程序的3+1结构是什么?

答:

分别是:

初始化,循环体,修改参数和控制循环。

2.初始化都做哪些工作?

答:

为循环做准备,包括建立指针,设置循环次数的计数初始值,设置其他变量的初始值等。

3.改成求无符号数最小值,如何实现?

结果是多少?

改成求带符号数最大值、最小值呢?

答:

将JA改为JB即可,结果是01H。

改成带符号的,即最大,将JA改为JG,结果是77H;最小,将JA改为JL,结果是99H。

4.初始化指令段能够被执行几次?

善后存结果段呢?

答:

都是只执行一次。

 

同组实验者:

 

 

实验四基本IO口扩展实验

一.实验目的

了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。

二.实验内容

74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。

74LS273是一种8D触发器,当CLR为高电平且CLK端电平正跳变时,D0——D7端数据被锁存到8D触发器中。

本实验利用74LS244作为输入口,读取开关状态,并将此状态通过74LS273驱动发光二极管显示出来。

三.实验原理

四.实验步骤

(1)实验连线:

Ø74LS244的CS——ISA总线接口模块的IOY0。

Y7—Y0——开关K8—K1。

Ø74LS273的CS——ISA总线接口模块的IOY2。

Q7—Q0——发光二极管L8—L1。

Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。

Ø该模块的数据线(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LAD0~LAD7)、地址线(LA0~LA7)。

(2)运行程序:

IO.ASM

(3)拨动开关,观察发光二极管的变化。

 

扩展I/O口连线图

五.源程序

CODESSEGMENT

ASSUMECS:

CODES;将CODE定义为代码段

START:

MOVDX,0C400H;分配给74LS244的端口地址

INAL,DX         ;将开关的状态传给AL

MOVDX,0C440H;分配给74LS273的端口地址  OUTDX,AL          ;将AL所存的开关状态输出到二极管

JMPSTART;无条件跳转到START,循环判断

EXIT:

MOVAX,4C00H         ;返回到DOS系统

INT21H

CODESENDS               

ENDSTART          ;程序结束

同组实验者:

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

当前位置:首页 > 高等教育 > 文学

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

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