pasm_源码_分析_ powerpc 指令


#2013_11_12   星期二   add by greshem
pasm 是一个powerpc 指令汇编器 

H:\portage\dev-lang\pasm\pasm.chm
root/main.c


 406   /* assemble */
 407   exec_pass1(gv);
        pass1(gv,add_source(gv,"",stdsects,
            search_opcode(gv,pl,gv->strbuf,skipspaces(lp));
                #==========================================================================
                if (pl->opcode = (void *)search_macro(gv,opname)) {
                  execute_macro(gv,pl);
                else if (pl->opcode = (void *)search_instr(gv,opname)) {
                  gv->csect->pc += 4;  /* every PPC instruction has a size of 4 bytes */
                else if (pl->opcode = (void *)search_directive(gv,opname)) {
                  execute_directive(gv,pl);
                else if (pl->opcode = (void *)search_section(gv,opname)) {
                  activate_section(gv,(struct Section *)pl->opcode);
 410
 411   for (;;) {
 412     gv->anotherpass = FALSE;
 413     exec_pass2(gv);
            pass2(gv,get_source(gv),NULL);  /* */
                activate_section(gv,(struct Section *)p->opcode);
            pass2(gv,get_source(gv),NULL);  /* */
            pass2(gv,get_source(gv),NULL);  /* */
            pass2(gv,get_source(gv),NULL);  /* */
            pass2(gv,get_source(gv),NULL);


 417     reset_sections(gv);
 418   }
 419
 420   /* write output file */
 421   write_object(gv);

#==========================================================================
#指令的注册
#数据库
 115 struct CPUInstr instructions[] = {
#处理函数, 处理不同的指令
instr(gv,p);
    
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值