版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验九数码转换一、实验目的1掌握计算机常用数据编码之间的相互转换方法。2、进一步熟悉DEBUGS件的使用方法。二、实验内容1. ACSII码转换为非压缩型 BCD码编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。将其转换成非压缩型(非组合型)BCD码后,再存入DATA2开始的单元中。若输入的不是十进制数,则相应单元中存放 FFH调试程序,用D命令检查执行结果。2. BCD码转换为二进制码编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入 DATA2字单元中。调试程序,用D命令检
2、查执行结果。3. 十六进制数转换为 ASCII码编写并调试正确的汇编语言源程序 ,使之将内存DATA1字单元中存放的4位十六进制数, 转换为ASCH码后分别存入 DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并 在屏幕上显示出来。三、实验预习1. 复习材料中有关计算机数据编码部分的内容。2. 按要求编写程序。四、实验步骤1. 编辑源文件,经汇编连接产生EXE文件。2. 用DEBUGS试、检查、修改程序。五、实验内容1. ACSII码转换为非压缩型 BCD码STACKSEGMENT PARA STACK STACKDB 256 DUP为堆栈段留出256个字节单位STACKENDSD
3、ATASEGMENT PARA DATA;定义数据段32 DUPDATA2DATADB 32 DUPENDSDATA1DB 32缓冲区最大长度DB ?DB 32 DUCODESEGMENT定义代码段ASSUME SS:STACKASSUME CS:CODEASSUME DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,DATA1;规定:DX存放输入字符串的缓冲区首地址MOV AH,0AHINT 21H;字符串输入AL=入的ASCII码LEA SI,DATA1LEA DI,DATA2DATA2首地址INC SIMOV CL,SI; 取输入字符串长度INC SI;指向
4、第一个输入字符LP1:MOV AL,SISUB AL,30H ;输入的字符存为ASCII码,将其转换成十进制数CMP AL,0;若 AL0(AL-09( AL-90),跳转到 LP2 JG LP2MOV BL,AL;将 AL-BLMOV DI,BLDATA2开始的单元中INC DIINC SIDEC CLJMP LP1LP2:MOV AL,0FFH;在相应的单元存放 FFH;以字母开头的十OMOV BL,ALAL-BL;DI存放;将结果存到若输入的不是十进制数,六进制数前面需加;将MOV DI,BL*89600:8QAX08飾00 PP 6000 00 00-00 PB 0000 BE 600
5、 BB 000:8GT00 iddd jd idJd dd dH-dd JI dd(1J dd Jd财8Q6Tdl dd注注dd ddHH ZJW-yM#尅K0 M IMHkJ阳越雄曲:眈右!ldUNHlriHUdQ0 lSES 5 ISU5 dfr 3t-(!lHP叶6r勝2 UkUUQttSfr幵E甜傅豳8生一芫5C X 船 TEdT QZ 0008dATS5Q0 0600:sa a9CB0ZNP汕乩們0:(KUT3M 3J tfNU2 Id 3:jn m998-J Iaati-so&3AI-SStfl&T- S3 0G4J sadfascia ,jree= IS000?=JS00I8SB
6、0=diHd6r=38Q6J=SS061=33W61-SOd80=ia*dioa- isoeeedaaere-ds00e=xaT0fr9=X5xa ddve=xuIQ3HIJq卜 S00:aaT|DMWZN Id Bdn msatI=soaotr-ssia&T- sa 0Q4T- sddfna=ia :1KRR= JSBtmwtKA=d付口 =)口hh=xh|IdONI3冇00旧上彳N耳J卑ZN Id J3i dn m?sae-di百W彩BATSStS6T S3 8a&T-SQ|丄 dVISaN3SQN33Q09H 比 丄NlHOHV AOIAIcFI闿里阴出“n马於o=i JLdl ZNrk
7、ioio no 93ais ONIla oniCL?- 0iAL = SI)4结東*Q4LTFFL4 ALJDIKBLpSL-ALDIBLCLCL- 1+J12. BCD码转换为二进制码DATA SEGMENTDATA1 DW 2497HDATA2 DW ?DATA ENDSCODE SEGMENTASSUME SS:STACK,CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXXOR BX,BXMOV SI,0AHMOV CL,4MOV CH,3MOV AX,DATA1LP:ROL AX,CLMOV DI,AX累加单元清0(BX=0)设置乘数10指4位BCD
8、码循环次数=3 取十进制数取数字保存当前AX值AND AX,0FH;屏蔽高位ADD AX,BX;累加MUL SIMOV BX,AXMOV AX,DIDEC CH;循环次数减1JNZ LP;以上完成循环二次ROL AX,CL;取个位数字AND AX,0FH;屏蔽高位ADD AX,BX;进行累加,直接将最后的累加结果放到AX中MOV DATA2,AXMOV AH,4CHINT 21HCODE ENDSEND STARTBX H9BAC裁临丽SF-S080BPsi-seeaDK24JFS*19B7SfS*19CTNU UP ElPL 7RNA PF NC-T75 FDAW.MilAX724?BN =
9、09 BACK-OB04DM -tiQWASFBB0BP=0000C i p4eeADI-7249DS-19P?ES *19B?S-1C7CS-19DCIP=0024HU UP Elpl zn和 PE NC1?DE沌02斗D3BHOL.鯨.CLfiX=09BACH =购舸Dx=eeoeBF=0$!=000ADI -72DS=19D7ES -19 r?S19C7CS-19D8IP-1026OU UP Elpl znHA PE CVI?DS:002t-I250F80ANDi矶0阴F印恥00即ex =eeDixeewsr-00eBF-B0MDI=724?DS-19?ES-1?B7SS=1?C7CS
10、1?DBirS025NU UF ElFL NZ櫥 FO NC!?D9:B02?-T83C3ADDAX,BK昭 0$C1fiX-肺即OC-仙站SPM0NIP BMMsi-aeeADI-724fDS-1917ES-i?B7SS-1?G7CS-19D61FM82IKI UP ElFL HZfle ro hci A3B268HOUreo02DS;e002-OOffi)AX4DATASAX層环结朿AX左移1位AX-3XAJC+eX-AX结施幵始将QMA丄分离为千、百十、个位数存于4个逹续子单元中首地址为DOTA3猶环;5:數3-CX千位数DATA3-AX调乘10子程序ADO DATA3 * 2加上个位保
11、存结黑至DAW.结耒3. 十六进制数转换为 ACSII码STACK SEGMENTDB 256 DUPSTACK ENDSDATA SEGMENTDATA1 DB 24H,06DHDATA2 DB 4 DUP;存放 ASCII 码JUMP DB 4 DUP(?); 4位十六进制数分别存放在DATA3的4个字节中DATA ENDSCODE SEGMENTASSUME SS:STACK,DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA SI,DATA1LEA DI,JUMPMOV CL,2LPO: MOV AL,SIAND AL,0F0HROR AL,4M
12、OV DI,ALINC DIMOV AL,SIAND AL,0FHMOV DI,ALINC SI循环2次,取两次两位十六进制数 取2位十六进制数低四位为零右移4位相当于除以16 高位数存放在高地址字节中取2位十六进制数高四位为零低位数存放在低地址字节中INC DIDEC CLJNZ LP0LEA SI,JUMPLEA DI,DATA2MOV CL,4次LP1: MOV AL,SICMP AL,9JG LP3ADD AL,30HJMP LP3LP2: ADD AL,37HLP3: MOV DI,ALINC DI;SI=JUMP的首地址偏移量;DI=DATA2的首地址偏移量因为是四位十六进制数,所
13、以设置为循环4取JUMP中的十六进制数若 AL9(AL-90),跳转到 LP3;09H+30H=ASCII;AFH+30H=ASCII将ASCII码依次存入DATA2中INC SIDEC CLJNZ LP1MOV AH,09HINT 21HMOV DX,OFFSET DATA2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND STARTTftK 1?24BK-0000CX-ftSRflaaaflBP*0flH0DS-19D7ES-19B?SS=19C7CS =i?D8!P-0049HUUP ElL9D8: 0049 -TBABW0HOU叽0B0BX1
14、924Bx-emaCX-0500MC-M0BSP-MMBP-ps=i?ES-19B7SS-19C7GS-19D8I PMCHUup Er&eta04C Pt出卿nwAH,flX-0924me詡略惑0CX 0EW旳-003BP-000DS-19D7ES=1*9B7SS=19C7CS=1?D8IP=004EMUUP E15D8:04E -7;CD21IHT21RX-0924BXWWGX=8508DK=000BSP-FFFfiBP-fioenDS=iyi7ES=19B7SS=19C7CS=8Bfi7I P=137CHUup dt0ft7:107C 90NO?-d ds:enel?D7t&00024
15、6D 323峙3醒44 & 24-040G 0D 0D HA 24 0(pi7:fl010W D7 198ED8BE 00 00BF07 0 Bl 02 BA 0R 辛 D7;松 020 F0BL-BL430H结束BK-BL+37H六、实验习题与思考1.编程实现:从键盘上输入两位十六进制数,转换成十进制数后显示在屏幕上。STACK SEGMENTDB 256 DUPSTACK ENDSDATA SEGMENTDATA1 DB 5,?,2 DUPDATA2 DB 2 DUPDATA3 DB 2 DUPDATA ENDSCODE SEGMENTASSUMESS:STACK,DS:DATA,CS:C
16、ODESTART:MOV AX,DATAMOV DS,AXLEA DX,DATA1MOV AH,0AHINT 21H;输入字符串LEA SI,DATA1+2LEA DI,DATA2MOV CL,2 ;将ASC码转换为十六进制数LP1: MOV AL,SISUB AL,30HCMP AL,9JA LP2MOV DI,ALINC DIINC SIDEC CLJZ LP3JNZ LP1LP2: SUB AL,7MOV DI,ALINC DIINC SIDEC CLJNZ LP1 ;将十六进制数转换成十进制数,并保存LP3: LEA DI,DATA2MOV AL,DIMOV BL,DI+1MOV CL
17、,4SHL AL,CLADD AL,BLMOV DI,ALLEASI,DATA3XORAH,AHMOVCL,100DIVCL;AH=AX%100,AL=AX/100MOVSI,AL;保存百位数MOVAL,AHXORAH,AHMOVCL,10DIVCLMOVSI+1,AL;保存十位数MOVSI+2,AH;保存个位数;屏幕显示十进制数LP4: MOV DL,SI ;取百位数送显OR DL,30HMOV AH,02HINT 21HMOV DL,SI+1;取十位数送显OR DL,30HMOV AH,02HINT 21HMOV DL,SI+2;取个位数送显OR DL,30HMOV AH,02HINT 2
18、1HMOV AH,4CHINT 21HCODE ENDSEND START2.十进制数转换为七段码。为了在七段显示器上显示十进制数,需要把十进制数转换为七段代码。转换可采用查表法。设需要转换的十进制数已存放在起始地址为DATA1区域中,七段代码转换表存放在起始地址为 TABLE表中,转换结果存放到起始地址为 DATA2区域。若 待转换的数不是十进制数,则相应结果单元内容为00H。STACK SEGMENTDB 256 DUPSTACK ENDSDATA SEGMENTDATA1 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,A,B,C,$TABLE DB 0
19、0H,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(O)COUNT EQU 2DATA ENDSCODE SEGMENTSTART: MOV AX,DATAMOV DS,AXLEA SI,DATA1LEA BX,DATA2LEA DI,TABLEXOR AH,AHLP1:MOV AL,SI;外循环DATA1指向下一个INCSIMOVCX,16;内循环TABLE 16次LP2:CMP DI,ALJE 1LP3ADDDI,COUNT;内循环TABLE指向下一组DECC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年会议经费支持协议
- 加油站油气回收系统检测考核试卷
- 室内灯饰合同模板
- 实验室订购合同模板
- 2024年光伏发电项目施工安装合同
- 产品附加协议合同模板
- 放射性金属矿的矿井安全与灾害防治技术考核试卷
- 2024年借名买房权益协议:房产共有与姓名借用
- 2024年债务还款协议定制版
- 2024年产权房交易协议
- 铭记历史 勿忘国耻九一八事变教育主题班会课件
- 中药蒲公英培训课件
- 2024-2030年中国帆船行业市场深度调研及发展趋势与投资前景研究报告
- 2021年新版《思想道德与法治》第六章课件-学习法治思想提升法治素养
- 2024年全国安康杯安全知识竞赛题库及答案(共239题)
- 2024年新《公司法》主要修订内容解读
- 走进摄影智慧树知到答案2024年海南软件职业技术学院
- 小学六年级数学方程应用题100道附答案(完整版)
- 2024云南黄金集团招聘高校毕业生72人(高频重点提升专题训练)共500题附带答案详解
- 旅游纸质合同范本
- 水电工程合同模板
评论
0/150
提交评论