庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>汇编语言>相关源码>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

汇编的的各类源码--CLEAR

 作者:本站收集   日期:2005-8-1 15:39:22
字号选择〖 〗/ 双击滚屏 单击停止   
         name      clear
         page      55,132
         title     'CLEAR --- control PC display'
;
; CLEAR Utility to clear display
; and set character attributes
;
; Ray Duncan,  Uncopyright (u) August 1983
; This program may be freely copied,
; mangled, enhanced, redistributed.
;
input    equ       080h      ;command line tail buffer
cr       equ       0dh       ;ASCII carriage return
;
cseg     segment   byte
         assume    cs:cseg,ds:cseg
;
         org       0100h     ;since this will be
                             ; a COM file
;
clear:                       ;initialize display...
                             ;call BIOS video driver to
         mov       ah,15     ;get current display mode:
         int       10h       ;returns AL = mode, and
                             ;AH = no. of columns.
         cmp       al,7      ;if we are in graphics modes
         je        clear0    ;(modes 4,5,6) then exit
         cmp       al,3      ;but if we are in mode 0-3
         ja        clear9    ;or 7 then continue.
clear0:                      ;set up size of window to
                             ;be initialized...
         xor       cx,cx     ;set upper left corner of
                             ;window to (X,Y)=(0,0)
         mov       dh,24     ;set Y to 24 for lower right
         mov       dl,ah     ;corner, and X to the number
         dec       dl        ;of columns returned by BIOS
                             ;minus 1
         mov       bh,7      ;initialize attribute byte
                             ;to "normal" video display,
                             ;i.e. white on black.
                             ;set SI=address of command
                             ;tail's length byte
         mov       si,offset input
         cld                 ;clear the Direction Flag
                             ;for "LODS" string instruction.
         lodsb               ;check length byte to see if
         or        al,al     ;there's any command tail.
         jz        clear8    ;no,go clear the screen
                             ;with normal video attribute
                             ;
clear1:  lodsb               ;check the next byte of
                             ;the command tail,
         cmp       al,cr     ;if carriage return
         je        clear8    ;we are done.
         or        al,20h    ;fold the character to
                             ;lower case.
         cmp       al,'a'    ;make sure it's in range a-z
         jb        clear1    ;no, skip it
         cmp       al,'z'
         ja        clear1    ;no, skip it
         cmp       al,'i'    ;I=Set intensity
         jne       clear2    ;jump if not I
         or        bh,08     ;set intensity bit
         jmp       short clear1
clear2:  cmp       al,'r'    ;R=Reverse
         jne       clear3    ;jump if not R
         and       bh,088h   ;mask off old foreground/
                             ;background bits and
         or        bh,070h   ;change to reverse video
         jmp       short clear1
clear3:  cmp       al,'u'    ;U=Underline
         jne       clear4    ;jump if not U
         and       bh,088h   ;mask off old foreground/
                             ;background bits and
         or        bh,01h    ;change to underline
         jmp       short clear1
clear4:  cmp       al,'b'    ;B=Blink
         jne       clear5    ;jump if not B
         or        bh,080h   ;set blink bit
         jmp       short clear1
clear5:  cmp       al,'s'    ;S=Silent
         jne       clear1    ;if not S try next char.
         mov       bh,0      ;if S command, rig for
                             ;silent running.  Clear
                             ;the foreground/background
                             ;display control fields, and
                             ;don't bother to look for
                             ;any more command characters.
                             ;
clear8:                      ;now we have decoded all
                             ;the characters in the
                             ;command tail, and are ready
                             ;to initialize the display.
                             ;BH=   desired attribute
                             ;CL,CH=(X,Y),upper left
                             ;      corner of window
                             ;DL,DH=(X,Y),lower right
                             ;      corner of window
         mov       ax,0600h  ;AH =  function type 6,
                             ;AL =  lines to scroll (zero)
         int       10h       ;request initialization
                             ;of window by BIOS
                             ;
         mov       ah,2      ;now set the cursor to
         mov       bh,0      ;(X,Y)=(0,0), Page=0
         xor       dx,dx
         int       10h
                             ;
clear9:  int       20h       ;exit to PC-DOS
;
cseg     ends
;
         end       clear

上一篇:汇编的的各类源码--CLOCK    下一篇:汇编的的各类源码--CLEANF  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-8-1 15:39:22
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿