|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 avatar10010 于 2014-10-8 09:55 编辑
问一下在本程序中如果不加org 200h,则call table[0]就不能正确找到对应的函数,这是为什么呢??
- 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:[7ch*4],200h
- mov word ptr es:[7ch*4+2],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[0]
- 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:[bx],10001111b
- or es:[bx],al
- mov dl,es:[bx]
- mov cx,2000
- s2:
- mov es:[bx],dl
- add bx,2
- loop s2
-
- pop es
- pop dx
- pop cx
- pop bx
- ret
-
- endscreen:
- nop
-
- code ends
- end start
复制代码
|
|