版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 'STACK'DB 256 DUP为堆栈段留出256个字节单位
3、STACKENDSDATASEGMENT 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 C
4、L,SI; 取输入字符串长度INC SI;指向第一个输入字符LP1:MOV AL,SISUB AL,30H ;输入的字符存为ASCII码,将其转换成十进制数CMP AL,0;若 AL<0(AL-0<0),跳转到 LP2JL LP2CMP AL,9 ; 若 AL>9( AL-9>0),跳转到 LP2 JG LP2MOV BL,AL;将 AL->BLMOV DI,BLDATA2开始的单元中INC DIINC SIDEC CLJMP LP1LP2:MOV AL,0FFH;在相应的单元存放 FFH;以字母开头的十'O'MOV BL,ALAL->BL;
5、DI存放;将结果存到若输入的不是十进制数,六进制数前面需加;将MOV DI,BL*89600:8QAX08飾00 PP 6000 00 00-00 PB 0000 BE 600 BB 000:8G£T00 iddd jd idJd dd dH-'dd JI dd(1J dd Jd财8Q6Tdl dd注注dd ddHH ZJW-yM#尅K0 M IMHkJ阳越雄曲:眈右!'ldUNHlriHUdQ0 l>SES £5 ISU5 dfr 3t-(!l>HP叶6r勝2 UkUUQttSfr幵E甜傅豳8生一芫5C X££ 船 TEdT
6、 QZ 0008dATS5Q0 0600:sa a9CB0ZNP汕乩們0:(KUT3M 3J tfNU2 Id 3:jn m998-J Iaati-so&3AI-SStfl&T- S3 0G4J sadfascia ,jree= IS000?=JS00I8<IS0030=JJ08=K9TO93dl-60JJ 0-9047M Q4时ZN 7d Id;d冃m>SB0=diHd6r=38Q6J=SS061=33W61-SOd£80=ia*dioa- isoeeedaaere-ds00»e=xaT0fr9=X5xa ddve=xuIQ3HIJq卜
7、63;S00:aa«T|DMWZN Id Bdn msatI=soaotr-ssia&T- sa 0Q4T- sddfna=ia :1KRR= JSBtmwt»KA=>d付口 =)口hh=xh|IdONI3冇00旧上彳N耳J卑ZN Id J3i dn m?sae-di百W彩BATSStS6T S3 8a&T-SQ|丄 dVISaN3SQN33Q09H 比 丄NlHOHV AOIAI£cFI闿里阴出“n马於'o=i JLdl ZNrkioio no 93ais ONIla oniCL?- 0iAL = SI)4结東*Q4LTFF
8、3;L4 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码循环次数=3 取十进制数取数字保存当前AX值AND AX,0FH;屏蔽高位ADD AX,B
9、X;累加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 =09 BACK-OB04DM -tiQWASFBB»0BP=0000C i p4e
10、eADI-7249DS-19P?ES *19B?£S-1»C7CS-19DCIP=0024HU UP Elpl zn和 PE NC1?DE沌02斗D3BHOL.鯨.CLfiX=09BACH =购舸Dx=eeoeBF=0$!=000ADI -72®DS=19D7ES -19 r?S£19C7CS-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 1?DB
11、irS025NU UF ElFL NZ櫥 FO NC!?D9:B02?-T83C3ADD'AX,BK昭 0$C1fiX-肺即OC-仙站SPM0NIP BMMsi-aeeADI-724fDS-191>7ES-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
12、子程序ADO DATA3 * 2加上个位保存结黑至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,S
13、IAND AL,0F0HROR AL,4MOV 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=DAT
14、A2的首地址偏移量因为是四位十六进制数,所以设置为循环4取JUMP中的十六进制数若 AL>9(AL-9>0),跳转到 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 E
15、lL9D8: 0049 -TBABW0HOU叽0B0B»X>1924Bx-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-0924BX"WWGX=8508DK=000BSP-FFFfiBP-fioenDS=iyi>7ES=19B7
16、SS=19C7CS=8Bfi7I P=137CHUup dt0ft7:107C 90NO?-d ds:enel?D7t&00024 6D 323峙3醒44 && 24-040G 0D 0D HA 24 0(pi>7:fl010W D7 198ED8BE 00 00'BF07 0 Bl 02 BA 0R 辛 D7;松 020 F0BL<-BL430H结束BK-BL+37H六、实验习题与思考1.编程实现:从键盘上输入两位十六进制数,转换成十进制数后显示在屏幕上。STACK SEGMENTDB 256 DUPSTACK ENDSDATA SEGMENTDA
17、TA1 DB 5,?,2 DUPDATA2 DB 2 DUPDATA3 DB 2 DUPDATA ENDSCODE SEGMENTASSUMESS:STACK,DS:DATA,CS:CODESTART: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
18、DI,ALINC DIINC SIDEC CLJNZ LP1 ;将十六进制数转换成十进制数,并保存LP3: LEA DI,DATA2MOV AL,DIMOV BL,DI+1MOV CL,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,02HI
19、NT 21HMOV DL,SI+1;取十位数送显OR DL,30HMOV AH,02HINT 21HMOV DL,SI+2;取个位数送显OR DL,30HMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.十进制数转换为七段码。为了在七段显示器上显示十进制数,需要把十进制数转换为七段代码。转换可采用查表法。设需要转换的十进制数已存放在起始地址为DATA1区域中,七段代码转换表存放在起始地址为 TABLE表中,转换结果存放到起始地址为 DATA2区域。若 待转换的数不是十进制数,则相应结果单元内容为00H。STACK SEGMENTDB 2
20、56 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 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(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;内循
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辽阳辅警招聘考试题库含答案详解(夺分金卷)
- 2025年甘南州辅警协警招聘考试真题含答案详解(典型题)
- 2025年福建辅警协警招聘考试真题及答案详解(历年真题)
- 2025年陕西辅警协警招聘考试真题及答案详解(全优)
- 2025年白银辅警协警招聘考试备考题库及答案详解(考点梳理)
- 2025年湘西土家族苗族自治州辅警招聘考试题库含答案详解(夺分金卷)
- 2025年达州辅警招聘考试真题附答案详解(综合题)
- 2025年自贡辅警招聘考试题库附答案详解(a卷)
- 2025建筑项目招标投标合同(合同协议书)适用于私营承包工程
- 2025年金华辅警协警招聘考试备考题库完整答案详解
- 中国建筑热环境分析专用气象数据集
- 云南文山州州属事业单位选调考试真题2022
- 电气线路设备安装操作规程
- 晋升中学高级教师职称考试试卷
- GB/T 908-2019锻制钢棒尺寸、外形、重量及允许偏差
- GB/T 5625.1-1985扩口式端直通管接头
- GB/T 36265-2018红外光学玻璃
- GB/T 28775-2021同步带传动T型梯形齿同步带轮
- 学校心理健康排查表
- GA 844-2009防砸复合玻璃通用技术要求
- 林语堂的《苏东坡传》
评论
0/150
提交评论