文档详情

合肥工业大学电气与自动化专业实验中心 80X86微机原理及接口技术实验教程 1数制转换实验

碎****木
实名认证
店铺
DOCX
33.16KB
约8页
文档ID:235779373
合肥工业大学电气与自动化专业实验中心 80X86微机原理及接口技术实验教程 1数制转换实验_第1页
1/8

1.2 数制转换实验1.2.1 实验目的1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解2. 熟悉程序调试的方法1.2.2 实验设备PC 机一台,TD-PITE 实验装置一套1.2.3 实验内容及步骤计算机输入设备输入的信息一般是由 ASCII 码或 BCD 码表示的数据或字符,CPU 一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为 ASCII 码、BCD 码或七段显示码等因此,在应用软件中, 各类数制的转换是必不可少的键盘ASCII码二进制ASCII码CRT显示ASCII码计算机与外设间的数制转换关系如图 1.11 所示,数制对应关系如表 1.1 所示光 电 机ASCII码主打 印 机拨码开关BCD码BCD码机多段显示数据开关二进制图 1.11二进制数制转换关系位 显 示1. 将 ASCII 码表示的十进制数转换为二进制数十进制表示为:D ´10 nn+ Dn-1´10 n-1 + ××× + D0´100= åni=0D ´10i (1)iD 代表十进制数 0,1,2,…,9;i上式转换为:åni=0D ´10i = (×××((D ´10 + D ) ´10 + D ) ´10 + ××× + D ) ´10 + D (2)i n n-1 n-2 1 0由式( 2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn 开始作乘 10 加次位的操作,依次类推,则可求出二进制数的结果。

表 1.1 数制对应关系表十六进制BCD 码二进制机器码ASCII 码共阳七段码共阴00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036H02H7DH70111011137H78H07H81000100038H00H7FH91001100139H18H67HA101041H08H77HB101142H03H7CHC110043H46H39HD110144H21H5EHE111045H06H79HF111146H0EH71H程序流程图如图 1.12 所示实验参考程序如下实验程序清单(例程文件名:A2-1.ASM)SSTACKSSTACK DATA SADD DATA CODESTART:A1:A2: CODESEGMENT STACK DW 64 DUP(?) ENDSSEGMENTDB 30H,30H,32H,35H,36H ENDSSEGMENTASSUME CS:CODE, DS:DATA MOV AX, DATAMOV DS, AXMOV AX, OFFSET SADD MOV SI, AXMOV BX, 000AH MOV CX, 0004H MOV AH, 00H MOV AL, [SI] SUB AL, 30H IMUL BXMOV DX, [SI+01] AND DX, 00FFH ADC AX, DXSBB AX, 30H INC SILOOP A1 JMP A2 ENDS程序开始初始化转换首地址转换次数→CX取第一位ASCII码减去30H乘10加下一位ASCII码减30HN转换完否?Y程序结束END START;十进制数:00256实验步骤(1) 绘制程序流程图,编写实验程序,经编译、链接无误后装入系统。

2) 待转换数据存放于数据段,根据自己要求输入,默认为 30H,30H,32H,35H,36H3) 运行程序,然后停止程序4) 查看 AX 寄存器,即为转换结果,应为:0100 5) 反复试几组数据,验证程序的正确性2. 将十进制数的 ASCII 码转换为 BCD 码从键盘输入五位十进制数的 ASCII 码,存放于 3500H 起始的内存单元中, 将其转换为 BCD 码后,再按位分别存入 350AH 起始的内存单元内若输入的不是十进制的 ASCII 码,则对应存放结果的单元内容为“FF”由表 1.1 可知,一字节 ASCII 码取其低四位即变为 BCD 码实验程序清单(例程文件名:A2-2.ASM)SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDS程序流程图CODE SEGMENT ASSUME CS:CODESTART: MOV CX, 0005HMOV DI, 3500HA1: MOV BL, 0FFH MOV AL, [DI] CMP AL, 3AH JNB A2SUB AL, 30H JB A2MOV BL, ALA2: MOV AL, BLMOV [DI+0AH],AL INC DILOOP A1MOV AX,4C00H INT 21HCODE ENDS END START实验步骤;转换位数;ASCII 码首地址;将错误标志存入BL;不低于 3AH 则转A2;低于 30H 则转A2;结果或错误标志送入AL;结果存入目标地址;程序终止图 1.12 转换(1) 自己绘制程序流程图,然后编写程序,编译、链接无误后装入系统。

2) 在3500H~3504H 单元中存放五位十进制数的 ASCII 码,即:键入E3500 后,输入 31,32,33,34,353) 运行程序,待程序运行停止4) 在调试窗口键入 D350A,显示运行结果,应为:0000:350A 01 02 03 04 05 CC …(5) 反复测试几组数据,验证程序功能3. 将十六位二进制数转换为 ASCII 码表示的十进制数十六位二进制数的值域为 0~65535,最大可转换为五位十进制数五位十进制数可表示为:4 3 2 1 0N = D ´104 + D ´103 + D ´102 + D ´10 + DD :表示十进制数 0~9i将十六位二进制数转换为五位 ASCII 码表示的十进制数,就是求 D1~D4,并将它们转换为 ASCII 码自行绘制程序流程图,编写程序可参考例程例程中源数存放于 3500H、3501H 中,转换结果存放于 3510H~3514H 单元中实验程序清单(例程文件名:A2-3.ASM)SSTACK SEGMENT STACKDW 64 DUP(?) SSTACK ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV SI,3500HMOV DX,[SI] MOV SI,3515HA1: DEC SI MOV AX,DXMOV DX,0000H MOV CX,000AH DIV CXXCHG AX,DX ADD AL,30H MOV [SI],AL CMP DX,0000H JNE A1A2: CMP SI,3510H JZ A3DEC SIMOV AL,30H MOV [SI],AL JMP A2A3: MOV AX,4C00H INT 21HCODE ENDSEND START实验步骤;源数据地址;目标数据地址;除数 10;得商送AX, 得余数送DX;得 Di 的 ASCII 码;存入目标地址;判断转换结束否,未结束则转A1;与目标地址得首地址比较;等于首地址则转A3,否则将剩余地址中填 30H;程序终止(1)编写程序,经编译、链接无误后,装入系统。

2)在 3500H、3501H 中存入 0C 003)运行程序,待程序运行停止4)检查运行结果,键入 D3510,结果应为:30 30 30 31 325)可反复测试几组数据,验证程序的正确性4. 十六进制数转换为 ASCII 码由表 1.1 中十六进制数与 ASCII 码的对应关系可知:将十六进制数 0H~ 09H 加上30H 后得到相应的ASCII 码,AH~FH 加上37H 可得到相应的ASCII码将四位十六进制数存放于起始地址为3500H 的内存单元中,把它们转换为ASCII 码后存入起始地址为 350AH 的内存单元中自行绘制流程图实验程序清单(例程文件名为 A2-4.ASM)SSTACKSSTACK CODESTART: A1:A2:SEGMENT STACK DW 64 DUP(?) ENDSSEGMENT ASSUME CS:CODE MOV CX,0004H MOV DI,3500H MOV DX,[DI] MOV AX,DXAND AX,000FH CMP AL,0AH JB A2ADD AL,07H ADD AL,30HMOV [DI+0DH],AL DEC DIPUSH CX MOV CL,04H SHR DX,CL POP CX LOOP A1;十六进制数源地址;取低 4 位;小于 0AH 则转A2;在 A~FH 之间,需多加上 7H;转换为相应ASCII 码;结果存入目标地址;将十六进制数右移 4 位MOVAX,4C00HINT21H;程序终止CODEENDENDSSTART实验步骤(1) 编写程序,经编译、链接无误后装入系统。

2) 在 3500H、3501H 中存入四位十六进制数 203B,即键入 E3500, 然后输入 3B 203) 先运行程序,待程序运行停止 4 ) 键入 D350A, 显示结果为: 0000:350A 32 30 33 42 CC …5)反复输入几组数据,验证程序功能5. BCD 码转换为二进制数将四个二位十进制数的 BCD 码存放于 3500H 起始的内存单元中,将转换的二进制数存入 3510H 起始的内存单元中,自行绘制流程图并编写程序实验程序清单(例程文件名为:A2-5.ASM)SSTACKSSTACK CODESTART:A1:CODESEGMENT STACK DW 64 DUP(?) ENDSSEGMENT ASSUME CS:CODE XOR AX, AXMOV CX, 0004H MOV SI, 35。

下载提示
相似文档
正为您匹配相似的精品文档