汇编网首页登录博客注册
835984286的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2011-09-11 19:36] 画一个与屏幕中心一样的矩形,谁有其他显色模式资料呀给我了解了解呀

;名称:rectangle
;功能:在80*25显色模式下画个矩形,矩形与屏幕同中心
;参数:dh=矩形起始点的行号,dl=矩形起始点的列号,cl=矩形颜色
;返回:无
rectangle:        
                        push dx
                        push cx
                        push ax
                        push bx
                        push si
                        
                        mov ax,160
                        mul dh
                        mov bx,0
                        mov bl,dl
                        add ax,bx
                        add ax,bx
                        inc ax
                        mov si,ax
                        mov ax,0b800h
                        mov ds,ax                                                ;设置ds:si指向矩形第一个点对应显存地址
                        
                        mov al,79                                                ;画矩形的第一横线
                        sub al,dl
  rectangle_oline:
                        mov ds:[si],cl
                        ;call delay
                        add si,2
                        inc bl
                        cmp bl,al
                jna rectangle_oline
                
                        sub si,2
                        add si,160                                                ;ds:si指向第2列第一行
                        mov ah,23
                        sub ah,dh
                        mov bh,dh
  rectangle_trank:
                        mov ds:[si],cl
                        ;call delay
                        add si,160
                        inc bh
                        cmp bh,ah
                jna rectangle_trank
                
                        sub si,160
                        sub si,2                                                ;ds:si指向第二行最后一个显存地址
                        mov bl,dl
                        dec al
  rectangle_tline:
                        mov ds:[si],cl
                        ;call delay
                        sub si,2
                        inc bl
                        cmp bl,al
                jna rectangle_tline
                
                        add si,2
                        sub si,160                                                ;ds:si指向第一列最后一个显存地址
                        mov bh,dh
                        dec ah
  rectangle_orank:
                        mov ds:[si],cl
                        ;call delay
                        sub si,160
                        inc bh
                        cmp bh,ah
                jna rectangle_orank
                
                        pop si
                        pop bx
                        pop ax
                        pop cx
                        pop dx
                        ret
评论次数(8)  |  浏览次数(526)  |  类型(默认类型) |  收藏此文  | 

[  chinatree   发表于  2011-09-11 22:22  ]

什么样的显色模式?我只知道dos有256种颜色,至于Dos启动时的那个彩色画面我不知道怎么画的。

[  835984286   发表于  2011-09-11 23:16  ]

一个点的显色模式

[  chinatree   发表于  2011-09-11 23:41  ]

你再描述详细些吧,Dos是25*80的形式,每个点可以显示一个ascii码,占一个字节。在它的地址加一就是它的颜色属性,从0到255,可以任意设置,全0是看不到的。

[  835984286   发表于  2011-09-12 03:52  ]

就是一个一个像素

[  chinatree   发表于  2011-09-12 19:01  ]

用int 10h把屏幕设置为super VGA就可以用像素画了,具体你自己查吧,还可以把图片贴到屏幕上。

[  chinatree   发表于  2011-09-12 19:03  ]

(1)、功能00H
 功能描述: 设置显示器模式 
入口参数: AH=00H
AL=显示器模式,见下表所示 
出口参数: 无 
可用的显示模式如下所列: 
 显示模式 显示模式属性 显示模式 显示模式属性  
 00H 40×25 16色 文本 01H 40×25 16色 文本 
 02H 80×25 16色 文本 03H 80×25 16色 文本 
 04H 320×200 4色 05H 320×200 4色 
 06H 640×200 2色 07H 80×25 2色 文本 
 08H 160×200 16色 09H 320×200 16色 
 0AH 640×200 4色 0BH 保留   
 0CH 保留  0DH 320×200 16色 
 0EH 640×200 16色 0FH 640×350 2(单色) 
 10H 640×350 4色 10H 640×350 16色 
 11H 640×480 2色 12H 640×480 16色 
 13H 640×480 256色  
对于超级VGA显示卡,我们可用AX=4F02H和下列BX的值来设置其显示模式。 
 BX 显示模式属性 BX 显示模式属性  
 100H 640×400 256色 101H 640×480 256色 
 102H 800×600 16色 103H 800×600 256色 
 104H 1024×768 16色 105H 1024×768 256色 
 106H 1280×1024 16色 107H 1280×1024 256色 
 108H 80×60 文本模式 109H 132×25 文本模式 
 10AH 132×43 文本模式 10BH 132×50 文本模式 
 10CH 132×60 文本模式

[  835984286   发表于  2011-09-13 07:32  ]

用不好

[  chinatree   发表于  2011-09-13 12:19  ]

多摸索摸索就好了。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码