微机实验数码转换-.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理实验报告实验九:数码转换 电子信息工程 150210班 金峥一、实验题目 实验九——数码转换 二、实验目的 1、掌握计算机常用数据编码之间的相互转换方法。 2、进一步熟悉DEBUG软件的使用方法。 三、实验步骤 1、编辑源文件,经汇编连接产生EXE文件。 2、用DEBUG调试、检查、修改程序。 四、实验流程图 实验9——1流程图 五、实验源代码 实验(一ASCⅡ码转换为非压缩型BCD码 编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。将其转换成非压缩型(非组合型 BCD 码后,再存入DATA2开始的单元中。若输入的不是十进制数,则相应单元中存放FFH。调试程序,用D命令检查执行结果。 代码 DATA SEGMENT PARA DATA ;定义数据段 DATA1 DB 16 DUP(0 ;输入的ACSII码 DATA2 DB 16 DUP(0 ;转换后输出的BCD码 DATA ENDS STACK SEGMENT PARA STACK STACK ;定义堆栈段 STACK1 DB 256 DUP(0 ;为堆栈准备256字节 STACK ENDS CODE SEGMENT ;定义代码段 ASSUME SS:STACK,CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DATA1 ;DATA1首地址存入SI LEA DI,DATA2 ;DATA2首地址存入DI MOV CX,16 ;循环次数 STEP1: MOV AH,01H ;输入字符,AL=输入的ASCII码 INT 21H MOV [SI],AL CMP AL,0DH ;与回车作比较 JE STEP3 ;若为回车则跳转到STEP3 CMP AL,0 ;比较AL与0的大小 JB STEP2 ;若AL0,跳转到STEP2 CMP AL,9 ;比较AL与9的大小 JA STEP2 ;若AL9,跳转到STEP2 SUB AL,30H ;将输入字符的ASCII码转换为十进制数 MOV [DI],AL ;将结果存入DATA2中 INC SI INC DI ;为下一次数码转换做准备 LOOP STEP1 ;跳转到STEP1,进行循环 STEP2: MOV [DI],0FFH ;若输入的不是十进制数,相应单元存入0FFH INC SI INC DI LOOP STEP1 ;跳转到STEP1,进行循环 STEP3: MOV AH,4CH ;带返回码的结束 INT 21H CODE ENDS END START 代码截图 实验(二BCD码转换为二进制数 编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中调试程序,用D命令检查执行结果。 代码 DATA SEGMENT PARA DATA ;定义数据段 DATA1 DW 2497H ;DATA1中存放的4位BCD码 DATA2 DW 0 ;转换后输出的十六进制码 DATA ENDS CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CL,4 ;4位BCD码 MOV CH,3 ;循环次数3次 MOV SI,0AH ;设置乘数10 XOR BX,BX ;累加数BX清0 MOV AX,DATA1 ;取DATA1中的十进制数 LP0: ROL AX,CL ;将AX左移4位,进行取数 MOV DI,AX ;保存当前AX数值 AND AX,0FH ;保留低位 ADD AX,BX ;进行累加 MUL SI ;AX乘10 MOV BX,AX ;将AX存入BX,以便下次循环进行累加 MOV AX,DI ;将AX重置回之前的数值 DEC CH ;循环次数减1 JNZ LP0 ROL AX,CL ;此处开始为取个位数,但不用乘10,所以直接累加 AND AX,0FH ADD AX,BX MOV DATA2,AX MOV AH,4CH INT 21H ENDS END START 代码截图 实验(三十六进制数转换为ASCⅡ码 编写并调试正确的汇编语言源程序,使之将内存DATA1字单元中存放的4位十六进制数,转换为ASCⅡ码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出来。 代码 DATA SEGMENT PARA DATA ;定义数据段 DATA1 DB 23H,0ADH ;存放的4位十六进制数 DATA2 DB 4 DUP(0 ;存入ASCII码 DB $ DATA3 DB 4 DUP(0 ;DATA3的

文档评论(0)

676200 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档