. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->外中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  总是报错#32  [待解决] 回复[ 1次 ]   点击[ 156次 ]  
zyydoo
[帖 主]   [ 发表时间:2011-03-21 21:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-12-21 13:48
assume cs:code
stack segment
db 128 dup (0)
stack ends
data segment
dw 0,0
data ends
code segment
start:  mov ax,stack
        mov ss,ax
                mov sp,128
                mov ax,data
                mov ds,ax
                mov ax,0
        mov es,ax
                
                push es:[0*4]
                pop ds:[0]
                push es:[9*4+2]
                pop ds:[2]
                
                mov word ptr es:[9*4],offset int9
                mov es:[9*4+2],cs
                
                mov ax,0b800h
                mov es,ax
                mov ah,'a'
        s:  mov es:[160*12+40*2],ah
            call delay
                inc ah
                cmp ah,'z'
                jna s
                
                mov ax,0
            mov es,ax
                push ds:[0]
                pop es:[9*4]
                push ds:[2]
                pop es:[9*4+2]  ;恢复原来的INT9中断地址
                
                mov ax,4c00h
                int 21h
                
delay:  push ax
        push dx
                mov dx,1000h
                mov ax,0
s1:     sub ax,1
        sbb dx,0
                cmp ax,0
                jne s1
                cmp dx,0
                jne s1
                pop dx
                pop ax
                ret
int9: push ax
        push bx
                push es
                in al,60h
                pushf
                pushf
                pop bx
                and bh,11111100b
                push bx
                popf
                call dword ptr ds:[0];对INT指令进行模拟,调用原来的INT9中断例程
                
                cmp al,1
                jne int9ret
                
                mov ax,0b800h
                mov es,ax
                inc byte ptr es:[160*12+40*2+3]
int9ret: pop es
         pop bx
                 pop ax
                 iret
code ends
end start
                
                代码应该没问题是照书上的写的
但是为什么总是提示找不到 
Symbol not defined: INT9
Expected: instruction or directive
gjtboa
[第1楼]   [ 回复时间:2011-04-27 19:02 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2010-10-09 17:53
可能你的int9用的是全角输入法?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved