由表1 可知,一字节ASCII 码取其低四位即变为BCD 实验程序:SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV CX, 0005H ;转换位数 MOV DI, 3500H ;ASCII 码首地址 A1: MOV BL, 0FFH ;将错误标志存入BL MOV AL, [DI] CMP AL, 3AH JNB A2 ;不低于3AH 则转A2 SUB AL, 30H JB A2 ;低于30H 则转A2 MOV BL, AL A2: MOV AL, BL ;结果或错误标志送入AL MOV [DI+0AH],AL ;结果存入目标地址 INC DI LOOP A1 A3: JMP A3 CODE ENDS END START 实验步骤: (1)自己绘制程序流程图,然后编写程序,编译、链接无误后装入系统; (2)在3500H~3504H 单元中存放五位十进制数的ASCII 码,即:键入E3500 后,输入 31,32,33,34,35; (3)运行程序,然后停止程序运行; (4)键入D350A,显示运行结果,应为: 0000:350A 01 02 03 04 05 CC 将十六位二进制数转换为ASCII码表示的十进制数 十六位二进制数的值域为0~65535,最大可转换为五位十进制数。 《微机原理与接口技术》 五位十进制数可表示为:Di:表示十进制数0~9 将十六位二进制数转换为五位ASCII 码表示的十进制数,就是求D1~D4,并将它们转换 为ASCII 码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H 中,转换结果存放于3510H~3514H 单元中。 实验程序: SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV SI,3500H ;源数据地址 MOV DX,[SI] MOV SI,3515H ;目标数据地址 A1: DEC SI MOV AX,DX MOV DX,0000H MOV CX,000AH ;除数10 DIV CX ;得商送AX, 得余数送DX XCHG AX,DX ADD AL,30H ;得Di 得ASCII MOV[SI],AL ;存入目标地址 CMP DX,0000H JNE A1 ;判断转换结束否,未结束则转A1 A2: CMP SI,3510H ;与目标地址得首地址比较 JZ A3 ;等于首地址则转A3,否则将剩余地址 DEC SI ;中填30H MOV AL,30H MOV [SI],AL JMP A2 A3: JMP A3 CODE ENDS END START 实验步骤 《微机原理与接口技术》 (1)编写程序,经编译、链接无误后,装入系统;(2)在3500H、3501H 中存入0C 00; (3)运行程序,然后停止运行; (4)检查运行结果,键入D3510,结果应为:30 30 30 31 32; (5)可反复测试几组数据,验证程序的正确性。 中十六进制数与ASCII码的对应关系可知:将十六进制数0H~09H 加上30H 到相应的ASCII码,AH~FH 加上37H 可得到相应的ASCII 码。将四位十六进制数存放于起始 地址为3500H 的内存单元中,把它们转换为ASCII 码后存入起始地址为350AH 的内存单元中。 自行绘制流程图。 实验程序 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV CX,0004H MOV DI,3500H ;十六进制数源地址 MOV DX,[DI] A1: MOV AX,DX CMPAL,0AH JB A2 ;小于0AH 则转A2 ADD AL,07H ;在A~FH 之间,需多加上7H A2: ADD AL,30H ;转换为相应ASCII MOV[DI+0DH],AL ;结果存入目标地址 DEC DI PUSH CX MOV CL,04H SHR DX,CL ;将十六进制数右移4 POPCX LOOP A1 A3: JMP A3 CODE ENDS END START 实验步骤 《微机原理与接口技术》 (1)编写程序,经编译、链接无误后装入系统;(2)在3500H、3501H 中存入四位十六进制数203B,即键入E3500,然后输入3B 20; (3)先运行程序,然后再停止运行; (4)键入D350A,显示结果为:0000:350A 32 30 33 42 CC BCD码转换为二进制数 将四个二位十进制数的BCD 码存放于3500H 起始的内存单元中,将转换的二进制数存入 3510H 起始的内存单元中,自行绘制流程图并编写程序。 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510H A1: MOV AL, [SI] ADD AL, AL MOV BL, AL ADD AL, AL ADD AL, AL ADD AL, BL INC SI ADD AL, [SI] MOV [DI], AL INC SI INC DI LOOP A1 A2: JMP A2 CODE ENDS END START 实验步骤 (1)编写程序,经编译、链接无误后装入系统; 《微机原理与接口技术》 (2)将四个二位十进制数的BCD码存入3500H~3507H 中,即:先键入E3500,然后输 入01 02 03 04 05 06 07 08; (3)先运行程序,然后停止运行; (4)键入D3510 显示转换结果,应为:0C 22 38 4E; (5)反复输入几组数据,验证程序功能。 《微机原理与接口技术》 实验三8255并行接口实验 学习并掌握8255的工作方式及其应用。 掌握8255典型应用电路的接法。 实验设备Pc 机一台,TD-PITE 实验装置一套。 口为输入,B口为输出,完成波动开关 到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。 口均为输出,数据灯D7-D0由左向 右,每次仅亮一个灯,循环显示,D15-D8 正相反,由右向左,每次仅点亮一个灯,循环显示。 实验原理: 并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之 间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。8255 可编程外围接口芯 片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。