回 帖 发 新 帖 刷新版面

主题:求助一道编程题!!!

自内存DATA单元开始存放若干个无符号字节数据,数据个数在COUNT单元存放。编制程序分别计算其中奇数和偶数的和,并分别存入ODDSUM和EVENSM单元。设各类和不超过16位二进制数,可用一个字表示或存放!!!!哪位高手帮着写写啊!!!谢谢

回复列表 (共4个回复)

沙发

没看明白,再说清楚点好吗

板凳

题就是这么出的啊!!!

3 楼

不知我写得对不对
.MODEL    Small
.DATA
DATA1    DB    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
COUNT    DB    16
ODDSUM    DW    0
EVENSM    DW    0    
.STACK    300H
.CODE
MAIN    PROC    FAR
    MOV    AX,@DATA
    MOV    DS,AX
;分别计算奇数和偶数的和
    MOV    AX,0
    LEA    SI,DATA1
    MOV    CX,16
L:    MOV    AL,[SI]
    TEST    AL,01H
    JZ    XX1
    MOV    BX,ODDSUM
    ADD    BX,AX
    MOV    ODDSUM,BX
    JMP    NEXT
XX1:    MOV    BX,EVENSM
    ADD    BX,AX
    MOV    EVENSM,BX
NEXT:    INC    SI
    LOOP    L
;输出奇数和
    MOV    AX,ODDSUM
    CALL    OUTPUT
;回车换行
    MOV    DL,0AH
    MOV    AH,02H
    INT    21H
    MOV    DL,0DH
    INT    21H
;输出偶数和
    MOV    AX,EVENSM
    CALL    OUTPUT

    MOV    AH,4CH
    INT    21H
MAIN    ENDP
;显示结果子程序,AX传递要显示的数
OUTPUT    PROC    NEAR
    MOV    CX,5
    MOV    BX,10
    MOV    DX,0
LO:    DIV    BX
    PUSH    DX
    MOV    DX,0
    LOOP    LO

    MOV    CX,5
    MOV    BX,0
LO1:    POP    DX
    CMP    DX,0
    JNZ    XX2
    CMP    BX,0
    JZ    NEXT1
XX2:    ADD    DX,30H
    MOV    AH,02H
    INT    21H
    MOV    BX,1
NEXT1:    LOOP    LO1
    RET
OUTPUT    ENDP
END

4 楼

楼上的万分感激!!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册