马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
|