4.内存单元内容显示,结果如图(4-4)
图(4-4)内存单元内容
5.内存单元内容的修改,如图(4-5)
图(4-5)修改单元内容
第 6 页 共 87 页 6
五 思考与总结
通过本次实验,使我对TDN86/88教学系统的基本操作有了一定的了解,对实验有了更深的认识,更了解了自己所学的知识应该如何应用。期间也遇到了不少困难,不过在老师和同学帮助之下都解决了问题顺利完成了实验。
第 7 页 共 87 页7
实验二 数码转换编程及程序调试
一 实验目的
1.掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。
2.熟悉键盘使用方法。 3.熟悉调试程序的方法。
二 实验设备
TDN86/51或TDN86/88教学实验系统一台
三 实验内容及步骤
1.连接计算机与外设
2输入程序并检查无误,经汇编、连接后装入程序。
STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,0004H ;设置循环次数
MOV DI,3500H ;将立即数3500传送给DI寄存器
MOV DX,[DI] ;将[3500]单元的内容传送给Dx寄存器 203B
A1: MOV AX,DX ;将DX寄存器的内容传送给Ax寄存器 AX=203B AND AX,000FH ;与操作。作用是:高12位全部屏蔽掉,只保留原来的低四位。结果存放在AX中。AX=000BH
CMP AL,0AH ;和10比较
JB A2 ;JMP if Below 如果AL小于10,那么跳转到A2;加上30,转换为对应的ASCII码,结果存放在AL
ADD AL,07H ;意味着AL是大于等于10的,为A-F范围内的数,先加上7,结果存放在AL。
A2: ADD AL,30H ;继续加30,结果存放在AL;以下是存放结果的程序 MOV [DI+0AH],AL ;将结果传送到 [3500+A],即[350A]单元 第一次循环的时候存放的是最地位的ASCII码
INC DI ;DI加1,变为3501
第 8 页 共 87 页
8
PUSH CX ;将CX的内容压入堆栈,目的是为了保存CX的原始内容 MOV CL,04H ;将立即数04传送给CL寄存器 SHR DX,CL ;将DX寄存器右移CL位。也就是右移4位。DX内容由203B变为0203
POP CX ;恢复CX的内容。 LOOP A1 ;循环A1,直到CX为0 CODE ENDS
END START
3.在3500-3501H单元中存入四位十六进制数203B,即:E3500↙,并输入3B、20。
4.D350A↙,输入数字与结果ASCⅡ码对应顺序相反。 5.反复调试几组数据,考察程序的正确性。
四 实验结果
1.在3500-3501单元中存入四位十六进制数203B。如图(4-1)
图4-1 存入十六进制数
第 9 页 共 87 页
9
2.运行程序。如图(4-2)
图4-2 G=0000:2000运行程序
3.显示结果.如图(4-3)
图4-3 结果
第 10 页 共 87 页 10