assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset nr
mov ax,0
mov es,ax
mov di,200h
mov cx,offset nrend-offset nr
cld
rep movsb
;以上9句为安装中断例程
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
;以上2句为设置中断向量
mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,12*160
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
nr: push bp
mov bp,sp
add [bp+2],bx
nrret: pop bp
iret
nrend: nop ;中断例程
code ends
end start
===================
DEBUG上结果:
Source filename [.ASM]: p1
Object filename [p1.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
50454 + 450650 Bytes symbol space free
0 Warning Errors
0 Severe Errors
C:\DOCUME~1\ADMINI~1>link
【conversation】
Microsoft (R) Overlay Linker Version 3.60
Copyright (C) Microsoft Corp 1983-1987. All rights reserved.
Object Modules [.OBJ]:
Object Modules [.OBJ]: p1
Run File [P1.EXE]:
List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment
C:\DOCUME~1\ADMINI~1>p1.exe;直接加载运行,DEBUG上显示屏结果
C:\DOCUME~1\ADMINI~1>
又
C:\DOCUME~1\ADMINI~1>debug p1,exe
File not found
-q
C:\DOCUME~1\ADMINI~1>debug p1.exe
-u
0B69:0000 8CC8 MOV AX,CS
0B69:0002 8ED8 MOV DS,AX
0B69:0004 BE4B00 MOV SI,004B
【conversation】0000 MOV AX,0000
0B69:000A 8EC0 MOV ES,AX
0B69:000C BF0002 MOV DI,0200
0B69:000F B90800 MOV CX,0008
0B69:0012 FC CLD
0B69:0013 F3 REPZ
0B69:0014 A4 MOVSB
0B69:0015 26 ES:
0B69:0016 C706F0010002 MOV WORD PTR [01F0],0200
0B69:001C 26 ES:
0B69:001D C706F2010000 MOV WORD PTR [01F2],0000
-g;G命令,DEBUG上出现显示屏结果
Program terminated normally
-
[2010-05-17 17:23] 编写在屏幕上显示以0结尾的字符串中断例程(完成jmp near ptr s指令功能)【检测点13.1(2)】
评论次数(0) |
浏览次数(379) |
类型(1) |
收藏此文 |