nasm BIOS绘制直线

原创 2015年11月21日 20:21:38

 

  1. -----------------------------------------------------------------------  
  2.                         INT 0x10可识别的视频图形模式  
  3. --------------------------------------------------------------------  
  4. 模式          分辨率(列*行,像素)   颜色数  
  5. 6                   640x200                 2  
  6. 0DH                 320x200                 16  
  7. 0EH                 640x350                 16  
  8. 0FH                 640x350                 2  
  9. 10H                 640x200                 16  
  10. 11H                 640x480                 2  
  11. 12H                 640x480                 16  
  12. 13H                 320x200                 256  
  13. 6AH                 800x600                 16  
  14. -----------------------------------------------------------------------

  1.            INT 0x10 功能0CH  
  2. ---------------------------------------------------------------  
  3. 描述:  
  4.     写像素  
  5. 接受参数:  
  6.     AH          0CH  
  7.     AL          像素值  
  8.     BH          视频页  
  9.     CX          X坐标  
  10.     DX          Y坐标  
  11. 返回值:  
  12.     无  
  13. 注意:  
  14.     视频显示必须处于图形模式下。像素值的范围和坐标范围与当前的图形模式有关。  
  15.     如果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 座标 颜色
4 0~319 0~199 0、1
5 0~319 0~199 0~3
6 0~639 0~199 0、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
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

直线圆与椭圆的绘制.docx

  • 2017年06月14日 15:22
  • 254KB
  • 下载

图形学实验直线绘制

  • 2013年12月10日 19:47
  • 1.06MB
  • 下载

使用BIOS以及直接写显存绘制图形

注:以下程序系由相应的Intel格式汇编改编而来,略有修改,若发现bug,欢迎指正。若有问题,欢迎交流。若能帮助一二访客,幸甚。 一年前仿照Skelix 写过一个简单的内核,并命名为Baby...
  • judyge
  • judyge
  • 2016年08月23日 11:20
  • 534

DDA直线绘制

  • 2016年04月13日 15:54
  • 11KB
  • 下载

VC绘制带带箭头的直线

  • 2013年05月19日 16:59
  • 1KB
  • 下载

babyos (二)——使用BIOS以及直接写显存绘制图形

注:以下程序系由相应的Intel格式汇编改编而来,略有修改,若发现bug,欢迎指正。若有问题,欢迎交流。若能帮助一二访客,幸甚。 一年前仿照Skelix 写过一个简单的内核,并命名为Baby...

C#实现简单的绘制直线

  • 2013年08月14日 09:48
  • 43KB
  • 下载

android绘制直线

  • 2014年01月10日 11:09
  • 1.41MB
  • 下载

【Unity Shader学习笔记】(三)绘制点、直线、网格等基本图形

今天我们学习一种简单的使用Unity Shader在屏幕上绘制几何图形的方法。其中包含了基本的点(或者说是圆形)、直线(任意方向)和网格(横纵交错)的绘制方法。本文例程使用的是Unity5.4.1。...
  • zzlyw
  • zzlyw
  • 2016年12月22日 14:52
  • 5635

简单直线的绘制的源代码资源

  • 2010年07月01日 10:36
  • 82KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nasm BIOS绘制直线
举报原因:
原因补充:

(最多只允许输入30个字)