问答题在以3000H为首地址的外部RAM中,存放了14个以ASCII码表示的0~9的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H为首地址的外部RAM中。
问答题
在以3000H为首地址的外部RAM中,存放了14个以ASCII码表示的0~9的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H为首地址的外部RAM中。
参考解析
解析:
暂无解析
相关考题:
请编制程序PROG1.ASM,其功能是:将连续20个字节的ASCII码(30~39之间)顺序转换成10个压缩BCD码。例如:原始数据 31H,33H,35H,38H……(后面依次有16个ASCII码)转换后为 13H,58H,……(后面依次有8个压缩BCD码)部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果(要求从RESULT开始存入)由SAVE过程保存到OUTPUT. DAT中。请在BEGIN和END之间补充一段源程序,完成要求的功能。原有数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,结果要求从RESULT开始存放,由SAVE保存到OUTPUT1.DAT文件对程序必须进行汇编,并与IO.OBJ连接产生PROG1.EXE执行文件,最终产生运行结果(无结果或结果不正确均不得分)。部分程序如下:EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB 31H,32H,33H,34H,35H,36H,37H,38HRESULT DB N DUP(0)NAME0 DB 'INPUT1.DAT', 0NAME1 DB 'OUTPUT1.DAT', 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N ; 字节数CALL LOAD ; 从 "INPUT1. DAT"中读取数据**** BEGIN ******** END ****LEA DX,RESULT ; 结果数据区首地址LEA SI, NAME1 ; 结果文件名MOV CX,N ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCODE ENDSEND START相关知识:●BCD码和压缩BCD码BCD码就是以二进制数表示十进制数,以4位二进制数表示1位十进制数,0000~1001表示0~9,1010~1111六个状态无意义。非压缩BCD码以一个字节表示一位BCD码,压缩BCD码一个字节表示两位BCD码。●ASCII码与压缩BCD码之间的转换0~9的ASCH码为30H~39H,从数字的ASCII码求数字本身,只要用他的ASCII码减去30H即可。由两位非压缩BCD码构成一个字节的压缩BCD码可将高位的BCD码移到高四位,然后与低位的BCD码进行逻辑或(OR)操作即可完成。编程思路:第一步:分析本程序要求完成的功能。本程序要求完成以下功能:(1)从数据文件INPUT1.DAT中读取20个字节的ASCII码存放在SOURCE开始的内存单元中。(2)将SOURCE开始的20个ASCII码求出其对应的数值,然后转换成压缩的BCD码,依次放在RESULT开始的内存单元中。(3)将处理之后的字符串存入到OUTPUT1.DAT。第二步:用相应汇编程序来实现其功能。(1)数据的读取和存入题目中已经给出,只要完成20个ASCII码到压缩BCD的转换即可。(2)由ASCII码到压缩BCD码的转换过程如下:由于20位ASCII码正好转换成10个字节压缩BCD码,不存在某个字节的BCD码只有一位。因此依次从SOURCE开始的内存单元取两个ASCII码,前一个转换成压缩BCD码的高位,后一个转换成压缩BCD码的低位来构成压缩BCD码;每两个ASCII码转换成一个字节的压缩BCD码,直至转换完毕。
Windows9.x注册表中使用三种类型的数据,它们是()A、字符串、十六进制数、DWORB、字符串、二进制数、DWORDC、ASCII码、十六进制数、DWORDD、字符串、十六进制数、BCD码
下列说法中与BCD码的性质不符的是()。 A、一组四位二进制数组成的码只能表示一位十进制数B、BCD码是一种人为选定的0~9十个数字的代码C、BCD码是一组四位二进制数,能表示十六以内的任何一个十进制数D、BCD码有多种
计算机中的数据可分为两种类型:数字和字符,它们最终都转化为二进制才能继续存储和处理。对于人们习惯使用的十进制,通常用()进行转换。A、ASCII码B、扩展ASCII码C、扩展BCD码D、BCD码
将下列8421BCD码、5211BCD码和余三BCD码转换成十进制数: (1)(10010100.001)8421BCD; (2)(100110100.01101)5421BCD; (3)(10110001010.1011)5211BCD; (4)(10110100.101)余三BCD。
下列说法中与BCD码的性质不符的是()A、一组四位二进制数组成的码只能表示一位十进制数 B、BCD码是一种人为选定的0-9十个数字的代码 C、BCD码是一组四位二进制数年,能表示十六以内的任何一个十进制数D、BCD码有多种