主题:求助一道编程题!!!
风之在线
[专家分:0] 发布于 2006-01-09 15:46:00
自内存DATA单元开始存放若干个无符号字节数据,数据个数在COUNT单元存放。编制程序分别计算其中奇数和偶数的和,并分别存入ODDSUM和EVENSM单元。设各类和不超过16位二进制数,可用一个字表示或存放!!!!哪位高手帮着写写啊!!!谢谢
回复列表 (共4个回复)
沙发
wanggcc [专家分:1450] 发布于 2006-01-09 17:46:00
没看明白,再说清楚点好吗
板凳
风之在线 [专家分:0] 发布于 2006-01-09 18:21:00
题就是这么出的啊!!!
3 楼
shensheng4 [专家分:220] 发布于 2006-01-09 20:15:00
不知我写得对不对
.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 楼
风之在线 [专家分:0] 发布于 2006-01-10 08:38:00
楼上的万分感激!!!!!
我来回复