这是绘制圆圈的代码:
My_PaintArea:
mov ebx,pointercolor ;pointer ARRAY, RGB color values (BGR)
push [ebx]
push [ebx+4]
push [ebx+8]
call glColor3f ;- API Function -
mov ebx,pointervertex ;pointer ARRAY, z y x vertex coordinat.
finit
fld a
fmul pi
fdiv dz
fcos
fmul r
fst x_
mov eax,x_
mov [ebx],eax
fld a
fmul pi
fdiv dz
fsin
fmul r
fst y_
mov eax,y_
mov [ebx+4],eax
push [ebx]
push [ebx+4]
push [ebx+8]
call glVertex3f ;- API Function -
mov ebx,pointercolor
push [ebx+12]
push [ebx+16]
push [ebx+20]
call glColor3f ;- API Function -
mov ebx, pointervertex
add a,5
fld a
fmul pi
fdiv dz
fcos
fmul r
fst x__
mov eax,x__
mov [ebx+12],eax
fld a
fmul pi
fdiv dz
fsin
fmul r
fst y__
mov eax,y__
mov [ebx+16],eax
push [ebx+12]
push [ebx+16]
push [ebx+20]
call glVertex3f
;add r,1 ;- API Function -
; add pom1,1
;cmp pom1,5
;jne My_PaintArea
ret ;go out of here
最后4行被注释掉了。为什么程序运行无限循环(我假设)? pom1在开始时为0,所以我的想法是应该绘制5个半径增加的圆(1,2,3,4,5)。
编辑:我应该澄清一下,当我离开没有评论的程序时程序崩溃,最后4行注释它正确绘制一个圆圈(一个圆圈)。