回 帖 发 新 帖 刷新版面

主题:安装中断处理时出现的问题,高手帮看看,谢谢!

我在安装int9中断的时候遇到的问题,大概是这样的
中断服务程序安装后可以执行,但是执行完了以后就死机了,大概是跳到了一个无效地址.
代码是这样的,

org 0x100
jmp start
pro:
    push ax            ; 保护现场
    push bx
    push cx
    push dx
    sti            ;开中断
    mov ah,3            ;中断服务,在屏幕上打印一个A
    mov bh,0
    int 0x10
    mov ah,0x09
    mov al,'A'
    mov bh,0
    int 0x10
    inc dl
    mov bh,0
    int 0x10
    cli            ;关中断
    pop dx            ;还原现场
    pop cx
    pop bx
    pop ax
    iret            ;中断返回
start:
    mov ax,0
    mov ds,ax
    mov ax,cs
    cli
    mov [0x0026],ax        ;修改中断向量表
    mov ax,[pro]
    mov [0x0024],ax
    sti
    mov ax,cs
    mov ds,ax
    mov ah,4c            ;返回DOS
    int 0x21
    
    
    
以上代码是用NASM编译后在MS-DOS下运行的,是直接考到软盘上在虚拟机上运行,然后又重新启动计算机在真机环境下一试过,一样,都会死机(虚拟机就不工作了).

回复列表 (共1个回复)

沙发

没人顶,自己顶

我来回复

您尚未登录,请登录后再回复。点此登录或注册