avatar10010 发表于 2014-10-8 09:33:50

实验16的org指令

本帖最后由 avatar10010 于 2014-10-8 09:55 编辑

问一下在本程序中如果不加org 200h,则call table就不能正确找到对应的函数,这是为什么呢??




assume cs:code
code segment
start:               
    mov ax,cs
    mov ds,ax
    mov si,setscreen
    xor ax,ax
    mov es,ax
    mov di,200h
    mov cx,endscreen-setscreen
    cld
    rep movsb
           mov word ptr es:,200h
        mov word ptr es:,0
       
    mov ah,2    ;测试int 7ch中断例程
    mov al,4        ;测试int 7ch中断例程
    int 7ch                ;测试int 7ch中断例程
    mov ax,4c00h
    int 21h         
           org 200h         ;这里不懂,谁帮我解释一下
   
setscreen:
        jmp begin
        table dw sub2
begin:
        call table
        iret
       
sub2:
        push bx
        push cx
        push dx
        push es
       
        mov cl,4
        shl al,cl
        mov bx,0b800h
        mov es,bx
        mov bx,1
        and byte ptr es:,10001111b
        or es:,al
        mov dl,es:
        mov cx,2000
s2:
        mov es:,dl
        add bx,2
        loop s2
       
        pop es
        pop dx
        pop cx
        pop bx
        ret
       
endscreen:
        nop
          
code ends
end start



大个的糖果 发表于 2014-10-31 23:50:31

页: [1]
查看完整版本: 实验16的org指令