关闭

nasm BIOS绘制直线

299人阅读 评论(0) 收藏 举报
分类:

 

  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
0
0
查看评论

IOS开发-画直线

介绍两种画直线的方法: (1)通过QuartzCore (2)通过UIBezierPath 先创建一个自定义view: 然后在导入QuartzCore框架: 然后在m文件打出下面代码,三种函数都是同样的效果:#import "ZCView.h" #import ...
  • zhaolaoda2012
  • zhaolaoda2012
  • 2016-05-19 20:54
  • 424

第一课、OpenGL绘制直线等等

// //  main.c //  opengl_ animationRect_0002 // //  Created by  ch_soft on 12-1-16. //  Copyright (c) 2012年 __MyCompanyN...
  • ch_soft
  • ch_soft
  • 2012-01-18 14:59
  • 16993

Unity 画直线

//材质要记得加工程中添加材质 public Material material; //绘制方法系统回调 void OnPostRender() { if(!material) { Debug.Log("material == null"); re...
  • qqMCY
  • qqMCY
  • 2013-07-12 15:24
  • 2411

Android - 直线(line)画法

Android - 直线(line)画法本文地址: http://blog.csdn.net/caroline_wendy横线(horizontal line)<View android:layout_width="fill_parent" ...
  • u012515223
  • u012515223
  • 2014-10-30 19:11
  • 3202

Unity3D直线绘制

http://blog.csdn.net/dzyi_/article/details/22937349 原文地址:http://www.xuanyusong.com/archives/561 任何一个无规则曲线它都是有若干个线段组成,及时是圆形它也是又若干个线段组成的,也就是说将若干个线段拼接起...
  • lianghuaju
  • lianghuaju
  • 2016-08-18 15:52
  • 1029

android activity中画任意直线

这里的画直线不是通过新建一个View类,在View的画布中画,而是直接在activity中画。 package lizm.lt; import android.app.Activity; import android.graphics.Bitmap; import android.gra...
  • lizhenmingdirk
  • lizhenmingdirk
  • 2012-09-07 19:11
  • 9342

学习OpenGL(四)绘制直线

绘制直线跟上一节绘制点差不多,毕竟直线是由点组成的。但这里需要注意的是,我们说的直线是有端点的,不是射线和构造线(两端无线延伸的)。 下面上代码,看看如何绘制直线。 void myDisplay(void) { glClearColor(0.0, 0.0, 0.0, 0.0); glClea...
  • th_gsb
  • th_gsb
  • 2016-04-01 17:25
  • 2725

DrictX 绘制线条

#include #pragma comment(lib, "d3d9.lib") #define WINDOW_WIDTH 640 #define WINDOW_HEIGHT 480 PDIRECT3D9 g_D3D = nullptr; // D3D对象 ...
  • xi_niuniu
  • xi_niuniu
  • 2016-01-17 19:06
  • 1356

MFC创建画直线程序

第一步: 新建工程MFC APPWizard(exe),创建单文档应用程序Draw,点击完成。 第二步: 在CDrawView类中添加两个成员变量m_pt、m_Colo,类型分别为CPoint、COLORREF,定义为private (选择ClassView,在CDrawView类上右键单击...
  • wozaidengnihaojiu
  • wozaidengnihaojiu
  • 2015-09-09 02:47
  • 2697

canvas之一:绘制直线

canvas是html5中最激动人心的技术之一,使用它,可以在浏览器上绘制出各种酷炫的效果,但是呢,千里之行,始于足下,接下来我们就从画一条最简单的直线开始,话不多说,先上效果图: 代码如下: window.onload = function(...
  • u012124304
  • u012124304
  • 2016-05-16 10:06
  • 1601
    个人资料
    • 访问:341125次
    • 积分:7289
    • 等级:
    • 排名:第3661名
    • 原创:325篇
    • 转载:552篇
    • 译文:1篇
    • 评论:75条
    最新评论