将累加器A中存放的无符号二进制数(0~0FFH)转换为三位压缩BCD码(0~255),并将结果存入30H,31H单元中

将累加器A中存放的无符号二进制数(0~0FFH)转换为三位压缩BCD码(0~255),并将结果存入30H,31H单元中


参考答案和解析
ADD AX,AX

相关考题:

某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为(11)。A.00000001 00000011 00000111B.00000011 00000001 00000111C.00000010 00000011 00000100D.00000011 00000001 00001001

以下关于二、十和十六进制数之间整数转换正确的是(20)。A.十进制数439转换成8421BCD码是0100000111001B.十进制数2008转换为二进制无符号数是111011000BC.十六进制数0F2H转换成十进制数是232D.十进制数122转换成十六进制数是7AH

请编制程序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码,直至转换完毕。

用二进制数0与累加器X的内容进行______运算,并将结果放在累加器X中,一定可以完成对X的清0操作。A.与B.或C.异或D.比较

用二进制数0与累加器X的内容进行(57)运算,并将结果放在累加器X中,一定可以完成对X的“清0”操作。A.与B.或C.异或D.比较

8位二进制所表示的无符号整数,其相应的十进制数范围是()A、0~255B、1~256C、1~255D、0~256

在以3000H为首地址的外部RAM中,存放了14个以ASCII码表示的0~9的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H为首地址的外部RAM中。

设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?  PUSH  30H  PUSH  31H  POP   DPL  POP   DPH  MOV  30H,#00H  MOV  31H,#0FFH

内存某字节单元中存放的二进制代码为94H,若将它看作是一个压缩的BCD码,则对应的数为()。A、148B、-20C、-108D、94

把二进制代码1001011101011000分别“看作”是:二进制无符号数、二进制补码、压缩BCD码、非压缩BCD码,哪一种情况下它代表的“值”最大?

8086系统的RAM存储单元中,从0000H:002CH开始依次存放23H、0FFH、00H和0F0H4个字节的中断向量,该向量对应的中断类型码是多少?而中断类型码为14H的中断向量应存放在哪些存储单元中?

将二进制数110110.01转换为十进制是(),转换为十六进制是(),转换为8421BCD码形式是()。

设累加器A中为无符号数,B中数为2,C等于0,下列指令()的作用与其它几条不同。A、ADDA,0E0HB、MULABC、RLAD、RLCA

将二进制数转换为8421BCD码时,先将其转换成十进制数,然后再转换成8421BCD码。

数组LIST2内存有20个压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM2双字单元。

数组LIST1内存有20个非压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(非压缩BCD码)存入SUM1双字单元。

把二进制代码1001011101011000分别“看作”是: (1)二进制无符号数 (2)二进制补码 (3)压缩BCD码 (4)非压缩BCD码哪一种情况下它代表的“值”最大?

假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。执行指令INC AINC R3INC 30HINC@R0后,累加器A的内容为(),R3的内容为(),30H的内容为(),40H的内容为()。

将BCD码的10000001001转换为BCD码,结果为:791。

将十进制的109转换为BCD码,结果为:000100001001。

问答题数组LIST3内存有20个压缩BCD码表示的双字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM3双字单元。

问答题数组LIST1内存有20个非压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(非压缩BCD码)存入SUM1双字单元。

单选题将八进制数670转换为二进制数为()。A110l0l0llBl0ll11000Cll01l1000Dl10ll0000

问答题设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?  PUSH  30H  PUSH  31H  POP   DPL  POP   DPH  MOV  30H,#00H  MOV  31H,#0FFH

单选题8位二进制所表示的无符号整数,其相应的十进制数范围是()A0~255B1~256C1~255D0~256

问答题把二进制代码1001011101011000分别“看作”是: (1)二进制无符号数  (2)二进制补码  (3)压缩BCD码  (4)非压缩BCD码    哪一种情况下它代表的“值”最大?

问答题把二进制代码1001011101011000分别“看作”是:二进制无符号数、二进制补码、压缩BCD码、非压缩BCD码,哪一种情况下它代表的“值”最大?

问答题在以3000H为首地址的外部RAM中,存放了14个以ASCII码表示的0~9的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H为首地址的外部RAM中。