| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 avatar10010 于 2014-10-8 10:52 编辑  
- 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 sub0,sub1, sub2, sub3  
 
 - begin:
 
 -         push bx
 
 -         cmp ah,3
 
 -         ja sret
 
 -         mov bl,ah
 
 -         xor bh,bh
 
 -         add bx,bx
 
 -         call table[bx]
 
 - sret:
 
 -         pop bx
 
 -         iret
 
 -         
 
 - sub0:
 
 -         push bx
 
 -         push cx
 
 -         push es
 
 -         
 
 -         mov bx,0b800h
 
 -         mov es,bx
 
 -         xor bx,bx
 
 -         mov cx,2000
 
 - s0:
 
 -         mov byte ptr es:[bx],' '
 
 -         add bx,2
 
 -         loop s0
 
 -         
 
 -         pop es
 
 -         pop cx
 
 -         pop bx
 
 -         ret
 
 -         
 
 - sub1:
 
 -         push bx
 
 -         push cx
 
 -         push dx
 
 -         push es
 
 -         
 
 -         mov bx,0b800h
 
 -         mov es,bx
 
 -         mov bx,1
 
 -         and byte ptr es:[bx],11111000b
 
 -         or es:[bx],al
 
 -         mov dl,es:[bx]
 
 -         mov cx,2000
 
 - s1:
 
 -         mov es:[bx],dl
 
 -         add bx,2
 
 -         loop s1
 
 -                 
 
 -         pop es
 
 -         pop dx
 
 -         pop cx
 
 -         pop bx
 
 -         ret
 
 -         
 
 - 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
 
 -         
 
 - sub3:
 
 -         push cx
 
 -         push si
 
 -         push di
 
 -         push es
 
 -         push ds
 
 -         
 
 -         mov si,0b800h
 
 -         mov es,si
 
 -         xor di,di
 
 -         mov ds,si
 
 -         mov si,160
 
 -         mov cx,24*80
 
 -         cld
 
 -         rep movsw
 
 -         
 
 -         mov cx,80
 
 - s3:
 
 -         mov byte ptr es:[di],' '
 
 -         add di,2
 
 -         loop s3
 
 -         
 
 -         pop ds
 
 -         pop es
 
 -         pop di
 
 -         pop si
 
 -         pop cx
 
 -         ret  
 
 -          
 
 - endscreen:
 
 -         nop  
 
 -            
 
 - code ends
 
 - end start
 
  复制代码 
 |   
 
 
 
 |