微机接口技术实验指导书实验报告文档格式.docx
《微机接口技术实验指导书实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《微机接口技术实验指导书实验报告文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
盘根目录下
在资源管理器下可以看到:
C:
\wave,C:
\comp86,C:
\in8088三个文件夹
2)通过资源管理器,进入汇编环境
C:
\wave\Bin\wave.exe,双击wave.exe
3)打开文件我的电脑\c:
\wave\bin\wave.exe环境配置(如下图)
选中菜单栏中“仿真器”——“仿真器设置”选项(如下图)
a、选中“语言”一栏,编译器路径中填写:
\COMP86\(如下图)
b、选中“仿真器”一栏,
选择仿真器—————G6W(如下图)
选择仿真头—————8088/8086实验(如下图)
选择CPU—————8088/8086(如下图)
使用软件模拟器:
打√表示软件实验,硬件实验则无√
4)新建文件
a、选中菜单栏\文件\新建文件,建立空白文件
b、编辑文件,输入以下代码
datasegment;
ds数据段
dataends
stacksegment;
ss堆栈段
stackends
codesegment;
cs代码段
assumecs:
code,ds:
data,ss:
stack
main:
movax,data
movds,ax
movah,4ch;
程序结束,返回DOS
int21h
codeends
endmain
5)保存源程序
a、注意:
保存源程序的文件名不能太长(包括路径)不得超过8个,不用汉字;
b、注意:
保存源程序的文件名的后缀为.asm
6)编译和运行
选择菜单栏\项目\全部编译进行编译工作,出现全部正确为止,否则检查。
7)选择菜单栏\执行\单步或F8快捷键或图标
,观察窗口观察数据变化
a、选择菜单栏\窗口\CPU窗口
b、观察单步执行时CPU内部有名称的寄存器如AX、BX、CX、DX的变化
3、完成思考题,调试成功后,请老师进行实验验收、打分
4、本次实验出现问题、解决方法,以及对实验的意见
实验报告二显示数字或字符
1)复习微机实验环境安装和环境配置
2)练习寻址方式、重点内存寻址方式
3)单步运行程序,通过观察窗口观察指令对寄存器中数据的影响
1)完成微机实验环境配置
2)新建文件
xdb3
movdl,l
adddl,30h;
0~9的数字与相应的ASCII码相差30H,P17页
movah,2
3)保存源程序
保存源程序的文件名不能太长(包括路径);
4)编译和运行
选择菜单栏\项目\全部编译进行编译工作
选择菜单栏\执行\单步或F8快捷键或图标
5)观察窗口观察数据变化
a、程序功能_________
b、如何显示一个字符_________
c、为什么在Wave下进行编辑、编译、连接、调试
d、为什么要在DOS下执行程序
实验报告三寻址方式
1、复习微机实验环境安装和环境配置
2、练习寻址方式、重点内存寻址方式
3、单步运行程序,通过观察窗口观察指令对寄存器中数据的影响
2、实验方向
程序是指令的集合。
指令就是计算机可以识别的命令
程序=数据结构+算法。
数据不能凭空产生和凭空存在,必须有其存在的硬件环境。
计算机硬件系统包括CPU、内存、系统总线、接口。
所以数据(操作数)只能存放在CPU、内存、接口中,产生几种寻址方式。
寻址方式是指寻找指令操作数所在地址的方式(为确定数据的来源和去处)。
四种寻址方式
a、立即数寻址:
操作数代码中例如:
movbx,1234H
b、寄存器寻址:
操作数在CPU中的某个寄存器例如:
movax,bx
c、外设寻址:
操作数在外设中(即接口电路中)例如:
INax,23H
d、内存寻址:
操作数在内存中。
例如:
movax,[bx]
根据偏移地址求法内存寻址划分为5种:
●直接寻址:
偏移地址在指令[]中可以看到。
●寄存器间接寻址:
偏移地址在CPU寄存器中。
●寄存器相对寻址:
偏移地址由CPU寄存器中数值和另外数值的叠加得到。
●基址变址寻址:
偏移地址由CPU中基址寄存器(BX、BP)中的数值和变址寄存器(SI、DI)中数值得到。
●相对基址变址寻址:
偏移地址由CPU中基址寄存器BX、BP)中的数值和变址寄存器(SI、DI)中数值得到。
举例说明
movax,[1234h];
内存寻址方式中的直接寻址(偏移地址在指令[]中可以看到)
movax,[bx];
内存寻址方式中的寄存器间接寻址(偏移地址在CPU寄存器中)
movax,[bx+12H];
内存寻址方式中的寄存器相对寻址
movax,[bx+si];
内存寻址方式中的基址变址寻址
movax,[bx+si+12H];
内存寻址方式中的相对基址变址寻址
3、实验步骤
数据段开始
block1dw1234h,5678h,9abch,0def0h
dataends;
数据段结束endsegment
代码段开始
code,ds:
data;
建立代码段寄存器和代码段段名的关系
;
主程序的开始
movax,data
movds,ax;
初始化数据段段寄存器
movbx,offsetblock1
movsi,2
movax,bx
movax,ds:
[bx]
movax,ds:
[bx+2]
[bx+si]
[bx+si+2]
codeends;
代码段结束endofsegment
endmain;
主程序结束
4、完成思考题,调试成功后,请老师进行实验验收、打分
b、练习其他寻址方式
c、写出每个寻址方式
5、本次实验出现问题、解决方法,以及对实验的意见
实验报告四循环指令
2)练习循环指令loop和cmp、jnz使用
a、新建文件:
输入以下代码
DATASEGMENT
BUFdb23H,16h,08h,20h,64H,8AH,91H,35H,2BH,0ffH
CNEQU$-BUF
zdw1234h
DATAENDS
STACKSEGMENT
STADB10DUP(?
)
TOPEQU$-STA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
MOVAX,DATA
MOVDS,AX
movax,0
movbx,offsetbuf
movcx,cn
LP:
addAl,[bx]
adcah,0
addbx,1
subcx,1
JNZLP
movz,ax
CODEENDS
ENDmain
2)保存源程序
3)编译和运行
4)观察窗口观察数据变化
b、观察单步执行时CPU内部、存储Memory窗口数据0400h单元
a、此程序功能_________,写出指令作用。
b、如果求最小数,如何修改的指令。
c、如果求最大数,如何修改的指令。
****重点***
指令movds:
[si],bl;
将bl中的数据传递到内存物理地址中
;
物理地址=段地址*16+偏移地址
=ds*16+si
=0040H*16+si
=0400H+0000h=0400h
实验报告四子程序调用
1、完成微机实验环境配置
2、练习子程序调用call和ret使用
xdb09h
moval,x
calldisp
dispproc;
输出1个十六进制数的子程序
cmpal,9
jaloop2
loop1:
movdl,al
jmploop3
loop2:
adddl,37h;
A~F的数字与相应的ASCII码相差37H,P17页
loop3:
ret
dispendp
c、注意:
d、注意:
c、选择菜单栏\窗口\CPU窗口
d、观察单步执行时CPU内部、存储Memory窗口数据0400h单元
a、输出1个十六进制数的子程序中为什么用“cmpal,9”指令,不用会怎样。
b、编写程序,求10个数的和,并输出。