|
|

楼主 |
发表于 2005-7-15 16:39:12
|
显示全部楼层
真的是书上那个程序有问题啊,我把REPE改成REPNE后,程序就能正确输出4了,修改后的代码:
- data segment
- string db 'ABCDEFG'
- strlen equ $-string
- key db 'E'
- result db ?,'$'
- data ends
- stack1 segment para stack
- db 20h dup(0)
- stack1 ends
- code segment
- assume cs:code,ss:stack1,ds:data,es:data
- start:mov ax,data
- mov ds,ax
- mov es,ax
- cld
- mov di,offset string
- mov cx,strlen
- mov al,key
- [color=red] repne scasb[/color]
- jz found
- mov result,0ffh
- jmp exit
- found:dec di
- mov ax,di
- add ax,30h
- mov result,al
- exit: mov dx,offset result
- mov ah,09h
- int 21h
- mov ah,4ch
- int 21h
- code ends
- end start
复制代码
书上那4行话没有错,是举的例子有错,而我以错误的例子为前提对REPE的重复条件产生了疑问,从昨天晚上一直想不通到今天下午,浪费了不少时间,这书真是!@#$%^ |
|