assume cs:code
data segment
db 'conversation',0
data ends
stack segment
dw 8 dup (0)
stack ends
code segment
start:mov ax,code
mov ds,ax
mov si,offset c7int
mov ax,20h
mov es,ax
mov di,0
mov cx,offset c7end-offset c7int
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[7ch*4+2],0
mov word ptr es:[7ch*4],200h
mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,12*160+36*2
s: cmp byte ptr [si],0
je jiesu
movsb
inc di
mov bx,offset s-offset jiesu ;这个位移一定要为负数,所以是S-jiesu
int 7ch
jiesu:mov ax,4c00h
int 21h
c7int:push bp
mov bp,sp
add ss:[bp+2],bx
pop bp
iret
c7end:nop
code ends
end start |