微机原理实验资料Word格式.docx
- 文档编号:15002742
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:32
- 大小:625.66KB
微机原理实验资料Word格式.docx
《微机原理实验资料Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理实验资料Word格式.docx(32页珍藏版)》请在冰豆网上搜索。
1、传送指令
1)用A命令在内存100H处键入下列内容:
-A0100↙
****:
0100MOVAX,1234↙
0103MOVBX,5678↙
0106XCHGAX,BX↙
0108MOVAH,35↙
010AMOVAL,48↙
010DMOVDX,75AB↙
010FXCHGAX,DX↙
0111↙
-
注:
****为段寄存器CS的值,是由计算机生成的;
↙为回车操作。
2)用U命令检查键入的程序并记录,特别注意左边的机器码。
-U0100↙
3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。
并注意标志位有无变化。
-T=0100↙
-T↙
┇
2、加减法指令:
1)用A命令在内存100H处键入下列内容:
MOVAH,34
MOVAL,22
ADDAL,AH
SUBAL,78
MOVCX,1284
MOVDX,5678
ADDCX,DX
SUBCX,AX
SUBCX,CX
2)用U命令检查键入的程序及对应的机器码。
3)用T命令逐条运行这些指令,检查并记录有关寄存器及标志位的情况。
思考:
这次运行还是键入T,行不行?
怎么办?
用R命令检查一下IP的内容。
注意T命令与IP的关系。
3、带进位加减法:
1)用A命令在内存200H处键入下列内容,并用U命令检查:
MOVAH,12
MOVAL,84
MOVCH,56
MOVCL,78
ADDAL,CL
ADCAH,CH
MOVDH,A7
MOVDL,58
SUBDL,7F
SBBDH,34
2)用T命令逐条运行这些指令,检查并记录寄存器及CF内容。
3)上面这段程序若改用16位操作指令达到同样结果,怎么改?
试修改并运行之。
4、BCD码加减法
1)内容:
MOVAL,58
ADDAL,25
DAA
2)要求:
用A命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。
实验报告要求
1、十六进制数加减法手算结果及实验结果
2、8086常用指令练习部分的逐条运行记录,思考结果及自编程序运行记录(列出自编程序)。
附:
动态调试器DEBUG使用
1、键入DEBUG进入DEBUG,显示提示符'
-'
2、退出DEBUG命令:
Q
3、显示内存命令:
D起始地址结束地址
4、修改内存命令:
E起始地址,连续修改键入空格键,键入回车键退出E命令。
5、检查寄存器命令:
R
6、修改寄存器命令:
R寄存器名
7、小汇编命令:
A起始地址,不输入指令键入回车键退出A命令。
8、反汇编命令:
U起始地址结束地址
9、文件命名命令:
N盘号:
文件名
10、读文件命令:
L内存地址
11、写文件命令:
W内存地址
10、读扇区命令:
L内存地址盘号(0--A:
1--B:
)扇区号扇区数
11、写扇区命令:
W内存地址盘号扇区号扇区数
12、运行命令:
G=起始地址结束(断点)地址
13、单步命令:
T=起始地址运行指令数,进入子程序内部。
14、单步命令:
P=起始地址运行指令数,不进入子程序内部。
15、内存搬家命令:
M起始地址结束地址目的地址
16、十六进制数加法:
H数值数值
表1标志寄存器显示内容一览表
标志位显示
1
CF
CY
NC
ZF
ZR
NZ
SF
NG
PL
AF
AC
NA
OF
OV
NV
PF
PE
PO
DF
DN
UP
IF
EI
DI
实验二内存操作数及寻址方法
1、DEBUG命令:
G,N,W,L及Q。
2、8086系统中数据在内存中的存放方式和内存操作数的几种寻址方式。
3、8086指令:
INC,DEC,LOOP,INT3,INT20H,寄存器SI,DI。
4、8086汇编语言伪操作:
BYTEPTR,WORDPTR。
5、求累加和程序和多字节加减法程序。
实验内容和步骤
一、内存操作数及各种寻址方式使用
程序内容:
MOVAX,1234
MOV[1000],AX
MOVBX,1002
MOVBYTEPTR[BX],20
MOVDL,39
INCBX
MOV[BX],DL
DECDL
MOVSI,3
MOV[BX+SI],DL
MOV[BX+SI+1],DL
MOVWORDPTR[BX+SI+2],2846
操作步骤
1)用A命令键入上述程序,并用T命令逐条运行。
2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。
注意D命令显示结果中右边的ASCII字符及双字节数存放法。
有关指令中BYTEPTR及WORDPTR伪操作不加行不行?
试一试。
二、求累加和程序:
程序内容:
MOVBX,1000
MOVCX,10
SUBAX,AX
LOP:
ADDAL,[BX]
ADCAH,0
J:
LOOPLOP
INT3
操作步骤:
1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。
2)用命令NAA将此程序命名为文件AA(文件名可任取)。
3)用R命令将BX:
CX改为程序长度值(即最后一条指令后面的地址减去开始地址)。
4)用命令W100将此程序存到AA命名的磁盘文件中。
5)用命令Q退出DEBUG。
6)用命令DEBUGAA再次调入DEBUG和文件AA,可用U命令检查调入程序。
若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入。
7)用E命令在内存地址1000H处键入16个数字
8)用命令G=100J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值。
9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错。
10)重复GJ与T,再检查AX是否正确。
11)用G命令使程序运行到结束,检查AX值是否正确。
三、多字节加法程序。
MOVDI,1000
MOVCX,8
MOVSI,2000
CLC
MOVAL,[SI]
ADC[DI],AL
INCSI
INCDI
LOOPLOP
INT20
1)用A命令键入此程序。
2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。
3)用G命令运行此程序,并用D命令检查其结果(存放在哪里?
),是否正确?
实验三数据串传送和查表程序
1、堆栈。
堆栈指示器SP和堆栈操作指令PUSH和POP。
2、段寄存器和物理地址计算。
3、查表法和查表指令XLAT。
4、数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP。
5、循环指令ROL、逻辑与指令AND和清方向位指令CLD。
6、伪操作指令DB。
实验内容及步骤
一、利用查表方法把DX的内容(十六进制数)转换成ASCII码
1、用A命令键入下列程序:
MOVDI,2000
MOVCX,4
PUSHCX
MOVCL,4
ROLDX,CL
POPCX
MOVAL,DL
ANDAL,0F
XLAT
CLD
STOSB
2、用A命令在1000H处键入下列ASCII码并用D命令检查之:
DB‘0123456789ABCDEF’
用D命令检查时注意左边的ASCII码值和右边的字符。
3、用R命令给DX送一个四位的十六进制数(例7F8E)。
4、用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查)。
5、用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。
可注意屏幕右边的ASCII字符与DX是否一致。
二、数据串搬家程序:
MOVSI,1000
MOVDI,1500
MOVCX,0F
MOV[DI],AL
2、用A命令DB伪指令在1000H键入下列字符串:
DB‘IBM_PCCOMPUTER'
3、用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。
4、若此程序中的目的地址改为1002H,再运行此程序,看能不能把1000H开始的字符串搬到1002H开始的地方去?
修改程序以做到这一点。
三、段寄存器概念及字符串传送指令练习
MOVSI,0
MOVDI,0
MOVAX,1000
MOVDS,AX
MOVAX,1500
MOVES,AX
REPMOVSB
2、用A命令DB伪指令在1000:
0000处键入字符串'
IBM_PCCOMPUTER'
并用D命检查之。
3、用D命令检查0F00:
1000处内容,看是否一样,为什么?
4、用G命令运行此程序,检查目的地址1500:
0000处内容。
并记下DS与ES值。
DS=1000ES=1500
5、修改此程序,使ES与DS为同一值,以减少一条指令,而源物理地址和目的物理地址(是多少?
)仍和原来一样。
ES=DS=1000
实验四屏幕字符显示程序
JMP,ROR,XOR,HLT。
2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。
3、IBM-PC机的ASCII码表及控制字符。
4、利用^Brea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 资料