注册 登录
编程论坛 汇编论坛

罗云彬书上第7章, 画时钟的那个程序, 有两个子程序的一些指令看不懂

马甲1号 发布于 2011-04-05 15:53, 612 次点击
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 计算时钟圆周上某个角度对应的 X 坐标
; X = 圆心X + Sin(角度) * 半径
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_CalcX        proc    _dwDegree,_dwRadius
        local    @dwReturn

        fild    dwRadius
        fild    _dwDegree
        fldpi
        fmul            ;角度*Pi
        fild    dwPara180
        fdivp    st(1),st    ;角度*Pi/180
        fsin            ;Sin(角度*Pi/180)
        fild    _dwRadius
        fmul            ;半径*Sin(角度*Pi/180)
        fadd            ;X+半径*Sin(角度*Pi/180)
        fistp    @dwReturn
        mov    eax,@dwReturn
        ret

_CalcX        endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 计算时钟圆周上某个角度对应的 Y 坐标
; Y = 圆心Y - Cos(角度) * 半径
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_CalcY        proc    _dwDegree,_dwRadius
        local    @dwReturn

        fild    dwRadius
        fild    _dwDegree
        fldpi
        fmul
        fild    dwPara180
        fdivp    st(1),st
        fcos
        fild    _dwRadius
        fmul
        fsubp    st(1),st
        fistp    @dwReturn
        mov    eax,@dwReturn
        ret

_CalcY        endp

加红色的, 那几个
fild  fldpi  fmul  fdivp  fsin  fadd  fistp  fcos  fsup

不懂得它们是什么意思, 怎么用, 看得我很挫败啊
求解释, 谢谢
5 回复
#2
zaixuexi2011-04-05 21:38
1. 指令自己学会更有收获
2. GOOGLE->XXX 指令 或者 汇编fild 会有一箩筐吧
3. 不想学的时候还是玩一会放松放松比较好
#3
马甲1号2011-04-05 21:53
大哥.
#4
xiaomarn2011-04-06 09:25
浮点指令
看它字面意思就知道啦!比如FADD 就是加一个数啊,不过要注意它是以栈的形式存放和操作的
#5
Alar302011-04-06 13:05
浮点指令。。。
#6
马甲1号2011-04-06 13:43
谢谢谢谢谢谢, 我已经在网上找到了这些汇编指令的介绍
1