主题:一个子程序的出错,谁能指点一下
程序是通过堆栈来传递参数buf的首地址和数组的数count,本程序的结果是将数组的各数相加,并存在result中,我为了验证结果的正确与否,加了一个输出语句,应该在屏幕上输出 2 ,但是屏幕什么也没有,谁能给我看看错在什么地方了,实在是整不出来了
data SEGMENT
buf DB 4,5,6,7,8
count EQU $-buf
result DW ?
data ENDS
stack SEGMENT
DB 20 DUP(?)
stack ENDS
code SEGMENT
ASSUME CS:code,DS:data,SS:stack
main PROC FAR
start:
MOV AX,data
MOV DS,AX
MOV AX,stack
MOV SS,AX
MOV BX,OFFSET buf
MOV CX,count
PUSH BX
PUSH CX
CALL compute
RET
ADD DL,14h
MOV AH,2
INT 21h
MOV AH,4ch
INT 21h
main ENDP
compute PROC NEAR
POP AX
POP CX
POP BX
MOV DX,0
MOV SI,0
LOOP1:
ADD DL,[BX+SI]
INC SI
LOOP LOOP1
MOV result,DX
PUSH AX
RET
compute ENDP
code ENDS
END main
data SEGMENT
buf DB 4,5,6,7,8
count EQU $-buf
result DW ?
data ENDS
stack SEGMENT
DB 20 DUP(?)
stack ENDS
code SEGMENT
ASSUME CS:code,DS:data,SS:stack
main PROC FAR
start:
MOV AX,data
MOV DS,AX
MOV AX,stack
MOV SS,AX
MOV BX,OFFSET buf
MOV CX,count
PUSH BX
PUSH CX
CALL compute
RET
ADD DL,14h
MOV AH,2
INT 21h
MOV AH,4ch
INT 21h
main ENDP
compute PROC NEAR
POP AX
POP CX
POP BX
MOV DX,0
MOV SI,0
LOOP1:
ADD DL,[BX+SI]
INC SI
LOOP LOOP1
MOV result,DX
PUSH AX
RET
compute ENDP
code ENDS
END main