题目内容 (请给出正确答案)
[主观题]

已知两个十进制数的BCD码(非压缩)分别从内部RAM 30H和40H开始存放(低位在前),其字节长度存放在50H单元。编程实现两个十进制数的求和,并把求和结果存放在从30H开始的单元中。

提问人:网友文旻昊 发布时间:2022-07-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“已知两个十进制数的BCD码(非压缩)分别从内部RAM 30H…”相关的问题
第1题
已知一压缩BCD码存在30H中,试将其拆分为两个字节,分别存在31H32H中(高位在前)。

已知一压缩BCD码存在30H中,试将其拆分为两个字节,分别存在31H32H中(高位在前)。

点击查看答案
第2题
设有两个4字节十六进制数,分别放在内RAM 40H和50H起始的单元中,求这两数之和,并将和存放到40H为起始的单元
中(均低位先存)。另有两个6字节的16进制数,分别存放在内RAM 60H和70H起始的单元中,求两数之和,并将和存放在60H为起始的单元中。
点击查看答案
第3题
下面程序是在______中存放一个压缩的BCD码,将它拆成二个BCD字节,结果存于______开始的单元中(低

下面程序是在______中存放一个压缩的BCD码,将它拆成二个BCD字节,结果存于______开始的单元中(低位在前)

MOV R0,#SUM

MOV A,R2

ANL A,#0FH

MOV @R0,A

MOV A,R2

ANL A,#0F0H

SWAP A

INC R0

MOV @R0,A

RET

点击查看答案
第4题
试设计一个n字节的无符号十进制数加法子程序, 其功能为将 R0和R1指出的内部RAM中两个n字节压缩BCD码无符号十进制整数相加,结果存放于被加数单元中。R0、 R1分别指向被加数和加数的低位字节, 字节数n存于R2。运算结果:R0指向和的低位字节,CY为进位位。
点击查看答案
第5题
数组LIST1内存有20个非压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(非压缩BCD码)存入SUM1双字单元。

点击查看答案
第6题
从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其巾的正数、负数分别送40H和50H开始的内
部RAM单元。

点击查看答案
第7题
请编制程序PROG1.ASM,其功能是:将连续20个字节的ASCII码(30~39之间)顺序转换成10个压缩BCD码。 例

请编制程序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:FAR

N EQU 20

STAC SEGMENT STACK

DB 128 DUP()

STAC ENDS

DATA SEGMENT

SOURCE DB 31H,32H,33H,34H,35H,36H,37H,38H

RESULT DB N DUP(0)

NAME0 DB 'INPUT1.DAT', 0

NAME1 DB 'OUTPUT1.DAT', 0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA 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 ; 保存结果到文件

RET

START ENDP

CODE ENDS

END 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码,直至转换完毕。

点击查看答案
第8题
已知有两个压缩BCD数BCD1和BCD2,其在内存存放形式为(BCD1)=34; (BCD1+1)=18;(BCD2)=89;(BCD2+1)=

已知有两个压缩BCD数BCD1和BCD2,其在内存存放形式为(BCD1)=34; (BCD1+1)=18;(BCD2)=89;(BCD2+1)=27,高位字节为高位数。要求编程将BCD1和BCD2相加,结果送BCD3开始的存储单元。

点击查看答案
第9题
变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和(用2字节压缩BCD码表示)。
变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和(用2字节压缩BCD码表示)。

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

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

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信