版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.微机实验九数码转换实验目的掌握计算机常用数据编码之间的相互转换方法。进一步熟悉DEBUG软件的使用方法实验容ACSII码转换为非压缩型BCD码编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停顿键盘输入。将其转换成非压缩性〔非组合型〕BCD码后,再存入DATA2开场的单元中。假设输入的不是十进制数,则相应单元中存放FFH。调试程序,用D命令检查执行结果。实验代码:1.DATASEGMENT ;定义数据段DATA1DB21,",21DUP(");建立一个存区,第二个数存放最大字符数DATA2DB21DUP(");DATA2区定义DATAENDSSTACKSEGMENTSTACK;定义堆栈段DB100DUP(")STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVA*,DATA;程序初始化MOVDS,A*;程序初始化LEAD*,DATA1;D*存放DATA1的首地址MOVAH,0AH;从键盘中输入字符串INT21H;调用INT21功能LEASI,DATA1;SI存放DATA1的首地址INCSI;指向LP1循环次数MOVCL,[SI];存放LP1的循环次数MOVCH,0INCSI;指向所输入的数LEADI,DATA2;DI存放DATA2的首地址LP1:MOVAL,[SI];将输入的数存放到AL中CMPAL,30H;AL与30H比拟JCLP2;AL<30H,则跳LP2CMPAL,39H;AL与39H比拟JALP2 ;AL>39H,则跳LP2(JG与JA比拟)SUBAL,30H;将输入的字符转换成ASCII码MOVBL,AL;AL→BLSAVE:MOV[DI],BL;BL→DS:DIINCSI;SI=SI+1INCDI ;DI=DI+1LOOPLP1 ;循环LP1JMPE*IT;跳转到E*ITLP2:MOVBL,0FFH;如果输入的不是十进制数,则在相应的单元中存放FFHJMPSAVE ;跳转到SAVEE*IT:MOVAH,4CHINT21HCODEENDSENDSTARTBCD码转换为二进制码编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成2进制后存入DATA2字单元中。调试程序,用D命令检查执行结果。代码:STACKSEGMENTDB256DUP(")STACKENDSDATASEGMENTDATA1DW1234HDATA2DW"DATAENDSCODESEGMENTASSUMESS:STACK,CS:CODE,DS:DATASTART:MOVA*,DATAMOVDS,A**ORB*,B*;累加单元清0(B*=0)MOVSI,0AH;设置乘数10MOVCL,4MOVCH,3;设置循环次数3MOVA*,DATA1;取十进制数LP:ROLA*,CL;取数字MOVDI,A*;保存当前A*值ANDA*,0FH;屏蔽高位ADDA*,B*;累加MULSIMOVB*,A*MOVA*,DIDECCH;循环次数减1JNZLPROLA*,CL;取个位数字ANDA*,0FH;屏蔽高位ADDA*,B*;累加MOVDATA2,A*MOVAH,4CHINT21HCODEENDSENDSTART十六进制数转换为ACSII码编写并调试正确的汇编语言源程序,使之将存DATA1字单元中存放的4位十六进制数,转换为ASCII码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出。代码:STACKSEGMENTDB256DUP(")STACKENDSDATASEGMENTDATA1DB12H,02CH;4位十六进制数DATA2DB5DUP(");存放ASC码DATA3DB4DUP(");4位十六进制数分别存放在DATA3的4个字节中LFCRDB0DH,0AH,'$'DATAENDSCODESEGMENTASSUMESS:STACK,DS:DATA,CS:CODESTART:MOVA*,DATAMOVDS,A*LEASI,DATA1LEADI,DATA3MOVCL,2;循环2次LP1:MOVAL,[SI];取2位十六进制数ANDAL,0F0H;屏蔽低四位RORAL,4;右移4位MOV[DI],AL;高位数存放在高地址字节中INCDIMOVAL,[SI];取2位十六进制数ANDAL,0FH;屏蔽高四位MOV[DI],AL;低位数存放在低地址字节中INCSIINCDIDECCLJNZLP1LEASI,DATA3;将DATA3的首地址偏移量赋给SILEADI,DATA2;将DATA2的首地址偏移量赋给DIMOVCL,4;循环4次LP2:MOVAL,[SI];取DATA3中的十六进制数CMPAL,9JGLP3;假设AL>9,跳转到LP3ADDAL,30H;十六进制数0-9->ASC码,要加30HJMPLP4LP3:ADDAL,37H;十六进制数A-F->ASC码,要加37HLP4:MOV[DI],AL;将ASC码依次存入DATA2中INCDIINCSIDECCLJNZLP2MOVAL,'$';设置显示完毕标志MOV[DI+1],AL;存入DATA2中LEAD*,LFCRMOVAH,09HINT21H;回车换行MOVD*,OFFSETDATA2MOVAH,09HINT21H;显示ASC码MOVAH,4CHINT21HCODEENDSENDSTART实验步骤编辑源文件,经汇编连接产生E*E文件。用DEBUG调试、检查、修改程序。实验习题与思考编程实现:从键盘上输入两位十六进制数,转换成十进制数后显示在屏幕上。源代码:STACKSEGMENTDB256DUP(")STACKENDSDATASEGMENTDATA1DB5,",2DUP(")DATA2DB2DUP(")DATA3DB2DUP(")DATAENDSCODESEGMENTASSUMESS:STACK,DS:DATA,CS:CODESTART:MOVA*,DATAMOVDS,A*LEAD*,DATA1MOVAH,0AHINT21H;输入字符串LEASI,DATA1+2LEADI,DATA2MOVCL,2;将ASC码转换为十六进制数LP1:MOVAL,[SI]SUBAL,30HCMPAL,9JALP2MOV[DI],ALINCDIINCSIDECCLJZLP3JNZLP1LP2:SUBAL,7MOV[DI],ALINCDIINCSIDECCLJNZLP1;将十六进制数转换成十进制数,并保存LP3:LEADI,DATA2MOVAL,[DI]MOVBL,[DI+1]MOVCL,4SHLAL,CLADDAL,BLMOV[DI],ALLEASI,DATA3*ORAH,AHMOVCL,100DIVCL;AH=A*%100,AL=A*/100MOV[SI],AL;保存百位数MOVAL,AH*ORAH,AHMOVCL,10DIVCLMOV[SI+1],AL;保存十位数MOV[SI+2],AH;保存个位数;屏幕显示十进制数LP4:MOVDL,[SI];取百位数送显ORDL,30HMOVAH,02HINT21HMOVDL,[SI+1];取十位数送显ORDL,30HMOVAH,02HINT21HMOVDL,[SI+2];取个位数送显ORDL,30HMOVAH,02HINT21HMOVAH,4CHINT21HCODEENDSENDSTART运行图:输入:输出:十进制数转换为七段码。为了在七段显示器上显示十进制数,需要把十进制数转换为七段代码。转换可采用查表法。设需要转换的十进制数已存放在起始地址为DATA1区域中,七段代码转换表存放在起始地址为TABLE表中,转换结果存放到起始地址为DATA2区域。假设待转换的数不是十进制数,则相应结果单元容为00H。源代码:STACKSEGMENTDB256DUP(")STACKENDSDATASEGMENTDATA1DB0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,'A','B','C','$'TABLEDB00H,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;实际数据定义必须在同一行DATA2DB16DUP(0)COUNTEQU2DATAENDSCODESEGMENTASSUMESS:STACK,DS:DATA,CS:CODESTART:MOVA*,DATAMOVDS,A*LEASI,DATA1LEAB*,DATA2LEADI,TABLE*ORAH,AHLP1:MOVAL,[SI];外循环DATA1指向下一个INCSIMOVC*,16;循环TABLE16次LP2:CMP[DI],ALJELP3ADDDI,COUNT;循环TABLE指向下一组DECC*JNZLP2MOVBYTEPTR[B*],00H;假设不是十进制数,则结果保存为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版(2024)七年级下册英语期末复习:词汇 讲义
- 河南省地理高二下学期期末梳理难点精析
- 卫生专业技术资格考试内科护理(中级369)相关专业知识应考难点解析
- 青少年航天科普知识考试复习题库(附答案)
- 铁道部劳动合同书范本
- 统计学试题及答案
- 通信行业出口市场分析
- 财务分析报告审核服务合同2026
- 渔家乐2026年教育培训合作协议
- 教育旅游线路设计与推广合作协议
- 2025山东城市建设职业学院教师招聘考试试题及答案
- 钓鱼场管理制度
- 纪委查案检讨书
- 安全总监竞聘课件模板
- 输尿管癌根治术手术配合
- 《保额分红在生命》课件
- 连锁酒店项目可行性研究报告
- 2025届高三数学一轮复习备考经验交流
- 2024届广东省东莞市东华中学数学七年级第二学期期末调研模拟试题含解析
- 内蒙古自治区锡林郭勒盟锡林浩特市2022-2023学年三年级下学期期末数学试题
- 化妆品进货查验记录制度
评论
0/150
提交评论