主题:有个问题给解决一下
程序的意思是从table里查找chary出现的次数,用count计数,其中查找计数的过程用的是子函数调用,也就是findchar,但是我的其中一句总是有问题(将在如下程序中体现),并且我觉得我的程序算法也有问题,不一定能实现,那位帮忙找一下错误啊?
data segment
table db 20 dup(?)
count db 0
chary db ?
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
main proc far
lea dx,chary
mov ah,1
int 21h
mov al,chary
lea dx,table
mov ah,0ah
int 21h
call findchar
mov ah,4ch
int 21h
ret
main endp
findchar proc near
lea bx,table
mov si,0
mov cl,count
mov cl,0
begin1: cmp [bx+si],'$' ;Error:Operand need to have size
je next2
cmp [bp+si],ax
jne next1
inc cl
next1: inc si
jmp begin1
next2: ret
findchar endp
code ends
end start
谢谢各位了,帮忙也找一下算法的错误。
data segment
table db 20 dup(?)
count db 0
chary db ?
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
main proc far
lea dx,chary
mov ah,1
int 21h
mov al,chary
lea dx,table
mov ah,0ah
int 21h
call findchar
mov ah,4ch
int 21h
ret
main endp
findchar proc near
lea bx,table
mov si,0
mov cl,count
mov cl,0
begin1: cmp [bx+si],'$' ;Error:Operand need to have size
je next2
cmp [bp+si],ax
jne next1
inc cl
next1: inc si
jmp begin1
next2: ret
findchar endp
code ends
end start
谢谢各位了,帮忙也找一下算法的错误。