微机原理与接口技实验报告Word格式文档下载.docx
- 文档编号:18483462
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:45
- 大小:1.18MB
微机原理与接口技实验报告Word格式文档下载.docx
《微机原理与接口技实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技实验报告Word格式文档下载.docx(45页珍藏版)》请在冰豆网上搜索。
图1.5为HELLO.EXE的运行结果,用户通过虚拟屏幕观察,非常形象生动。
。
O
图1.48086仿真器界面
图1.5HELLO.EXE的运行结果
EMU8086提供了断点设置功能,见图1.6所示,先用鼠标选中要设置为断点的指令,然后点击菜单debug——setbreakpoint,即可设置断点。
若要清除断点,则点击菜单debug——clearbreakpoint。
图1.6断点设置
EMU8086也支持DEBUG调试程序,仿真器界面下方的一行按钮中有debug按钮,点击打开后可输入DEBUG命令进行调试。
见图1.7所示。
图1.7EMU8086提供的DEBUG
4、实验总结
通过学习emu8086软件的使用,从编译程序到程序的仿真,EMU8086是学习Intel8086微处理器的理想工具,它模拟真实微处理器的每一步骤,并显示内部寄存器、存储器、堆栈、变量和标志寄存器,而且其中任何一个数值都可通过鼠标双击来改变。
实验二8086指令观察
一、实验目的和要求
1.掌握汇编语言程序编辑、汇编、链接和调试的基本概念。
2.掌握在PC机上建立、汇编、链接和运行8088汇编语言程序的过程。
3.通过观察深入掌握数据传送类、算术运算类和逻辑运算类等各类指令的功能。
二、实验任务
编辑汇编程序,并汇编、链接和调试程序,验证结果。
三、实验设备和软件
PC机、EMU8086
四、实验内容
1.寻找最大最小数程序实验
设内存缓冲区从BUF单元开始,存放若干个单字节数,其数据长度在BUF单元,要求找出最大数送MAX单元,最小数送MIN单元。
2.实验源程序如下
2.代码转换实验
从键盘输入2个十进制数组合成压缩BCD码存入DL,再将压缩BCD码转换成ASCII码送CRT显示。
实验程序如下:
实验结果
输入78
实验三顺序结构程序设计
1.熟悉星研集成环境软件的使用方法。
熟悉Borland公司的TASM编译器;
2.熟悉8086汇编指令,能自己编写简单的程序,并调试运行验证结果。
学习使用EMU8086集成环境软件,验证及编写调试实验内容的程序。
1.编写简单程序,用数据运算指令,对两个16位数做加法运算。
这两个数从地址10050H开始连续存放,低位在低地址一端,结果放在这两个数之后。
实验框图:
实验程序如下:
codesegment
start:
;
setsegmentregisters:
MOVAX,0000H
MOVDS,AX
;
addyourcodehere
MOVSI,50H
MOVDI,52H
MOVBX,54H
CLC
XORAX,AX
MOVAX,[SI]
ADCAX,[DI]
MOV[BX],AX
HLT
ends
endstart;
setentrypointandstoptheassembler.
2.编写简单程序,实现组合BCD码转换成ASCII码送CRT显示。
datasegment
addyourdatahere!
pkeydb"
pressanykey...$"
stacksegment
dw128dup(0)
movax,data
movds,ax
moves,ax
addyourcodehere
MOVAL,27H
MOVDL,AL
MOVCL,4
SHRDL,CL
ORDL,30H
pushax
MOVAH,2
INT21H
popax
ANDDL,0FH
ORDL,30H
MOVAH,2
INT21H
movdl,0dh;
回车换行
MOVAH,02H
INT21H
movdl,0ah
leadx,pkey
movah,9
int21h;
outputstringatds:
dx
waitforanykey....
movah,1
int21h
movax,4c00h;
exittooperatingsystem.
int21h
3、试用已学过的指令编程,运算以下算式:
⑴、5555H+6666H+8756H
⑵、5678+(-1234)-4321
a1dw5555h,6666h,8756h,0,0
b1dw5678,-1234,4321,0
clc;
5555H+6666H+8756H
movax,a1
adcax,a1+2
adcax,a1+4
mova1+6,ax
jcSAVECF
jmpNEXT
SAVECF:
mova1+8,1
NEXT:
5678+(-1234)-4321
movbx,b1
adcbx,b1+2
subbx,b1+4
movb1+6,bx
4、已知BX=12ABH,试编程将其内容转换成ASCII码送到
数据段0100H单元开始存放
pressAnykey...$"
movsi,0100h
movbx,12ABh
movcl,12
movax,bx
shrax,cl
oral,30h
mov[si],al
incsi
movcl,8
andal,0fh
incsi
movcl,4
clc
subal,10
addal,41h
mov[si],al
mov[si],'
$'
movdx,0100h
实验四分支结构程序设计
1.学习分支结构程序的设计和调试方法;
2.熟悉8086汇编指令中的程序控制指令的应用。
学习使用EMU8086集成环境软件,验证及编写、调试实验内容。
1.已知在内存中有一个字节单元NUM,存有带符号数据,要求计算出它的绝对值后,放入RESULT单元中。
题目分析:
根据数学中绝对值的概念知道,一个正数的绝对值是它本身,而一个负数的绝对值是它的相反数;
要计算一个数的相反数,需要完成减法运算,即用0减去这个数。
8086/8088指令系统中有专门的求相反数的指令NEG。
XDB-25
RESULTDB?
MOVAL,X;
X取到AL中
TESTAL,80H;
测试AL正负
JZNEXT;
为正,转NEXT
NEGAL;
否则AL求补
MOVRESULT,AL;
送结果
2.编写计算下面函数值的程序:
1X>0
Y=0X=0
-1X<0
设输入数据为X、输出数据Y,且皆为字节变量。
Msg0db0Dh,0Ah,0Dh,0Ah,"
pleaseinputdataXbetween-128and127..."
0Dh,0Ah,0Dh,0Ah,"
X=12"
'
Msg1db0Dh,0Ah,0Dh,0Ah,"
X>
Y,Y=1$"
Msg2db0Dh,0Ah,0Dh,0Ah,"
X=Y,Y=0$"
Msg3db0Dh,0Ah,0Dh,0Ah,"
X<
Y,Y=-1$"
Msg4db0Dh,0Ah,0Dh,0Ah,"
pressYtocontinue,otherwisestop..."
0Dh,0Ah,0Dh,0Ah,'
Msg5db0Dh,0Ah,0Dh,0Ah,"
pressanykeytoreturn...$"
Msg6db0Dh,0Ah,0Dh,0Ah,"
inputdataerror...$"
StXdb"
000$"
Xdw0
Ydb0
SFdb0
loop0:
leadx,Msg0
movah,1;
符号位判断
cmpal,'
-'
jzSIGN
movStX,al;
正数处理,firstnumber
secondnumber
movStX+1,al
thirdnumber
movStX+2,al
jmpNEXT0
SIGN:
movSF,1;
是负数,标志位sf=1;
负数处理
firstnumber
movStX,al
NEXT0:
getinputdata'
sdecimal,saveinX
xorax,ax
moval,StX;
inputdata,baiwei
subal,30h
movbl,100
mulbl
movX,ax
moval,StX+1;
inputdata,shiwei
movbl,10
adcX,ax
moval,StX+2;
inputdata,gewei
cmpX,-128
jlDATAERROR
cmpX,127
jgDATAERROR
jmpNEXT1
DATAERROR:
leadx,Msg6
jmploop0
NEXT1:
cmpSF,1;
是负数,求补码
jzNEGX
jmpNEXT2
NEGX:
negX
NEXT2:
cmpX,0;
判断X的值,决定Y的值
jzZERO
jgGREAT
movY,0ffh;
x<
0,Y=-1
leadx,Msg3
jmpEND0
GREAT:
movY,1;
x>
0,Y=1
leadx,Msg1
jmpEND0
ZERO:
movY,0;
x=0,Y=0
leadx,Msg2
END0:
leadx,Msg4
waitforanykey
Y'
jzloop0
leadx,Msg5
输入12
3.试编一程序,求三个带符号字数据中的最大值,并将最大值存入MAX字单元中。
设三个带符号数分别在三个字变量X、Y、Z中存储。
multi-segmentexecutablefiletemplate.
Xdw-7856
Ydw-1234
Zdw0
MAXdw?
movax,X
movMAX,ax
cmpax,Y
jlSAVEMAX1
SAVEMAX1:
movax,Y
cmpax,Z
jlSAVEMAX2
SAVEMAX2:
movax,Z
实验五循环结构程序设计
1.学习、掌握循环结构程序的设计和调试方法;
2.熟悉8086汇编指令中的程序控制指令和LOOP指令的应用。
1.编写程序完成求1+2+3+……N的累加和,直到累加和超过1000为止。
统计被累加的自然数的个数送CN单元,累加和送SUM。
流程图如下图所示。
SUMdw?
CNdw?
movCX,100
MOVAX,0;
0送AX
MOVBX,0
LP:
INCBX;
BX加1
ADDAX,BX;
求累加和
CMPBX,100;
比较
JBLP;
<
100转
loopLP
MOVSUM,AX
MOVCN,BX;
送结果
2、已知有几个元素存放在以BUF为首址的字节存贮区中,试统计其中正元素的个数。
显然,每个元素为一个8位有符号二进制数,统计其中正元素的个数可用循环程序实现。
BUFdb12,3,-1,0,-4,55,32,89,5,-22
BEQU$-BUF
CNdb0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 实验 报告