《微机原理》实验指导书加硬件改.docx
- 文档编号:24597170
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:49
- 大小:489.80KB
《微机原理》实验指导书加硬件改.docx
《《微机原理》实验指导书加硬件改.docx》由会员分享,可在线阅读,更多相关《《微机原理》实验指导书加硬件改.docx(49页珍藏版)》请在冰豆网上搜索。
《微机原理》实验指导书加硬件改
微型计算机原理
实
验
指
导
书
实验要求
1.进入实验室前完成的部分
1)认真阅读实验指导书,弄懂实验原理和实验内容。
分析实验内容A程序的结构、实现方法。
2)编写实验所要用到的程序,将其放在U盘上。
3)写出预习报告(其中应有实验内容A、B的程序清单)。
2.进入实验室后完成的部分
1)对实验内容A对其进行汇编、链接获得可执行文件。
运行可执行文件,实现实验内容A的要求。
2)对实验内容B的程序进行调试,修改错误,获得要求的结果。
3)保存调试后的程序。
3.实验结束后的部分
对实验结果进行分析、总结,写出实验报告。
实验报告内容及格式
1.实验目的
2.实验设备
3.实验内容
只做文字叙述,程序部分放在程序清单中。
4.程序清单
实验内容B的完整程序。
如果使用了本实验或前面实验中完全相同的子程序,可不列写,只做注明即可。
实验内容A的程序清单放在预习报告中,不再列写。
5.实验步骤
6.实验总结
主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。
此项为实验成绩评定的重要依据。
汇编语言程序的上机过程
本章内容在实验一~实验六中使用。
1.实验环境
在计算机的C盘(也可以是其他盘符)下,有一个MASM50(也可能是其他文件名)文件夹,在这个文件夹下存放着对汇编语言源程序进行汇编、调试所需要的各种文件。
2.建立源程序
可以用你熟悉的文本编辑器,如记事本、写字板等来建立一个源程序文件。
但需要注意以下几点:
(1)在“我的电脑\工具\文件夹选项\查看\”中将“隐藏已知文件类型的扩展名”上的“√”去掉。
(2)源程序文件的文件名应该是*.asm,如果不是应进行修改。
(3)源程序文件中的字符必须是西文半角字符,不能使用中文全角字符。
(4)不要把数字“0”错写成字符“O”,或者把字符“O”错写成数字“0”。
3.进入DOS系统
在WindowsXP的“附件”中有一个“命令提示符”,运行它即可进入DOS系统。
4.在DOS系统中进入文件夹
E:
\>CD文件夹名↙。
5.汇编源程序
假设在E盘下的WJYL文件夹中已建立了一个DEMO1.ASM的源程序文件,可以执行以下命令:
E:
\WJYL>C:
\MASM50\MASMDEMO1↙
然后将看到:
Microsoft(R)MacroAssemblerVersion5.00
Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.
Objectfilename[DEMO1.OBJ]:
↙(若同意以文件名DEMO1.OBJ生成则回车)
Sourcelisting[NUL.LST]:
↙(若不需要生成列表文件则回车)
Cross-reference[NUL.CRF]:
↙(若不需要生成交叉索引文件则回车)
DEMO1.ASM(56):
errorA2105:
Expected:
instructionordirective
(源程序的第56行有一个错误)
50864+415600Bytessymbolspacefree
0WarningErrors(0个警告错误)
1SevereErrors(一个致命错误)
在文本编辑器中修改这个错误后再进行汇编:
E:
\WJYL>C:
\MASM50\MASM5\MASMDEMO1
Microsoft(R)MacroAssemblerVersion5.00
Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.
Objectfilename[DEMO1.OBJ]:
↙
Sourcelisting[NUL.LST]:
↙
Cross-reference[NUL.CRF]:
↙
50864+415600Bytessymbolspacefree
0WarningErrors
0SevereErrors
汇编完成,获得了DEMO1.OBJ文件。
如果这个软件是由多个源程序文件组成,则需要分别对每个源程序文件进行汇编。
6.链接目标文件
在获得*.OBJ目标文件后,还需要对其进行链接定传统后才能运行。
E:
\WJYL>C:
\MASM50\LINKDEMO1
Microsoft(R)OverlayLinkerVersion3.60
Copyright(C)MicrosoftCorp1983-1987.Allrightsreserved.
RunFile[DEMO1.EXE]:
↙(若同意以文件名DEMO1.EXE生成则回车)
ListFile[NUL.MAP]:
↙(若不需要生成列表文件则回车)
Libraries[.LIB]:
↙(无特殊库文件要求则回车)
这时就获得了一个可执行文件DEMO1.EXE。
如果这个软件是由多个源程序文件组成,就需要链接多个OBJ。
可以进行如下操作:
E:
\WJYL>C:
\MASM50\LINKDEMO1+DEMO2+DEMO3+…
7.运行文件
E:
\WJYL>DEMO1.EXE↙
就可以运行这个文件了。
众友微机原理实验箱使用说明
本将内容在实验七~实验八中使用。
1.使用前须知
通电后,显示屏上稳定显示时应显示信息“Connectornot(Y/N)?
”,接键盘时这时按下‘Y’键即进入联机模式,显示“NOWCOMISSTANDBY!
”,按下‘N’键即进入单机模式,单机模式的操作及显示类似于在计算机上运行DEBUG时的情况。
如果不按键,那么在延时约5秒后自动进入联机模式。
联机模式:
该模式下实验箱通过串口和PC机相连,不需要配标准键盘;该模式下INT21H的显示和键盘功能调用无效,显示时直接将要显示的ASCII字符往88H地址端口送就可以了。
单机模式:
该模式下的操作与在PC机上操作DEBUG时的用法是一样的,不同的是我们的程序在执行时如果碰到段地址改变的,会连续执行两条指令。
由于显示屏大小有限,所以在操作时,如果操作的指令要显示的东西太长,最好指定范围。
特别说明:
在全速运行程序后,要再次下载程序或调试程序,必须重新启动系统。
2.软件说明
本系统软件应该运行在Win98以及Win98以上操作系统。
本系统软件是通过PC机串行口向微机接口实验箱上的8250串口通信芯片发送控制指令,从而控制该芯片直接对该实验箱执行一系列的操作。
如:
下载执行文件、断点设置、单步执行、全速运行、运行到指定地址、运行到光标处、设置PC值等。
如果要和下位机进行通讯,则在使用本软件之前,用户应该将本实验系统配套的串行通讯电缆分别插在该实验箱以及PC微机的串口上,这样才可以实现PC与实验箱之间的串口通讯。
如果没有连接下位机则只能进行上位机的软件仿真。
3.软件安装
在使用软件前,用户按照安装普通软件的步骤,将微机接口实验箱的软件安装在PC机上。
4.进入系统
打开PC机运行该软件。
首先会弹出如下图2-1所示的联机界面:
图2-1
如果本实验系统配套的串行通讯电缆已经连在该实验箱与PC微机的串口上,并且实验箱的电源已经打开。
当检查到通信端口正确时,则进入到联机状态,端口选择为2-1中所示。
如果检查串口没有连通,系统提示用户是否进行连接。
当点击取消按钮或者是ESC键时,系统则进入到上位机软件仿真状态。
5.主要功能
进入到系统的主界面如图2-2所示:
图2-2
5.1文本编辑
●新建/打开(Ctrl+N/Ctrl+O)点击主菜单上的[文件]/[新建](或者[文件]/[打开]),便可以打开一个空白文档或者存在的文档(.asm为扩展名的文件)。
用户可以在文档区中进行文件的编辑。
●剪切(Ctrl+X)要剪切文本以便可以将它移动到其他位置,请选定文本,然后单击主菜单上的[编辑]/[剪切]或者工具栏上的剪切按钮。
●复制(Ctrl+C)要复制文本以便可以将它粘贴到其他位置,请选定文本,然后单击主菜单上的[编辑]/[复制](或者工具栏上的复制按钮)。
●粘贴(Ctrl+V)要粘贴剪切或复制的文本,请将光标置于要粘贴文本的位置,然后单击主菜单上的[编辑]/[粘贴]或者工具栏上的粘贴按钮。
●删除(Delete)要删除文字,请先选定它,然后单击主菜单上的[编辑]/[删除](或者工具栏上的删除按钮)。
●保存/另存为(Ctrl+S)点击主菜单上的[文件]/[保存](或者[文件]/[另存为]),打开了文件保存对话框,将文件保存为以.asm为扩展名的文件。
5.2编译连接装载文件
文件进行调试之前,首先进行装载,其中装载的是一个可执行文件(.exe)文件,所以在文件装载之前先进行编译连接。
●编译连接选项编译连接选项是一个可选的选择项,它用来选择所使用的编译器、连接器、调试器。
在这里,采用的是系统默认的值,用户可以根据情况来选择相应的编译连接器。
建议用户把编译器、连接器和调试器放到“C:
\masm50”目录下面。
●编译/编译连接根据用户选择的编译连接器对用户编写的程序进行编译连接,如果用户没有对文件进行存储,系统提示用户首先进行存储。
如果用户程序是正确的,则生成相应的程序文件(.exe为后缀),如果用户程序中有错误,则在信息框中显示错误信息。
●编译、连接、装载(Ctrl+F9)根据用户选择的编译连接器对用户编写的程序进行编译连接,如果用户没有对文件进行存储,系统提示用户首先进行存储。
如果用户程序是正确的,则生成相应的程序文件(.exe为后缀),并把该文件下载到下位机,如果用户程序中有错误,则在信息框中显示错误信息。
●加载可执行文件(F3)要把执行文件下载到下位机,单击主菜单上的[编译]/[加载可执行文件](或者工具栏上的加载可执行文件按钮)。
如果加载不成功,则进入到上位机软件仿真。
5.3调试
点击主菜单上的“调试”进入程序调试。
主要有以下几种方法:
●全速运行(F9)
●运行到指定地址
●运行至光标处(F4)
●T单步(F10)
●T跟踪(F11)
●P单步(Ctrl+F10)
●P跟踪(Ctrl+F11)
●复位(Ctrl+F2)
●设置PC
●设置取消断点
3.4视图
程序在调试的过程中,我们可以通过查看寄存器中的内容、程序数据区中的内容,并且可以读写I\O端口。
●寄存器窗口单击主菜单上的[视图]/[寄存器窗口],显示寄存器中的内容的变化,如下图2-3所示:
图2-3
●程序数据区单击主菜单上的[视图]/[程序数据区],则显示下载执行文件的执行代码,以二进制形式表示,如下图2-4所示:
图2-4
●I/O端口控制单击主菜单上的[视图]/[I/O端口控制],则弹出图2-5所示的界面:
图2-5
我们可以选择读端口或者写端口,在端口地址中输入想要读写的端口地址。
当用户进行读端口时,在端口值框中显示该端口地址对应的端口值,如果进行写端口,那么把端口值的内容写入到该端口地址中。
3.5浏览
浏览选项下面包括了三部分的内容。
●查看调试信息
当用户选中了记录调试信息选项时,每次的调试信息都会相应的保存在同名的以.txt为后缀的文件中。
供用户查看调试的信息。
●删除调试信息
用户可以把所选中的调试信息删除掉,当用户选中删除调试信息选项时,系统弹出一个文件打开对话框,用户选择所要删除的文件,系统把该文件删除掉。
●记录调试信息
这是一个可选的选项。
系统默认的是被选择的,当记录调试信息被选择时,系统把调试的信息保存在相应的文件中,供用户进行信息的查看;当记录调试信息没有选中时,调试信息则不进行保存。
5.6MS_DOS
当用户点击MS_DOS菜单选项时,弹出如图2-6所示的界面:
图2-6
用户在点击MS-DOS时,首先要确定程序已经装载到下位机中。
用户在命令参数编辑框中输入用户命令,则执行结果显示到上面的屏幕中。
5.7逻辑示波器
点击主菜单上的[视图]/[示波器功能],系统开始对通道1和通道2进行波形采样。
弹出波形界面如图2-7所示。
图2-7
当用户进行示波器功能时,点击开始按钮,系统弹出对话框如下图2-8所示:
图2-8
用户可以选择所要打开的通道,但两个通道不能同时打开。
在此用户可以进行X轴、Y轴调节波形。
实验一DOS输入输出功能的使用
实验目的:
1.掌握8086汇编语言程序的汇编、链接、运行的方法。
2.掌握用软中断调用DOS输入输出功能的方法。
3.掌握将二进制数转换成十进制数的编程方法。
实验设备:
计算机一台。
预装WindowsXP、宏汇编MASM5。
实验内容A:
编写能够实现以下要求的汇编语言程序,并上机实现。
1.用DB定义一个字符串,以“$”作为结束符。
用将以下方法该字符串输出到屏幕上。
MOVDX,字符串首地址
MOVAH,9
INT21H
2.将字符串的长度转换成十进制,用以下方法该字符串输出到屏幕上。
MOVDL,字符ASCII码
MOVAH,2
INT21H
3.用以下方法从键盘输入字符,并将其存入到内存中,直到输入“$”为止。
形成一个以“$”结尾的字符串。
再将这个字符串输出到屏幕。
MOVAH,1
INT21H
输入的字符在AL中。
实验内容B:
编写能够实现以下要求的汇编语言程序,并上机实现。
1.将你名字的汉语拼音、学号等输出到屏幕上,注意应各占一行,即每输出一项,在其后还应输出回车和换行符。
预习要求:
1.预习汇编语言程序上机的步骤,掌握汇编语言程序上机的过程。
2.阅读实验内容A的参考源程序,对其结构以及实现方法进行分析,在理解的基础上掌握编程方法。
3.根据要求,编写实验内容B的源程序。
4.编辑建立实验内容A和实验内容B的源程序文件,存入U盘保存。
5.写出预习报告,报告中应有实验内容B的源程序清单。
实验步骤:
1.编辑建立实验内容A的源程序,对其进行汇编、链接获得可执行文件。
运行可执行文件,实现实验内容A的要求。
2.参考实验内容A的源程序,编辑建立实验内容B的源程序,对其进行汇编、链接获得可执行文件。
如果在汇编、链接过程中有错误产生,则根据提示信息逐一修改错误,直到无错误产生。
运行可执行文件,实现实验内容B的要求。
重要提示:
1.源程序文件名应为*.ASM。
2.源程序文件中的字符必须是西文半角字符,不能使用中文全角字符。
3.在源程序文件中不要把数字“0”错写成字符“O”,或者把字符“O”错写成数字“0”。
4.实验内容A的第3步,要求操作者输入若干字符,并以'$'结束。
在输入'$'后,你会看到2行相同的字符,第1行的最后有'$',这是DOS系统产生的;第2行的没有'$',这是程序产生的。
5.实验内容B,可以通过添加:
String3db'姓名内容','$'
String4db'学号内容','$'
来实现。
6.实验内容A中其他不用的指令可以删除。
实验内容A参考程序:
namedemo1
datasegment
string1db'1234567890abcdefg','$';准备显示的字符串
countdb$-string1-1;上面字符串的长度
string2db100dup(?
);准备放输入字符串的空间
dataends
stacksegmentparastack'stack'
db100dup(100)
stackends
codesegment
startprocfar
assumecs:
code,SS:
STACK,ds:
data
begin:
pushds
movax,0
pushax
movax,data
movds,ax
leadx,string1;输出字符串
movah,9
int21h
;输出回车和换行符,以实现另起一行
movdl,0dh;输出回车命令
movah,2
int21h
movdl,0ah;输出换行命令
movah,2
int21h
moval,count;将字符串长度转换成3位十进制数输出
movah,0;高8位补0
movcl,100
divcl;除以100获得百位数
pushax;暂存结果和余数
movdl,al
adddl,30h;换成ASCII码
movah,2;输出字符到屏幕
int21h
popax;恢复结果和余数
moval,ah;余数作为被除数
movah,0
movcl,10
divcl;除以10获得十位数
pushax
movdl,al
adddl,30h
movah,2
int21h
popax
movdl,ah
adddl,30h
movah,2
int21h
movdl,0dh;输出回车命令
movah,2
int21h
movdl,0ah;输出换行命令
movah,2
int21h
leabx,string2;将输入的字符从string2开始存放
lp1:
movah,1
int21h
mov[bx],al
incbx
cmpal,'$';收到'$'停止
jnelp1
movdl,0dh;输出回车命令
movah,2
int21h
movdl,0ah;输出换行命令
movah,2
int21h
leadx,string2;输出由键盘输入的字符串
movah,9
int21h
ret
startendp
codeends
endbegin
实验二4位BCD码加法
实验目的:
1.掌握BCD码加法的编程方法。
2.掌握串操作指令的使用方法。
3.掌握简单循环结构编程方法。
实验设备:
计算机一台。
预装WindowsXP、宏汇编MASM5。
实验内容A:
编写能够实现以下要求的汇编语言程序,并上机实现。
1.编写一个4位BCD码加法程序,并将结果输出到屏幕上。
2.给出两个4位BCD码加数,手工计算出结果,再用本程序获得结果,对照二者是否相同。
注意数的高、低位在内存中的放置规则。
实验内容B:
编写能够实现以下要求的汇编语言程序,并上机实现。
1.将参考程序中输出到屏幕部分修改成循环结构。
预习要求:
1.阅读实验内容A的参考源程序,对其结构以及实现方法进行分析,在理解的基础上掌握编程方法。
2.根据要求,编写实验内容B的源程序。
3.编辑建立实验内容A和实验内容B的源程序文件,存入U盘保存。
4.写出预习报告,报告中应有实验内容B的源程序清单。
实验步骤:
1.编辑建立实验内容A的源程序,对其进行汇编、链接获得可执行文件。
运行可执行文件,实现实验内容A的要求。
2.参考实验内容A的源程序,编辑建立实验内容B的源程序,对其进行汇编、链接获得可执行文件。
如果在汇编、链接过程中有错误产生,则根据提示信息逐一修改错误,直到无错误产生。
运行可执行文件,实现实验内容B的要求。
重要提示:
1.注意参加运算的数的高位~低位的放置规则。
2.参加运算的2个数的位数必须相同。
3.对于实验内容B,以[SI]为源操作数,每循环一次SI加1。
4.循环结构所用到的计数单元,不能与循环结构中所用到的单元冲突。
实验内容A参考程序:
NAMEdemo2
DATASEGMENT
STRI1DB1,7,5,2;第1个加数,注意低位在前
STRI2DB3,8,1,4;第2个加数,注意应与第1个加数位数相同
COUNTEQU$-STRI2;加数的位数
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK,DS:
DATA,ES:
DATA
STARTPROCFAR
PUSHDS
MOVAX,0
PUSHAX
GO:
MOVAX,DATA
MOVDS,AX;设置源串段基址
MOVES,AX;设置目的串段基址
MOVSI,OFFSETSTRI1;设置源串首地址
MOVDI,OFFSETSTRI2;设置目的串首地址
MOVCX,COUNT;设置串长度
;
CLC;为多字节加法预清进位标志
CYCLE:
MOVAL,[SI]
ADCAL,[DI]
AAA
MOV[DI],AL
INCSI
INCDI
LOOPCYCLE
MOVSI,OFFSETSTRI2
MOVDL,[SI+3];输出千位
ADDDL,30H
MOVAH,2
INT21H
MOVDL,[SI+2];输出百位
ADDDL,30H
MOVAH,2
INT21H
MOVDL,[SI+1];输出十位
ADDDL,30H
MOVAH,2
INT21H
MOVDL,[SI+0];输出个位
ADDDL,30H
MOVAH,2
INT21H
RET
STARTENDP
CODEENDS
ENDSTART
实验三4字节乘法及循环结构
实验目的:
1.掌握顺序向下编程方法。
2.掌握4字节乘法编程处理方法。
3.掌握循环结构编程方法。
4.掌握多模块汇编、链接、运行的方法。
实验设备:
计算机一台。
预装WindowsXP、宏汇编MASM5。
实验内容A:
编写能够实现以下要求的汇编语言程序,并上机实现。
1.编写一个4字节乘法程序,并将结果以十六进制数形式输出到屏幕上。
2.给出两个4字节的乘数,用Winsows中的计算器(科学型)算出十六进制结果,再用本程序获得结果,对照二者是否相同。
注意数的高、低位在内存中的放置规则。
实验内容B:
编写能够实现以下要求的汇编语言程序,并上机实现。
1.一个较大的汇编语言程序常需要做成多个模块,然后链接起来。
这需要用到以下两条伪指令。
使本模块中的符号可被其它模块使用:
PUBLIC符号
在本模块中使用其它模块中的符号:
EXTRN符号:
类型(类型为BYTE、WORD、NEAR、FAR等)
将两个模块分别汇编,然后键接起来即可。
各模块的汇编同单独程序的汇编,链接时用LINK模块1+模块2+…。
将十六进制数转换成ASCII码子程序单独做成一个模块,然后与主模块链接起来。
运行应该能够获得与实验内容A同样的结果。
2.分析实验内容B程序有哪些变化,总结出分模块编程的方法。
预习要求:
1.阅读实验内容A的参考源程序,对其结构以及实现方法进行分析,在理解的基础上掌握编程方法。
2.根据要求,编写实验内容B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理 微机 原理 实验 指导书 硬件