8088实验指导书电子版.docx
《8088实验指导书电子版.docx》由会员分享,可在线阅读,更多相关《8088实验指导书电子版.docx(68页珍藏版)》请在冰豆网上搜索。
8088实验指导书电子版
实验一系统认识实验
一、实验目的
1.掌握TND86/88教学系统的基本操作。
二、实验设备
1.TND86/88教学实验系统一台。
2.电子计算机一台
三、实验内容及步骤
从3500H内存单元开始建立0—15共16个数据。
实验源程序如下:
(A1-1.ASM)
STACKSEGMENTSTACK;8088宏汇编程序
DW64DUP(?
);定义堆栈段
STACKENDS
CODESEGMENT;定义代码段
ASSUMECS:
CODE
START:
MOVDI,3500H;程序开始设数据首址
MOVCX,0010H;字节数送入CX中
MOVAX,0000H
SAHF
Al:
MOV[DI],AL;写入一字节
INCDI;修改地址指针
INCAX;修改数据
DAA;十进制调整
LOOPA1;未填完转移
A2:
JMPA2
CODEENDS;代码段结束
ENDSTART;程序结束
实验步骤
1、使用串行通信电缆将实验系统与计算机(PC)微机相连。
2、打开WMD86进入系统环境如图1-1所示。
图1—1
3、点击‘选择串口’如图1—2所示。
可选串行口l或串行口2(计算机
后面与UBS接口相邻的为串行口1)。
图1—2
4、点击文件,打开新建源程序,如图1—3所示。
图1—3
5、输入源程序并保存为DQ.asm.如图1—4所示。
图1—4
6、点击‘编译’,对源程序进行汇编、连接,生成可执行文件DQ.EXE如图1—5所示。
图1—5
7、汇编、连接无误后点击‘窗口’,如图1—6所示。
图1—6
8、点击‘调试窗口’如图1-7所示,进入调试窗口。
图1—7
9、按实验系统(箱)中的RESET键或计算机键盘上的Ctrl+Break键出现‘welcometoyou!
’界面,说明实验系统(箱)和计算机通信成功,如图1—8所示。
图1—8
10、装入DQ.EXE程序,确认程序段地址CS:
0000及偏移量地址IP:
2000。
11、提示装载完毕后使用U0000:
2000命令进行反汇编,检查程序是否正
确装入。
12、在“>”提示符下键入G=0000:
2000(在系统默认段址CS=0000情况下,也可直接键入G=2000)即可运行程序。
13、使用D0000:
3500可查看3500H~350FH单元中的内容是否为0~15,共16个数。
可用E3500修改内存单元中的内容。
14、在以后的实验中将会用到示波器,示波器窗口如图1—9所示。
图1—9
实验二数码转换编程及程序调试
一、实验目的
1.掌握不同进制数及编码相互转换得程序设计方法,加深对数码转换的理解。
2.熟悉键盘使用方法。
3.熟悉调试程序的方法。
二、实验设备
1.TDN86/88教学实验系统一台
2.电子计算机一台
三、实验内容及步骤
计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其他信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。
因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。
计算机与外设间的数码转换关系如图2-1所示,数码对应关系如表2-1所示。
图2-1数码转换关系
表2-1数码对应关系
十六进制数
BCD码
二进制机器码
ASCII码
七段码
共阳
共阴
0
0000
0000
30H
40H
3FH
1
0001
0001
31H
79H
06H
2
0010
0010
32H
24H
5BH
3
0011
0011
33H
30H
4FH
4
0100
0100
34H
19H
66H
5
0101
0101
35H
12H
6DH
6
0110
0110
36H
02H
7DH
7
0111
0111
37H
78H
07H
8
1000
1000
38H
00H
7FH
9
1001
1001
39H
18H
67H
A
1010
41H
08H
77H
B
1011
42H
03H
7CH
C
1100
43H
46H
39H
D
1101
44H
21H
5EH
E
1110
45H
06H
79H
F
1111
46H
0EH
71H
1.将ASCII码表示的十进制数转换为二进制数
十进制表示为:
Dn×10n+Dn-1×10n-1+…+D0×100=∑Di×10i
(1)
Di代表十进制数1,2,3,…9,0;
上式转换为:
∑Di10i=((…(Dn×10+Dn-1)×10)+Dn-2)×10+…+D1)×10+D0
(2)
由式
(2)可归纳十进制数转换为二进制的方法:
从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数结果。
程序流程及参考程序如下:
(规定:
被转换的ASCII码十进制数存放在3500H-3504H单元中,转换结果存在于3510-3511H单元中。
)
(A2-1.ASM)
STACKSEGMENTSTACK
DW 64 DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOV SI,3500H
MOVDI,3510H
MOVBX,000AH
MOVCX,0004H
MOVAH,00H
MOVAL,[SI]
SUBAL,30H
A1:
IMULBX
ADDAL,[SI-01]
SUBAL,30H
INCSI
LOOPA1
MOV[DI],AX
A2:
JMPA2
CODEENDS
ENDSTART N
Y
实验步骤
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)在3500-3504H单元存入十进制数12的ASCII码,即E3500↙,并输入3030303132。
(3)G=0000:
2000↙,运行程序,并用CTRL+C来中断程序,返回监控状态。
(4)用D3510↙查看结果,应为:
3510 0C 00。
(5)反复试几组数,考察程序的正确性。
2.将十进制数的ASCII码转换为BCD码
设从键盘输入的五位十进制数的ASCII码已存放在3500H起始的内存单元内,把它转换为BCD码后,再按位分别存入350AH起始的内存单元内。
若输入的不是十进制数的ASCII码,则对应存放结果的单元内容为“FF”。
由表2可知,一字节ASCII码取其低四位即变为BCD码。
实验程序及流程如下:
(A2-2.ASM)
STACK SEGMENT STACK
DW 64 DUP(?
)
STACK ENDS
CODE SEGMENT
ASSUME CS:
CODE
START:
MOV CX,0005H:
循环计数器赋初值
MOV DI,3500H :
ASCII码首址
A1:
MOV BL,OFFH :
将错误标志送入BL
MOV AL,[DI] :
送ASCII码至AL
CMPAL,3AH :
比较AL与3A
JNBA2 :
不低于3A则转A2
SUBAL,30H :
低于3A则取ASCII码低4位
JBA2 :
低于30则转A2
MOVBL,AL :
否则AL内容送入BL,取代FF
A2:
MOVAL,BL :
结果或错误标志送入AL
MOV[DI+OAH],AL
INCDI
LOOPA1
A3:
JMPA3
CODEENDS
ENDSTART
实验步骤
(1)输入程序并检查无误,经汇编、连续后装入系统。
(2)在3500-3504H单元中存放五位十进制数的ASCII码, 即:
E3500↙,并输入31、32、33、34、35。
(3)G=0000:
2000↙,运行程序。
(4)D350A↙,显示结果为:
0000:
350A 01 02 03 04 05 CC…
(5)反复试几组数,考察程序的正确性。
3.将十六位二进制数转换为ASCII码表示的十进制数
十六位二进制数的值域为0-65535,最大可转换为五位十进制数。
算法:
五位十进制数可表示为:
ND=D4×104+D3×103+D2×102+D1×10+D0
D1:
表示十进制数0~9
因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。
实验程序及流程如下:
(设源数存于3500-3501H单元中,结果数存于3510-3514H单元中)
(A2-3.ASM)
STACK SEGMENT STACK
DW 64 DUP (?
)
STACK ENDS
CODE SEGMENT
ASSUME CS:
CODE
START:
MOV SI,3500H
MOV DX,[SI]
MOVSI,3515H
A1:
DECSI
MOVAX,DX
MOVDX,0000H
MOV CX,000AH
DIV CX
XCHG AX,DX
ADD AL,30H
MOV[SI],AL
CMPDX,0000H
JNEA1
A2:
CMPSI,3510H
JZA3
DECSI
MOVAL,30H
MOV[SI],AL
JMPA2
A3:
JMPA3
CODEENDS
ENDSTART
N
实验步骤
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)在3500-3501H单元中存放0C00,运行程序并检查结果,应看到3510H-3514H单元中的数依次为30 30 30 31 32。
(3)反复试几组数,并运行程序,观察结果。
4.十六进制数转换为ASCII码
设经过CPU处理后的十六进制数存放于起始地址为3500H的内存单元中,把它们转换成ASCII码后,再分别存入起始地址为350AH的内存单元中。
从表2-1中可知十六进制数加30H即可得到0H-9H的ASCII码,而要得到AH-FH的ASCII码,则需再7H。
实验程序及流程如下:
(A2-4.ASM)
STACK SEGMENT STACK
DW 64 DUP(?
)
STACK ENDS
CODE SEGMENT
ASSUME CS:
CODE
START:
MOV CX,0004H
MOV DI,3500H
MOV DX,[DI]
A1:
MOVAX,DXY
ANDAX,000FH;取低四位值
CMPAL,0AH ;判断是否<9
JBA2 ;若在0-9范围内,则转A2
ADDAL,07H ;若为“A-F”,加7
A2:
ADDAL,30H