请大家看看这是什么错误?
将a,b数组中相同的数保存在shu数组中,a中各数不相等,b中各数不相等. 请大家看看在什么地方有错
程序能通过编译,就是不出正确的结果.(用求shu数组各数只和sum来验证是否正确.我不知道怎么看shu数组中的内容,就只能用这样的方法)
DATAS SEGMENT
a dw 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
b dw 4,6,7,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
shu dw 15 dup (?)
sum dw 0
DATAS ENDS
CODES SEGMENT
main proc far
ASSUME CS:CODES,DS:DATAS
START:
push ds
sub ax,ax
push ax
MOV AX,DATAS
MOV DS,AX
mov cx,15
mov ax,0
mov si,ax
mov di,ax
loop1:
mov dx,cx;保护外循环的cx
mov cx,20;内循环的cx
mov bx,0;b数组的循环次数
loop2:
mov ax,a[si]
cmp b[bx],ax
jnz to;不为0跳转
mov ax,a[si]
mov shu[di],ax
mov ax,a[si]
add sum,ax;求数字只和
add di,2
jmp to_loop2
to:
add bx,2
loop loop2
to_loop2:
mov cx,dx;恢复外循环次数
add si,2
loop loop1
mov ax,sum
MOV AH,4CH
INT 21H
main endp
CODES ENDS
END START
[[it] 本帖最后由 penganlph 于 2008-4-10 23:08 编辑 [/it]]