|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这段例程什么能调用不能正常显示能?
用debug调式时 没有执行 mov ax,0b800h
mov es,ax
这指令怎么没有执行啊 跳过 这是怎么回事
c_s segment
A:
;********************************
;安装中断例程
;A标号是程序的入口地址
;显示例程安装在段地址是0h,偏移地址是240h
;中断类型码是7Dh
;
;
;********************************
;要安装的例程原始地址
mov ax,cs
mov ds,ax ;段地址
mov si,offset B ;偏移地址
;要安装的例程目标地址,段地址为0h,偏移地址为240h
mov ax,0h
mov es,ax ;段地址
mov di,240h ;偏移地址
;复制数据,正向复制
;复制数据的长度是offset D-offset B
mov cx,offset D-offset B
cld
rep movsb
;设置中断向量表
;段地址是0h
mov ax,0h
mov es,ax
mov word ptr es:[7ah*4],240h
mov word ptr es:[7ah*4+2],0
;返回
mov ax,4c00h
int 21h
;********************************
;显示数据中断例程
;B例程的入口地址
;D标号是空操作用于计算例程的指令的大小
;S标号是循环标号
;ok是退出例程标号
;********************************
B:
push cx
push si
push es
mov ax,0b800h ;
mov es,ax ;
mov byte ptr es:[12*160+40*2],'!' ;把!复制到段地址为b800h,偏移地址为12*160+40*2
;返回
iret
ok: pop es
pop si
pop cx
iret
D:nop
c_S ends
end A |
|