欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    北京工业大学-微机原理-实验九-数码转换实验报告(共20页).docx

    • 资源ID:13630840       资源大小:318.82KB        全文页数:20页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    北京工业大学-微机原理-实验九-数码转换实验报告(共20页).docx

    精选优质文档-倾情为你奉上微机原理实验报告 实验九 数码转换 姓名: 学号: 一、 实验目的 1. 掌握计算机常用数据编码之间的相互转换方法。 2. 进一步熟悉DEBUG软件的使用方法。 二、 实验内容 1. ASC码转换为非压缩型BCD码 编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。将其转换成非压缩型(非组合型) BCD码后,再存入DATA2开始的单元中。若输入的不是十进制数,则相应单元中存放FFH。调试程序,用D命令检查执行结果。 2. BCD码转换为二进制数 编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中调试程序,用D命令检查执行结果。 3. 十六进制数转换为ASC码 编写并调试正确的汇编语言源程序,使之将内存DATA1字单元中存放的4位十六进制数,转换为ASC码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出来。 三、 实验预习 1. 复习材料中有关计算机数据编码部分的内容。 2. 按要求编写程序。 四、 实验步骤 1. 编辑源文件,经汇编连接产生EXE文件。 2. 用DEBUG调试、检查、修改程序。 五、 实验内容实验内容(一) ASC码转换为非压缩型BCD码STACK SEGMENT PARA 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 ASSUME 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<0(AL-0<0),跳转到LP2 JL LP2 CMP AL,9 ;若AL>9(AL-9>0),跳转到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 流程图开始 输入一串十进数,n个数LEA SI,DATA1LEA DI,DATA2CL>0? N Y AL=SIAL-30<9 AND AL-30>O? N YALß0FF ,BLßAL,DIßBLBLßAL ,DIßBLBLßAL ,DIßBLSI+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 ;设置乘数10 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 INT 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 LEA DI,JUMP MOV CL,2 ;循环2次,取两次两位十六进制数 LP0: MOV AL,SI ;取2位十六进制数 AND AL,0F0H ;低四位为零 ROR AL,4 ;右移4位 相当于除以16 MOV DI,AL ;高位数存放在高地址字节中 INC DI MOV AL,SI ;取2位十六进制数 AND AL,0FH ;高四位为零 MOV DI,AL ;低位数存放在低地址字节中 INC SI INC DI DEC CL JNZ LP0 LEA SI,JUMP ;SI=JUMP的首地址偏移量 LEA DI,DATA2 ;DI=DATA2的首地址偏移量 MOV CL,4 ;因为是四位十六进制数,所以设置为循环4次 LP1: MOV AL,SI ;取JUMP中的十六进制数 CMP AL,9 JG LP3 ;若AL>9(AL-9>0),跳转到LP3 ADD AL,30H ;09H+30H=ASCII JMP LP3 LP2: ADD AL,37H ;AFH+30H=ASCII LP3: MOV DI,AL ;将ASCII码依次存入DATA2中 INC DI INC SI DEC CL JNZ LP1 MOV AH,09H INT 21H MOV DX,OFFSET DATA2 MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START流程图六实验习题与思考1. 编程实现:从键盘上输入两位十六进制数,转换成十进制数后在屏幕上显示出来。 源代码:STACK SEGMENT DB 256 DUP(?) STACK ENDS DATA SEGMENT DATA1 DB 5,?,2 DUP(?) DATA2 DB 2 DUP(?) DATA3 DB 2 DUP(?) DATA ENDS CODE SEGMENT ASSUME SS:STACK,DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX LEA DX,DATA1 MOV AH,0AH INT 21H ;输入字符串 LEA SI,DATA1+2 LEA DI,DATA2 MOV CL,2;将ASC码转换为十六进制数 LP1: MOV AL,SI SUB AL,30H CMP AL,9 JA LP2 MOV DI,AL INC DI INC SI DEC CL JZ LP3 JNZ LP1 LP2: SUB AL,7 MOV DI,AL INC DI INC SI DEC CL JNZ LP1;将十六进制数转换成十进制数,并保存 LP3: LEA DI,DATA2 MOV AL,DI MOV BL,DI+1 MOV CL,4 SHL AL,CL ADD AL,BL MOV DI,AL LEA SI,DATA3 XOR AH,AH MOV CL,100 DIV CL ;AH=AX%100,AL=AX/100 MOV SI,AL ;保存百位数 MOV AL,AH XOR AH,AH MOV CL,10 DIV CL MOV SI+1,AL ;保存十位数 MOV SI+2,AH ;保存个位数;屏幕显示十进制数 LP4: MOV DL,SI ;取百位数送显 OR DL,30H MOV AH,02H INT 21H MOV DL,SI+1 ;取十位数送显 OR DL,30H MOV AH,02H INT 21H MOV DL,SI+2 ;取个位数送显 OR DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START2. 十进制转换为七段码。 提示:为了在七段显示器上显示十进制数,需要把十进制数转换为七段代码。转换可采用查表法。设需要转换的十进制数已存放在起始地址为DATA1区域中,七段码转换表存放在起始地址为TABLE表中,转换结果存放到起始地址为DATA2区域。若待转换的数不是十进制数,则相应结果单元内容为00H。STACK SEGMENT DB 256 DUP(?) STACK ENDS DATA SEGMENT DATA1 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,'A','B','C','$' TABLE DB 00H,40H,01H,79H,02H,24H,03H,30H,04H,19H,05H,12H,06H,02H,07H,78H,08H,00H,09H,18H,0AH,08H,0BH,03H,0CH,46H,0DH,21H,0EH,06H,0FH,0EH ;实际数据定义必须在同一行 DATA2 DB 16 DUP(0) COUNT EQU 2 DATA ENDSCODE SEGMENT ASSUME SS:STACK,DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX LEA SI,DATA1 LEA BX,DATA2 LEA DI,TABLE XOR AH,AH LP1: MOV AL,SI ;外循环DATA1指向下一个 INC SI MOV CX,16 ;内循环TABLE 16次 LP2: CMP DI,AL JE LP3 ADD DI,COUNT ;内循环TABLE指向下一组 DEC CX JNZ LP2 MOV BYTE PTRBX,00H ;若不是十进制数,则结果保存为00H INC BX CMP AL,'$' ;设置结束标志 JNZ LP1 JZ LP4 LP3: MOV AL,DI+1 MOV BX,AL ;转换结果保存在DATA2中 INC BX LEA DI,TABLE CMP CL,0 JNZ LP1 LP4: MOV AH,4CH INT 21H CODE ENDS END START专心-专注-专业

    注意事项

    本文(北京工业大学-微机原理-实验九-数码转换实验报告(共20页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开