绘制半径增大的圆圈

时间:2015-06-09 10:53:09

标签: assembly x86

这是绘制圆圈的代码:

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行注释它正确绘制一个圆圈(一个圆圈)。

0 个答案:

没有答案