赵璐 发表于 2012-2-3 11:30:57

课程15.5中的安装程序怎么修改不了int9中断的cs地址

我对照书上的代码写的,运行之后报错 “无效指令”帮忙看一下

源代码:assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start:    mov ax,stack
          mov ss,ax      
          mov sp,128
          push cs   
    pop ds
    mov ax,0
    mov es,ax
   
    mov si,offset int9
    mov di,204h
    mov cx,offset int9end-offset int9
    cld
    rep movsb
    push es:
    pop es:
    push es:
    pop es:
    cli
    mov word ptr es:,204h
    mov word ptr es:,es
    sti
   
    mov ax,0
    int 16h
    mov ax,4c00h
    int 21h
int9:   push ax
          push bx   
          push cx
          push es
       in al,60
   
    pushf
    call dword ptr cs:
    cmp al,3bh
    jne int9ret
   
    mov ax,0b800h
    mov es,ax
    mov bx,1
    mov cx,2000
s:   inc byte ptr es:
    add bx,2
    loop s
   
int9ret:pop es
    pop cx
    pop bx
    pop ax
    iret
int9end:nop
code ends
end start   
   
   

三田学校 发表于 2012-2-3 11:30:58

我也是,运行到mov word ptr es:,204h时提示无效指令

静雨纷纷 发表于 2012-8-8 01:43:19

和书上有一点点不一样吧···书上没有 mov ax,0       int 16h
···呵呵·
我也不知道为神马报错····我实验15这也出不来我想要的效果····
搞不明白到底怎么回事···

C开头 发表于 2012-9-9 21:19:09

哎,你们比我好一点吧,我运行,但是就是按那个F1不管用。对了,我记得小甲鱼说过是不是要在实模下的8086模式下才能显示那个效果啊???

玉宁417 发表于 2013-9-26 16:00:36


学习,支持一下!加油
页: [1]
查看完整版本: 课程15.5中的安装程序怎么修改不了int9中断的cs地址