微机原理实验指导书09测控(3)

2019-03-16 13:00

3.2 实验设备

PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。 3.3 实验内容及步骤

计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换是必不可少的。 计算机与外设间的数制转换关系如图3.1所示,数制对应关系如表3.1所示。

ASCII码ASCII码BCD码二进制二进制ASCII码ASCII码BCD码二进制键 盘光 电 机拨码开关数据开关CRT显示打 印 机多段显示位 显 示主机 图3.1 数制转换关系

1. 将ASCII码表示的十进制数转换为二进制数 表3.1 数制对应关系表

十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F BCD码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 二进制 机器码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ASCII码 30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 41H 42H 43H 44H 45H 46H 七段码 共阳 40H 79H 24H 30H 19H 12H 02H 78H 00H 18H 08H 03H 46H 21H 06H 0EH 共阴 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 67H 77H 7CH 39H 5EH 79H 71H 程序流程图如图3.2所示。实验参考程序如下。 实验程序清单(例程文件名:A2-1.ASM) SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS

DATA SEGMENT

SADD DB 30H,30H,32H,35H,36H ;十进制数:00256

11

DATA ENDS

程序开始CODE SEGMENT

ASSUME CS:CODE, DS:DATA START: MOV AX, DATA 初始化转换首地址 MOV DS, AX

MOV AX, OFFSET SADD

转换次数→CX MOV SI, AX MOV BX, 000AH

取第一位ASCII码 MOV CX, 0004H

MOV AH, 00H MOV AL, [SI] 减去30H SUB AL, 30H A1: IMUL BX

乘10 MOV DX, [SI+01] AND DX, 00FFH

加下一位ASCII码减30H ADC AX, DX

SBB AX, 30H

N INC SI

转换完否? LOOP A1

YA2: JMP A2

程序结束CODE ENDS

END START

图3.2 转换程序流程图 实验步骤:

(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统。

(2)待转换数据存放于数据段,根据自己要求输入,默认为30H,30H,32H,35H,36H。 (3)运行程序,然后停止程序。

(4)查看AX寄存器,即为转换结果,应为:0100 。 (5)反复试几组数据,验证程序的正确性。 2. 将十进制数的ASCII码转换为BCD码

从键盘输入五位十进制数的ASCII码,存放于3500H起始的内存单元中,将其转换为BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制的ASCII码,则对应存放结果的单元内容为“FF”。由表2.1可知,一字节ASCII码取其低四位即变为BCD码。 实验程序清单(例程文件名:A2-2.ASM)

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

12

SUB AL, 30H

JB A2 ;低于30H则转A2 MOV BL, AL

A2: MOV AL, BL ;结果或错误标志送入AL MOV [DI+0AH],AL ;结果存入目标地址 INC DI LOOP A1

MOV AX,4C00H

INT 21H ;程序终止 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 ? (5)反复测试几组数据,验证程序功能。

3. 将十六位二进制数转换为ASCII码表示的十进制数

十六位二进制数的值域为0~65535,最大可转换为五位十进制数。 五位十进制数可表示为:

N?D4?104?D3?103?D2?102?D1?10?D0

Di:表示十进制数0~9

将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1~D4,并将它们转换为ASCII码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H中,转换结果存放于3510H~3514H单元中。 实验程序清单(例程文件名:A2-3.ASM) 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码

13

MOV [SI],AL ;存入目标地址 CMP DX,0000H

JNE A1 ;判断转换结束否,未结束则转A1 A2: CMP SI,3510H ;与目标地址得首地址比较

JZ A3 ;等于首地址则转A3,否则将剩余地址中填30H DEC SI MOV AL,30H MOV [SI],AL JMP A2

A3: MOV AX,4C00H

INT 21H ;程序终止 CODE ENDS

END START 实验步骤

(1)编写程序,经编译、链接无误后,装入系统。 (2)在3500H、3501H中存入0C 00。 (3)运行程序,待程序运行停止。

(4)检查运行结果,键入D3510,结果应为:30 30 30 31 32。 (5)可反复测试几组数据,验证程序的正确性。 4. 十六进制数转换为ASCII码

由表3.1中十六进制数与ASCII码的对应关系可知:将十六进制数0H~09H加上30H后得到相应的ASCII码,AH~FH加上37H可得到相应的ASCII码。将四位十六进制数存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址为350AH的内存单元中。自行绘制流程图。

实验程序清单(例程文件名为A2-4.ASM) 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

AND AX,000FH ;取低4位 CMP AL,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位

14

POP CX LOOP A1

MOV AX,4C00H

INT 21H ;程序终止 CODE ENDS END START 实验步骤

(1)编写程序,经编译、链接无误后装入系统。

(2)在3500H、3501H中存入四位十六进制数203B,即键入E3500,然后输入3B 20。 (3)先运行程序,待程序运行停止。

(4)键入D350A,显示结果为:0000:350A 32 30 33 42 CC ?。 (5)反复输入几组数据,验证程序功能。 5. BCD码转换为二进制数

将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3510H起始的内存单元中,自行绘制流程图并编写程序。 实验程序清单(例程文件名为:A2-5.ASM) 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

MOV AX,4C00H

INT 21H ;程序终止 CODE ENDS END START 实验步骤

(1)编写程序,经编译、链接无误后装入系统。

(2)将四个二位十进制数的BCD码存入3500H~3507H中,即:

15


微机原理实验指导书09测控(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:怎么才能终身学习?像孩子一样就行

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: