在 2012年12月5日 下午4:12,Jia Liu <proljc@xxxxxxxxx>写道: > 2012/12/5 刘智猷 <liuzhiyou.cs@xxxxxxxxx>: > > > > > > > > 在 2012年12月5日 下午3:53,Jia Liu <proljc@xxxxxxxxx>写道: > > > >> 2012/12/5 刘智猷 <liuzhiyou.cs@xxxxxxxxx>: > >> > > >> > 在 2012年12月5日 上午10:21,Jia Liu <proljc@xxxxxxxxx>写道: > >> >> > >> >> 2012/12/3 刘智猷 <liuzhiyou.cs@xxxxxxxxx>: > >> >> > Hi, all > >> >> > > >> >> > 我是刘智猷, 是北京大学大四的学生. 因为我对kernel, 编译器这些话题比较感兴趣, 管雪涛老师介绍我加入了这个邮件列表, > >> >> > 让我学习一下大家的工作. > >> >> > 能帮上忙当然更好了. 初来乍到, 先自我介绍一下吧. > >> >> > >> >> 有时间么?给我讲讲unicore的汇编语言和指令,有些问题我不是很明白。 > >> >> > >> > Hi, Jia Liu > >> > > >> > > >> > > 从原文中看不出你是想re我还是re管老师。我写过一个unicore32的简单的编译器,如果问题打字就能描述清楚,可以发到maillist上,我看看能不能回答。 > >> > >> uc的寄存器是 32个 32位定点寄存器 + 32个 32位浮点寄存器,对吧? > >> > >> uc里面对应jr LR的是什么指令?也就是从一个函数return出来,LR是Link Register。 > >> > >> uc里面有没有延时槽? > > > > 据我所知,uc不需要汇编程序员管理延时槽。 > >> > >> > >> uc的汇编怎么写?我看文档不是很清楚,ARM也不熟,我做MIPS的。 > > 能不能多给一些汇编的例子?生成过程毕竟是无法控制的。非常需要了解uc汇编。 > 我也没有自己写过uc的汇编,如果你做的是编译,只需要看看他们的编译器最后怎么生成就可以了吧。 另外,kernel的arch/unicore32目录下有一些.S汇编,应该是手写的。你也可以看一看有没有帮助。 > > > > > 可以先用我前一封邮件里提到的工具链看看他们怎么生成代码(汇编)。 > >> > >> > >> uc ISA手册里面,比如,ADD一条指令,多种含义,多种编码,并不是一一对应的,能不能解释一下啊?对此,感到很困惑,不知道该怎么生成代码。 > > > > > ISA手册里的ADD节实际上介绍了很多种ADD指令,每种指令有不一样的意义和不一样的编码。你说的一一对应是什么意思?我感觉现在的工具链也不是用上所有的指令,也许可以先用其中的一部分。 > > > > 另外,你现在是在做哪方面的东西? > > 就做这个啊。 > llvm?还是binutils?没明白你说的这个是什么- - 智猷