早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

请编制程序PROG1.ASM,其功能是:将内存中的20个有符号字节数据依次除以5,并按照四舍五入原则(即余

题目

请编制程序PROG1.ASM,其功能是:将内存中的20个有符号字节数据依次除以5,并按照四舍五入原则(即余数绝对值的2倍小于除数,则舍去)将商存入指定的内存区域。

例如:

内存中有:10H,01H,27H,00H,FFH,FSH,……

结果为:03H,00H,08H,00H,00H,FEH,……

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件 OUTPUT1.DAT中。

填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。

试题程序:

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

X EQU 5

DSEG SEGMENT

SOURCE DB N DUP(?)

RESULT DB N DUP(0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DSEG ENDS

SSEG SEGMENT STACK

DB 256 DUP (?)

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEC, SS:SSEC, DS:DSEG

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

MOV ES,AX

LEA DX,SOURCE

LEA SI,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

LEA SI,SOURCE

LEA DI,RESULT

CONT: LODSB

CBW

MOV DL,X

IDIV DL

(1) ; 余数为负数吗

JNS PLUS

(2) ; 求绝对值

ADD AH,AH

CMP AH,DL

JB (3)

SUB AL,1

JMP NEXT

PLUS: ADD (4)

CMP AH,DL

JB NEXT

(5)

NEXT: STOSB

CMP SI,N

JB CONT

; *** END ***

LEA DX,RESULT

LEA SI,NAME 1

MOV CX,N

&nb

参考答案
正确答案:(1)CMP AH0 (2) NEG AH (3) NEXT(4) AHAH (5) ADD AL1
(1)CMP AH,0 (2) NEG AH (3) NEXT(4) AH,AH (5) ADD AL,1 解析:每个数除以5之后首先判断余数是否为负,即比较AH与零;如果为负,要将AH中的值用NEG指令取绝对值后再执行后续操作,即计算余数绝对值的两倍,若小于商直接舍去(四舍),跳至NEXT(第3空)执行存储操作,否则加一(第五空,五入)后存储。
看了请编制程序PROG1.ASM,...的网友还看了以下:

以下关于浮点加减运算舍入处理的描述中,正确的是(6)。A.“0舍1入”法最大误差是最低位上的-1/2 计算机类考试 2020-05-26 …

正四面体的四个面上分别写有数字0,1,2,3,把两个这样的四面体抛在桌面上,则露在外面的6个数字恰 数学 2020-06-14 …

如图是一个4×4的表格,每个方格中填入了数字0或1.按下列规则进行“操作”:每次可以同时改变某一行的 数学 2020-11-01 …

如图是一个4×4的表格,每个方格中填入了数字0或1.按下列规则进行“操作”:每次可以同时改变某一行的 其他 2020-11-01 …

解排列组合题,例6.用0,1,2,3,4,5这六个数字组成无重复数字的五位数,分别求出下列各类数的个 数学 2020-11-18 …

观察下面前三幅图,我们把每幅图中从A点到B点的最短路径用含有数字0、1的十位数字串来表示,根据规律第 其他 2020-11-26 …

有甲、乙两个不透明的口袋,甲袋中有3个球,分别标有数字0,2,5;乙袋中有3个球,分别标有数字0,1 数学 2020-11-29 …

5、按要求选数字卡片组成数.0、1、3、8(1)组成的数是3的倍数,而且是两位数.(用上面四个数字组 数学 2020-12-23 …

“2012”含有数字0,1,2,且有两个数字2.则含有数字0,1,2,且有两个相同数字的四位数的个数 其他 2020-12-27 …

正四面体的四个面上分别写有数字0,1,2,3,把两个这样的四面体抛在桌面上,则露在外面的6个数字恰好 数学 2021-01-12 …