下面是一个用 ppc 汇编写的 graph 作图小程序,但我不能理解,请大侠指点!
我自己加了一些标注,但不知道对错,想得到一个确认,还请大家多多帮忙!谢谢!
首先,命名了几个寄存器:
param1: reg r3          *命名几个寄存器用于参数传递
param2: reg r4
param3:  reg r5
param4: reg r6
bss: reg r30 *给全局变量留着的
ppc_graph_dem
  
ENTRY * 表示程序开始
start_up  *保存寄存器中的值,这句我不大清楚!??
la r3,qd(`bss) *把QD的地址值给然r3                                                                                     addic r3,r3,206-4        * 这句对r3中的值进行位操作,我不大明白!??
Xcall InitGraf   *调用系统函数InitGraf
Xcall InitFonts    *同上但这些函数,要做什么呢?我还是不大明白?
Xcall InitWindows
Xcall InitMenus
Xcall TEInit
li `param1,0     *param1置0  这句疑惑很大,这是什么意思呢?param是做什么?  
Xcall InitDialogs    
Xcall InitCursor
bl graph_demo_init    *跳转到另外一个函数
graph_demo_init:
mflr r29 *保存返回地址??这句很模糊,mflr这个指令,我不大理解!
bl open_window  *又发生跳转了
mtlr r29     *这句不明白什么意思???
blr    *回到主程序
open_window:
mflr r28  *??
li `param1,128 *windows的ID是128
   li `param2,0 *param2 清零,不大明白?                                                                                    li `param3,-1              *?                                                                                                 Xcall GetNewCWindow                                                                                                        stw `param1,window_1_ptr(`bss)  *把128保存到后面那个地址里??
**get the viewable rectangle (top,left,bottom,right)
la r3,16(r3) *这句什么意思?16(r3)是什么意思?
la r4,viewrect_1(`bss) *后面那个地址??
lfs f0,(r3)  *这句什么意思?
stfs f0,(r4) *这句什么意思? stfs 这个指令什么意思?
lfs f1,4(r3) *?? 
stfs f1,4(r4)   *??
**And copy to our second rectangle as well
la r4,viewrect_2(`bss)
stfs f0,(r4)  *into viewrect_2
stfs f1,4(r4)                                        
                                                                      
**set the port to our window
lwz `param1,window_1_ptr(`bss)
Xcall SetPort 
lwz r10,white(rtoc) *r10指向white
mtlr r28  *这句是返回现在的地址吗?                                                                                   blr  *and branch to it
****
global  graph_demo_init
extern_data white
先写到这里了,有好些不明白的,我自己也再思考一下,希望那位大侠能出手相助!
[align=right][color=#000066][此贴子已经被作者于2006-1-18 14:32:28编辑过][/color][/align]
			
			
			
						
			
 我要赚赏金
