北京工业大学-微机原理-实验九-数码转换实验报告(共20页).docx
《北京工业大学-微机原理-实验九-数码转换实验报告(共20页).docx》由会员分享,可在线阅读,更多相关《北京工业大学-微机原理-实验九-数码转换实验报告(共20页).docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上微机原理实验报告 实验九 数码转换 姓名: 学号: 一、 实验目的 1. 掌握计算机常用数据编码之间的相互转换方法。 2. 进一步熟悉DEBUG软件的使用方法。 二、 实验内容 1. ASC码转换为非压缩型BCD码 编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。将其转换成非压缩型(非组合型) BCD码后,再存入DATA2开始的单元中。若输入的不是十进制数,则相应单元中存放FFH。调试程序,用D命令检查执行结果。 2. BCD码转换为二进制数 编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的
2、4位BCD码DATA1,转换成二进制数存入DATA2字单元中调试程序,用D命令检查执行结果。 3. 十六进制数转换为ASC码 编写并调试正确的汇编语言源程序,使之将内存DATA1字单元中存放的4位十六进制数,转换为ASC码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出来。 三、 实验预习 1. 复习材料中有关计算机数据编码部分的内容。 2. 按要求编写程序。 四、 实验步骤 1. 编辑源文件,经汇编连接产生EXE文件。 2. 用DEBUG调试、检查、修改程序。 五、 实验内容实验内容(一) ASC码转换为非压缩型BCD码STACK SEGMENT PAR
3、A STACK STACK DB 256 DUP(?) ;为堆栈段留出256个字节单位 STACK ENDS DATA SEGMENT PARA DATA ;定义数据段 DATA1 DB 32 ;缓冲区最大长度=最多键入字符个数(31)+1 *注:+1为回车 DB ? ;存入的实际输入字符个数,dos返回时自动填入 DB 32 DUP(?) ;输入ACSII码缓冲区 (31+1) *注:+1为回车键 DATA2 DB 32 DUP(?) ;转换后BCD码的缓冲区 (31+1) *注:+1为回车 DATA ENDS CODE SEGMENT ;定义代码段 ASSUME SS:STACK ASSU
4、ME CS:CODE ASSUME DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,DATA1 ;规定:DX存放输入字符串的缓冲区首地址 MOV AH,0AH INT 21H ;字符串输入 AL=键入的ASCII码 LEA SI,DATA1 ;SI存放输入字符串的缓冲区DATA1首地址 LEA DI,DATA2 ;DI存放DATA2首地址 INC SI MOV CL,SI ;取输入字符串长度 INC SI ;指向第一个输入字符 LP1: MOV AL,SI SUB AL,30H ;输入的字符存为ASCII码,将其转换成十进制数 CMP AL,0 ;若AL
5、0(AL-09(AL-90),跳转到LP2 JG LP2 MOV BL,AL ;将AL-BL MOV DI,BL ;将结果存到DATA2开始的单元中 INC DI INC SI DEC CL JMP LP1 LP2: MOV AL,0FFH ;若输入的不是十进制数,在相应的单元中存放FFH ;以字母开头的十六进制数前面需加0 MOV BL,AL ;将AL-BL MOV DI,BL INC DI INC SI DEC CL ;CL=CL-1 JNZ LP1 ;CL=0,执行LP3中的语句 LP3: MOV AH,4CH INT 21H CODE ENDS END START 流程图开始 输入一串
6、十进数,n个数LEA SI,DATA1LEA DI,DATA2CL0? N Y AL=SIAL-30O? N YAL0FF ,BLAL,DIBLBLAL ,DIBLBLAL ,DIBLSI+1CL=CL-1DI+1CL=CL-1结束实验内容(二):BCD码转换为十六进制码DATA SEGMENT DATA1 DW 2497H DATA2 DW ? DATA ENDS CODE SEGMENT ASSUME SS:STACK,CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX XOR BX,BX ;累加单元清0(BX=0) MOV SI,0AH ;设置乘数1
7、0 MOV CL,4 ;指4位BCD码 MOV CH,3 ;循环次数=3 MOV AX,DATA1 ;取十进制数 LP: ROL AX,CL ;取数字 MOV DI,AX ;保存当前AX值 AND AX,0FH ;屏蔽高位 ADD AX,BX ;累加 MUL SI MOV BX,AX MOV AX,DI DEC CH ;循环次数减1 JNZ LP ;以上完成循环三次,个位不用再*10,所以不用最后不用放入循环中去 ROL AX,CL ;取个位数字 AND AX,0FH ;屏蔽高位 ADD AX,BX ;进行累加,直接将最后的累加结果放到AX中 MOV DATA2,AX MOV AH,4CH I
8、NT 21H CODE ENDS END START2497H=(09C1)8流程图实验(三):十六进制转换为ASCII码STACK SEGMENT DB 256 DUP(?) STACK ENDS DATA SEGMENT DATA1 DB 24H,06DH DATA2 DB 4 DUP(?) ;存放ASCII码 JUMP DB 4 DUP(?) ;4位十六进制数分别存放在DATA3的4个字节中 DATA ENDS CODE SEGMENT ASSUME SS:STACK,DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX LEA SI,DATA1 LE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京工业大学 微机 原理 实验 数码 转换 报告 20
限制150内