画点
点是各种图形的基础,要实现图形处理就先从画点开始。创建窗口的程序之前写过了,忘记的话往前翻翻找一下。再给窗口来一个黑色背景,窗口名就叫“夜空中最亮的星”吧。
画点API式样:
画点API:
EDX=11
EBX=窗口句柄
ESI=显示位置的x的坐标
EDI=显示位置的y坐标
EAX=色号
a_nask.nas节选:
_api_point: ; void api_point(int win, int x, int y, int col);
PUSH EDI
PUSH ESI
PUSH EBX
MOV EDX,11
MOV EBX,[ESP+16] ; win
MOV ESI,[ESP+20] ; x
MOV EDI,[ESP+24] ; y
MOV EAX,[ESP+28] ; col
INT 0x40
POP EBX
POP ESI
POP EDI
RET
夜空中最亮的星,star.c:
int api_openwin(char *buf, int xsiz, int ysiz, int col_inv, char *title);
void api_boxfilwin(int win, int x0, int y0, int x1, int y1, int col);
void api_initmalloc(void);
char *api_malloc(int size);
void api_point(int win, int x, int y, int col);
void api_end(void);
void HariMain(void)
{
char *buf;
int win;
api_initmalloc();
buf = api_malloc(150 * 100);
win = api_openwin(buf, 450, 300, -1, "The brightest stars");
api_boxfilwin(win, 6, 26, 443, 293, 0 /* 黑色 */);
api_point(win, 225, 150, 3 /* 黄色 */);
api_end