首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于罗云彬的题解时钟程序

2013-09-14 
关于罗云彬的例题时钟程序 按照

关于罗云彬的例题时钟程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 按照 _dwDegreeInc 的步进角度,画 _dwRadius 为半径的小圆点
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_DrawDotproc_hDC,_dwDegreeInc,_dwRadius
local@dwNowDegree,@dwR
local@dwX,@dwY

mov@dwNowDegree,0
moveax,dwRadius
subeax,10
mov@dwR,eax
.while@dwNowDegree <=360
finit

      全文就这一处出现_dwDegreeInc ..这是什么意思..有什么具体的意义吗。。
[解决办法]
看 _ShowTime 子程里的这两句,应该明白吧

invoke_DrawDot,_hDC,360/12,3;画12个大圆点
invoke_DrawDot,_hDC,360/60,1;画60个小圆点

[解决办法]
我也刚学到这里,这是定义函数的一种方法,_hDC和_dwDegreeInc还有_dwRadius就是函数的三个参数。就像C语言里定义函数后的零时变量一样,用到这个函数直接替换就行了。起这个名字容易记一些!可以看看第三章末匈牙利命名法!
_DrawDot    proc    _hDC,_dwDegreeInc,_dwRadius
        local    @dwNowDegree,@dwR
        local    @dwX,@dwY
 
        mov    @dwNowDegree,0
        mov    eax,dwRadius
        sub    eax,10
        mov    @dwR,eax
        .while    @dwNowDegree <=    360
            finit
;********************************************************************


; 计算小圆点的圆心坐标
;********************************************************************
            invoke    _CalcX,@dwNowDegree,@dwR
            mov    @dwX,eax
            invoke    _CalcY,@dwNowDegree,@dwR
            mov    @dwY,eax
 
            mov    eax,@dwX    ;画点
            mov    ebx,eax
            mov    ecx,@dwY
            mov    edx,ecx
            sub    eax,_dwRadius
            add    ebx,_dwRadius
            sub    ecx,_dwRadius
            add    edx,_dwRadius
            invoke    Ellipse,_hDC,eax,ecx,ebx,edx
 
            mov    eax,_dwDegreeInc
            add    @dwNowDegree,eax
        .endw
        ret
 
_DrawDot    endp

热点排行