当前位置: 首页 > 计算机 > 问题详情
问题

请编制程序 其功能为:设由20个8位有符号数构成一个数组 试依次去掉其中负的奇数 生成一个新的数

请编制程序,其功能为:设由20个8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组(顺序不变)。结果存放在RESULT开始的内存单元中。

部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEOIN和END之间补充使其完整。

对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。

部分程序如下:

; PROG1.ASM

EXTRN LOAD:FAR,SAVE:FAR

LEN EQU 20

DSEG SEGMENT

SOURCE DW N DUP (?)

RESULT DW 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:CSEG, DS:DSEG;SS:SSEG

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 ***

…………

…………

…………

; *** END ***

LEA DX, RESULT

LEA SI,NAME1

MOV CX,N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

发布时间:2024-05-07
参考答案

正确答案:; *** BEGIN *** LEA SISOURCE LEA DIRESULT MOV CX20 LOOP1: MOV AL[SI] MOV AHAL SHR AH1 JNC LOOP2 CMP AL0. JNL LOOP2 JMP EXIT LOOP2: MOV [DI]AL INC DI EXIT: INC SI LOOP LOOP1 ; *** END *** [INPUT 1.DAT 中的输入数据]: 81 H60H8EH38H68H60H8EH38H68H5EH 50H64H52H55H48H3AH4AH40H42H23H [输出结果] 60 8E 38 68 60 8E 38 68 5E 50 64 52 55 48 3A 4A 40 42 23 00
; *** BEGIN *** LEA SI,SOURCE LEA DI,RESULT MOV CX,20 LOOP1: MOV AL,[SI] MOV AH,AL SHR AH,1 JNC LOOP2 CMP AL,0. JNL LOOP2 JMP EXIT LOOP2: MOV [DI],AL INC, DI EXIT: INC SI LOOP LOOP1 ; *** END *** [INPUT 1.DAT 中的输入数据]: 81 H,60H,8EH,38H,68H,60H,8EH,38H,68H,5EH, 50H,64H,52H,55H,48H,3AH,4AH,40H,42H,23H [输出结果] 60 8E 38 68 60 8E 38 68 5E 50 64 52 55 48 3A 4A 40 42 23 00

相关问题
  • 以下关于等价类划分法的叙述中 不正确的是 () 。 A.如果规

    以下关于等价类划分法的叙述中,不正确的是 () 。A 如果规定输入值a的范围为1~99,那么得到两个等价类,即有效等价类 {a|1<=a<=99|,无效等价类{a|a<

    答案解析
  • 偶校验码为O时 分组中“1”的个数为(3)。(3)A.偶数 B.奇数

    偶校验码为O时,分组中“1”的个数为(3)。(3)A.偶数B.奇数C.随机数D.奇偶交替请帮忙给出正确答案和分析,谢谢!

    答案解析
  • 以下选项中 当x为大于1的奇数时 值为0的表达式为()。A)x%2==

    以下选项中,当x为大于1的奇数时,值为0的表达式为()。A)x%2==1B)x 2C)x%2!=0D)x%2==0请帮忙给出正确答案和分析,谢谢!

    答案解析
  • 下列逻辑表达式中 能正确表示条件“x和Y都不是奇数”的是()。

    下列逻辑表达式中,能正确表示条件“x和Y都不是奇数”的是()。A)xMod2=1 AndYMod 2=1B)XMod2=10rYMod 2=1C)xMod2=0AndYMod 2=0D)XMod 2=00rYMod 2=0

    答案解析
  • 以下选项中 当x为大于1的奇数时 值为0的表达式为()。A)x%2==

    以下选项中,当x为大于1的奇数时,值为0的表达式为()。A)x%2==1B)x 2C)x%2!=0D)x%2==0

    答案解析
  • 若正规式为“(1︱01)*0” 则该正规式描述了(28)。(28)A.长

    若正规式为“(1︱01)*0”,则该正规式描述了(28)。(28)A.长度为奇数且仅由字符0和l构成的串B.长度为偶数且仅由字符0和l构成的串C.以0结尾、0不能连续

    答案解析
  • 下列关于Word页眉和页脚设置的叙述中 不正确的是(45)。(45)A

    下列关于Word页眉和页脚设置的叙述中,不正确的是(45)。(45)A.允许文档的第一页设置不同的页眉和页脚B.允许文档的每个节设置不同的页眉和页脚C.允许偶

    答案解析
  • 设y是int型 请写出y为奇数的关系表达式

    设y是int型,请写出y为奇数的关系表达式

    答案解析
  • 运行程序AA=0FOR I=2 TO 100 STEP 2AA=AA+IENDFOR? AARE

    运行程序AA=0FOR I=2 TO 100 STEP 2AA=AA+IENDFOR? AARETURN该程序得到的结果为A) 1到100中奇数的和 B)1到100中偶数的和C) 1到100中所有数的和 D)没有意义

    答案解析
  • 有以下程序段int n t=1 s=0;Scanf("%d" &amp;n);do{ s=s+

    有以下程序段int n,t=1,s=0;Scanf("%d",&n);do{ s=s+t;t=t-2; }while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是()。A.任意正奇数B

    答案解析

最新问题

Copyright © 2016-2023 114题库网(114158.com)All Rights Reserved.  免责声明 豫ICP备19007809号-5