第 2 页 共 87 页 2
实验一 系统认识实验
一 实验目的
掌握TDN86/51或TDN86、88教学系统的基本操作。
二 实验设备
TDN86/51或TDN86、88教学实验系统一台
三 实验内容及步骤
1.使用串行通讯电缆将实验系统与PC微机相连。 2.打开实验环境WMD86. 3.输入源代码:
STACK SEGMENT STACK ; DW 64 DUP(?); STACK ENDS
CODE SEGMENT; ASSUME CS:CODE START:MOV DI,3500H; MOV CX,0010H; MOV AX,0000H A1:MOV [DI],AL; INC DI; LOOP A1; A2:JMP A2 CODE ENDS; END START;
4.进行端口测试。 5. 进行汇编、链接。 6.调试无误,并载入程序。
四 实验结果
1.输入U2000命令进行反汇编,检查程序是否正确装入。如图(4-1)
第 3 页 共 87 页 3
图(4-1)检查程序是否正确装入
2.当发现源程序输入错误或需调试,输入指令A来修改,如修改2000句MOV DI,3500。如图(4-2)
图(4-2)修改2000句
3.对程序进行连续运行。结果如图(4-3)
第 4 页 共 87 页
4
图(4-3)连续运行
第 5 页 共 87 页 5
A1:MOV AL,BL INT 10H INC BL PUSH CX
MOV CX,0FFFFH A2:LOOP A2 POP CX DEC CX JNZ A1 INT 03H CODE ENDS
END START
2 编译、连接、装载 3 运行程序并观察结果
四 实验结果
1.查看程序是否在如成功,结果如图(4-1)所示:图4-1数据载入成功
第 41 页 共 87 页
41
2.输入数据,如图(4-2)所示:
图4-2 输入数据
3.运行程序并查看数组1和数组2的结果,如图(4-3)所示:图4-3 程序结果数组1和数组2
实验2(结果)
1. 载入程序,如图(4-4)
第 42 页 共 87 页
42
2. 运行程序,如图(4-5)
第 43 页 共 87 页
43
五 思考与总结
本次实验我们做得是子程序设计实验。主要掌握子程序的结构和分支程序的设计、调试方法。
这次实验,我有一些不懂的地方,但是通过老师给的课件将所有的程序都加以注释,这样使我对整个实验的代码都了解了,加深了我对分支实验各方面知识点的理解。
第 44 页 共 87 页 44
实验八 显示程序实验
一 实验目的
1.了解INT 10H各功能快的作用及用法。 2.掌握字符方式下PC机显示器显示控制。
二 实验设备
TDN86/51或TDN86/88教学实验系统一台
三 实验内容及步骤
1、连接试验箱 2、打开实验环境
3、输入源代码流程图(如下)
STACK SEGMENT STACK ;堆栈段定义 DW 64 DUP(?) ;重复64次 STACK ENDS ;段定义结束
CODE SEGMENT ;存放在堆空间中的代码段 ASSUME CS:CODE ;段分配语句(伪指令)
START: MOV CX,001AH ;显示字符个数(26)送入CX MOV BL,41H ;显示字符‘A’ MOV AH,01H ;显示一个字符 A1: MOV AL,BL INT 10H
INC BL ;显示下一个字符 PUSH CX
MOV CX,0FFFFH A2: LOOP A2 POP CX DEC CX JNZ A1 INT 03H CODE ENDS
END START4.
5、连接
第 45 页 共 87 页
45
实验六 循环程序设计
一 实验目的
1.加深对循环结构的理解 2.掌握循环结构程序设计的方法。 3.熟练掌握调试循环程序的方法。
二 实验设备
TDN86/51或TDN86/88教学实验系统一台
第 31 页 共 87 页
31
三 实验内容及步骤
1.流程图: 实验一:
1 DX 2 BL [BL] AL [BL]+1 AL [AL]*[BL] AX [DX]+[AX] DX N [AX]>200 结束 程序源代码:
STACK SEGMENT
DW 64 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,0001H ;将0001H传送给DX,DX=0001H MOV BL,02H ;将02H传送给BL,BL=02H A1: MOV AL,BL ;将BL传送给AL
INC BL ;对BL进行加一在传送给BL
MUL BL ;将AL与BL相乘并将结果传送给AX ADD DX,AX ;AX与DX相加并将结果传给DX
第 32 页 共 87 页 32
CMP AX,00C8H ;用目的操作数减去源操作数,AX减去00C8H,比较AX数是否大
于00C8H
JNA A1 ;当CF=1或ZF=1时进行跳转,如跳转则进行A1,如不跳转则进行
A2
A2: INT 03H ;对操作数加1 CODE ENDS
END START
第 33 页 共 87 页 33
开始 数据区首址 D1 数据个数 CL CH、BL置0 DI增1 数据首位=1? N Y BL+1 BL DI增1 N CX=0 存结果 结束 第 34 页 共 87 页
34
实验二: 流程图:
1.程序源代码:
STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE
START: MOV DI,3000H ;设数据区首址,将3000H传给DI,DI=3000H MOV CL,[DI] ;送数据个数,将DI的值传给CL XOR CH,CH ;CH清0 MOV BL,CH ;BL清0
INC DI ;指针指向第一个数据
A1: MOV AL,[DI] ;将DI的值传给AL TEST AL,80H ;判断数据首位是否为1
JE A2 ;判断,当ZF=1时跳转到A2,如不是则顺序执行 INC BL ;负数个数累加
A2: INC DI ;指针指向第一个数据 LOOP A1 ;循环指令,循环执行A1 MOV [DI],BL ;将BL数据传给DI INT 03H ;对操作数进行加1 CODE ENDS
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库微机原理与接口技术实验报告(2)在线全文阅读。
相关推荐: