|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- assume cs:code,ss:stack
- stack segment
- dw 8 dup(0)
- stack ends
- code segment
- start:
- mov ax,stack
- mov ss,ax
- mov sp,10h
- ;----把存放47号中断的地址指向0:200h处----
- mov ax,47h*4
- mov di,ax
- mov ax,0
- mov es,ax
- mov es:2[di],ax ;47号中断入口高位字放0
- ;mov ax,200h
- mov es:[di],word ptr 200h ;47号中断入口低位字放200
- ;----把47号中断程序存入0:200h处----
- mov cx,offset int47end - offset int47 ;中断程序长度
- mov ax,cs
- mov ds,ax ;因为中断程序在代码段中,源段地址设置为cs的地址
- mov si,offset word ptr int47 ;源偏移地址是中断子程序的标号
- mov ax,0
- mov es,ax ;拷贝到的目标段地址
- mov di,word ptr 200h ;偏移地址
- rep movsb
- ;----显示位置----
- mov ax,0b800h
- mov es,ax
- mov ax,160*11+80
- mov di,ax
-
- ;----显示80个!----
- mov bx,offset prn - offset lprn ;跳转位移距离,跟add[bp+2],bx配合--bp+2存放的
- mov cx,50h ;是ip,当iret时,回跳的距离
- prn:
- mov es:[di],byte ptr '!'
- add di,2
- int 47h
- lprn:
- nop
-
- mov ax,4c00h
- int 21h
- ;----中断实现程序:功能相当于loop----
- int47:
- push bp
- mov bp,sp
- dec cx
- jcxz int47i
- add [bp+2],bx
-
- int47i:
- pop bp
- iret
- int47end:nop
-
-
- code ends
- end start
复制代码
很好的主意,考验腾挪 |
评分
-
查看全部评分
|