当前位置: 代码迷 >> 汇编语言 >> 中断向量表中的CS:IP数值被当做指令执行了怎么处理
  详细解决方案

中断向量表中的CS:IP数值被当做指令执行了怎么处理

热度:87   发布时间:2016-05-02 04:26:03.0
中断向量表中的CS:IP数值被当做指令执行了怎么办
本帖最后由 shellcodemi 于 2015-06-12 16:16:32 编辑
结果如下

代码如下
code segment
    main:
        ;0号中断表(f400:0170)指向do0
        mov ax,0f400h
        mov es,ax
        mov word ptr es:[0170h],offset do0
        mov ax,cs
        mov word ptr es:[0172h],ax
        ;触发0中断
        mov ax,1000
        mov bl,1
        div bl
        ;返回 
        mov ah,4ch
        mov al,00h
        int 21h
        
    do0:
        ;设置ds:dx
        mov ax,data
        mov ds,ax
        mov dx,0
        ;显示
        mov ah,09h
        int 21h
        ;返回 
        mov ah,4ch
        mov al,00h
        int 21h
          
ends
    end main

------解决思路----------------------
好像你对中断向量表的立即有误吧。
你应该是用 do0: 的完整地址填充到 0000:0000 处以替换原来的 f400:0170 而非将这个地址填充到 f400:0170 处。
  相关解决方案