没有完整代码,很难debug除错,只能用看.
一条记录32bit,那么每次比较完毕,只要复原si,di,然后di+32,不必动用bx
还有,呼叫这子程序的主程序,应该要知道比较结果,这里用cf传回,
cf=0,比较成功,cf=1,比较失败.
主程序用jc(失败) 或 jnc(成功)就可以做分流
find:
mov ax,ds
mov es,ax
lea di,jilu;定义当前字符串
mov ax,1;记录查询到第几条
mov cx,tiaoshu;tiaoshu是我存放学生信息有几条的内存空间
lea si,bijiao;定义原串
cmploop:
push cx
push si
push di
mov cx,5
rep cmpsb
je return
inc ax
add bx,32;偏移32字节跳转到下一条字符串
pop di
add di,32
pop si
pop cx
loop cmploop
finderror:lea dx,str14;如果所有都找不到显示查询错误
mov ah,9
int 21h
stc ;设定cf
ret
return:
clc ;清除cf
ret