回 帖 发 新 帖 刷新版面

主题:有个问题给解决一下

程序的意思是从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

谢谢各位了,帮忙也找一下算法的错误。

回复列表 (共1个回复)

沙发

cmp [bx+si],'$'
改为 cmp byte ptr [bx+si],'$'

我来回复

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