|

楼主 |
发表于 2012-12-20 22:38:44
|
显示全部楼层
我这还原了一下测试题目原先的定义,就可以了,问题就出在,我不知道如何写中断处理程序那里了。谢谢指点迷津!
- assume cs:code
- data segment
- db 'conversation',0
- data endscode segment
- start:
- ;=========================安装中断处理程序================================================
- mov ax,cs
- mov ds,ax
- mov si,offset s0
-
- mov ax,0
- mov es,ax
- mov di,200h
-
- mov cx,offset s0end - offset s0
- cld
- rep movsb
-
- mov ax,0
- mov es,ax
- mov word ptr es:[7ch*4],200h
- mov word ptr es:[7ch*4+2],0
-
-
- ;===========================主程程序分隔线=================================================
-
-
- mov ax,data
- mov ds,ax
- mov si,0
- mov ax,0b800h
- mov es,ax
- mov di,12*160
-
-
- ;db 'conversation',0 ;这里的偏移地址不是202h,我有白吃了。s: cmp byte ptr [si],0
- je ok
- mov al,[si]
- mov es:[di],al
- inc si
- add di,2
- mov bx,offset s - offset ok ;给出中断处理程序的位移值
- int 7ch
-
- ok: mov ax,4c00h
- int 21h
-
-
- ;============================中断处理程序=================================================s0: push bp
- mov bp,sp
- add [bp+2],bx
-
- s0en: pop bp
- iret
-
- s0end: nop
- code ends
- end start
-
复制代码
|
|