您的位置:首页 > 其它

nasm BIOS绘制直线

2015-11-21 20:21 204 查看
 

-----------------------------------------------------------------------  

                        INT 0x10可识别的视频图形模式  

--------------------------------------------------------------------  

模式          分辨率(列*行,像素)   颜色数  

6                   640x200                 2  

0DH                 320x200                 16  

0EH                 640x350                 16  

0FH                 640x350                 2  

10H                 640x200                 16  

11H                 640x480                 2  

12H                 640x480                 16  

13H                 320x200                 256  

6AH                 800x600                 16  

-----------------------------------------------------------------------

           INT 0x10 功能0CH  

---------------------------------------------------------------  

描述:  

    写像素  

接受参数:  

    AH          0CH  

    AL          像素值  

    BH          视频页  

    CX          X坐标  

    DX          Y坐标  

返回值:  

    无  

注意:  

    视频显示必须处于图形模式下。像素值的范围和坐标范围与当前的图形模式有关。  

    如果AL的位7置位,新的像素同当前像素的内容进行异或运算


AH=0CH

AH=0Ch/INT 10H 是在绘图模式中显示一点 ( 也就是写入点像,write graphics pixel ),而 AH=0DH/INT 10H 则是读取点像 ( read graphics pixel )。

写入时,要写入位置 X 座标存于 CX 寄存器,Y 座标存于 DX 寄存器,颜色存于 AL 寄存器。和文字模式相同,萤光幕上的 Y 座标是最上面一列为零,越下面越大,X 座标则和数学的定义相同。CX、DX、AL 值之范围与显示模式有关:

显示模式X 座标Y 座标颜色
40~3190~1990、1
50~3190~1990~3
60~6390~1990、1
AH=0DH/INT 10H 则是读取某一位置之点像,您必须指定 CX、DX,而 INT 10H 会传回该位置点像之颜色。
org 07c00h

 mov ax,cx

 mov ds,ax

 mov es,ax 

 call clear_screen

 

 mov ah,0;

 mov al,06ah ;设置图形模式 0x6a 位800 600 16中颜色

 

 int 10h

 ;画 一条直线

 mov bh,0x0  ;视频页

 mov dx,300   ;y坐标

 mov cx,100   ;x坐标

 mov ah,0x0c   ;功能号

 mov al,9      ;像素值 像素颜色

 

 lib:

 int 10h

 

 inc cx

 cmp cx,700

 jne lib 

  jmp $

  

  clear_screen:

 mov ah,0x06

 mov al,0

 mov cx, 0x00

 mov dh,24

 mov dl,40

 mov bh,0x07

 int 10h

 ret

 

 BootMessage: db "He"

times 510-($-$$) db 0 ;填充剩下的空间,使生成的二进制代码恰好为512字节

dw 0xaa55
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: