这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 一个短篇 PPC 汇编程序,请那位大侠帮着看看,有理解不好的地方,请指点!

共2条 1/1 1 跳转至

一个短篇 PPC 汇编程序,请那位大侠帮着看看,有理解不好的地方,请指点!

菜鸟
2006-01-18 22:24:22     打赏

下面是一个用 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]



关键词: 一个     短篇     汇编程序     那位     大侠     帮着     看看     有理    

菜鸟
2006-01-19 17:13:00     打赏
2楼
不知道斑竹注意到没有,这里写好的贴,发表后经常串行.[em05]

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]