[开发工具] 求基于IAR编译软件的嵌入汇编例程

[复制链接]
7242|8
 楼主| gzhwb 发表于 2007-4-2 09:09 | 显示全部楼层 |阅读模式
现在我的主程序是用C语言写的,为了提高速度想嵌入一段汇编语言程序,求基于IAR编译软件的嵌入汇编例程。谢谢!
ryansheng 发表于 2007-4-2 10:00 | 显示全部楼层

Re

可以在C里面内嵌几句汇编,也可以把整个函数用汇编文件来写。
 楼主| gzhwb 发表于 2007-4-2 10:09 | 显示全部楼层

具体怎样操作呢?

starm 发表于 2007-4-2 11:08 | 显示全部楼层

EWARM 内联汇编问题

  asm("    LDR     R0, [PC, #0x0C] ");
  asm("    LDRH    R2, [R0]        ");   
  asm("    BIC     R2, R2, #0x03   ");   
  asm("    STRH    R2, [R0]        ");       
  asm("    MOV      PC, #0          ");   
  asm("    DCD     0xA0000050      ");   
 楼主| gzhwb 发表于 2007-4-2 13:37 | 显示全部楼层

re

大家好,我想把下面的那段程序转换成汇编,涉及到函数参数的传递,数组参数的传递,请问用汇编语言怎样得到C语言函数的参数。
void _checktable (unsigned char line, unsigned char *text,
                  unsigned char *lasttext, unsigned char *IDD)
{
    unsigned int  i,j,k,temp,temp2;
    for( j=0,k=0; j<line; j++,k+=8 )
    {
        lasttext[j]=0;
          for(i=0; i<8; i++) 
        {
             temp2 = IDD[k+i];    
             temp = text[temp2/8]; // get the byte
              temp &= _bitposition[temp2&0x07]; // get the bit    
            if(temp)
                lasttext[j] |= _bitposition;
        }
    }
}
xzm0662 发表于 2007-4-3 10:04 | 显示全部楼层

算法更重要,汇编能提高的效率有限,算法修改往往能提高

莫非是横向字库在纵向的显示器显示的问题?
ryansheng 发表于 2007-4-3 12:30 | 显示全部楼层

Re

关于参数传递:
EWARM_CompilerReference.pdf --> Part 1. Using the Compiler --> Assembler language interface --> Calling convention --> Function entrance
 楼主| gzhwb 发表于 2007-4-3 13:48 | 显示全部楼层

Re

谢谢各位的回答,我是做des算法里的位移动,各位有没有更快的方法?
telnet 发表于 2007-4-4 11:31 | 显示全部楼层

加速过程

1) 程序结构优化
2) 算法的优化
3) 将代码 unrolling(这时候开始要看使用的cpu了)
4) 变成汇编,使之尽可能流水.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

34

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部