学习龙芯汇编语言程序设计

学习龙芯汇编语言程序设计

ID:1324223

大小:70.00 KB

页数:13页

时间:2017-11-10

学习龙芯汇编语言程序设计_第1页
学习龙芯汇编语言程序设计_第2页
学习龙芯汇编语言程序设计_第3页
学习龙芯汇编语言程序设计_第4页
学习龙芯汇编语言程序设计_第5页
资源描述:

《学习龙芯汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学习龙芯汇编语言程序设计(第一篇)MIPS汇编—MIPS汇编简介级别:初级版本:0.10作者:胶林探索(龙芯技术支持论坛)2007年1月8日龙芯2E微处理机可以运行MIPS2/MIPS3的绝大多数指令,学习MIPS汇编,就能用汇编语言为龙芯写软件了。龙芯2E是一种RISC体系结构的微处理机。RISC(精简指令系统计算机)从字面上看好象是一种指令简单的计算机,其实为RISC写一段简短汇编语言程序不难,若写很长的程序,那就是真正的挑战。有人可以完全用X86的汇编写软件,但在RISC处理器上,这样做那就是疯狂和不现实了。RISC指令种类较少,这样完成同样的功能,X86用

2、一条指令,RISC就要用几条指令来完成。在IBM首先提出RISC设计思想时,目的就是让RISC处理器能在优化编译器的帮助下,生成的目标代码,在运行速度上可以和手工编写的代码相当或更快(因为编译器可以利用流水线调度技术,超标量技术等,做到一个时钟周期可以执行一条以上的指令)。当然理论上说,人写的代码总是最短和最快的,但在编写几百万条指令时,人的编写速度就太慢了,还极易出错,而且RISC的代码比X86之类CISC处理器更长,所以学习汇编程序设计,主要是为了给RISC写操作系统的底层模块,开发嵌入式应用的驱动程序和接口,以及为RISC设计编译器。RISC处理器上的程序,

3、就是用高级语言(主要为C语言)写的,系统程序比如操作系统(甚至PMON这样的BIOS),主要的程序段是C语言写,和机器相关最底层才是汇编语言,只有极小的几段。一般的软件编程,学好高级语言程序设计和熟悉系统调用,反而比学习汇编更为迫切。不过,若想学习写驱动程序,BIOS,嵌入式应用,写编译器,那就继续看下去吧。(欢迎各路高手指教)顺便说几句,由于RISC的目标代码比X86的长,所以,RISC处理器和X86比,拥有更大的Cache,处理器的带宽也比X86的更高,所以高端的RISC处理器要比X86的更贵,而低端应用上,RISC又比X86性价比高,功耗上更有优势。先看一段

4、程序:引用:.rdata.align2hello:.asciz"Hello,Loongson!"len=.-hello.align4.text.globl__start__start:.entmainmain:move$4,$0la$5,helloli$6,len#17#lengthli$2,4004#writesyscall#exitli$2,4001li$4,0syscall.endmain输入之后,可以用下面的命令来执行:引用:$as-ohel3.ohel3.s$ldhel3.o$./a.out有关程序清单的一般说明每条指令占用一行,指令和它的参数用空格

5、或制表符分割。MIPS汇编需要一个目标寄存器用于所有寄存器到寄存器的操作(因为它是RISC体系结构)。目标寄存器总是位于参数列表的第一个。在MIPSLinux中,系统调用是通过syscall指令,通用寄存器$2中的系统调用(syscall)号和约定好的其他通用寄存器中的参数进行的。系统调用号、参数序列以及参数个数在其它处理器的Linux操作系统中可能会有所不同,C语言程序员通常利用libc库(它处理特定于OS的细节)进行系统调用。寄存器表示法龙芯2E处理器有32个64位GPR(通用寄存器)以及诸如PC程序计数器,还有用于乘法和除法的HI和LO,还有32个64位FP

6、R(浮点寄存器)。龙芯2E处理器采用了先进的寄存器重命名技术(从而更有效实现多条指令的同时执行),实际上它的两个物理寄存器堆分别有64个64位通用寄存器和64个64位浮点寄存器。通用寄存器$31还是处理器硬件约定的JAL指令的链接寄存器。(JALR可以使用任何一个通用寄存器)。通用寄存器$0,它的值恒为零。由于MIPS采用将比较运算的结果放入任意一个指定的通用寄存器,所以龙芯没有整数比较运算结果的标志寄存器(浮点运算使用状态寄存器的一个状态位)。指令说明:move目的寄存器,源寄存器,表示把源寄存器的值传送至“目的寄存器”la表示“装入地址”。li表示“立即装入”

7、。有意思的是,上面的三条指令全是伪指令,有可能被as程序翻译成一条以上的实际指令,如li,或只是一个实际指令的一个别名,如move。学习龙芯汇编语言程序设计(第二篇)上机实践用编辑程序输入源代码,存盘后得到源文件。运行汇编程序(as)生成目标代码文件。运行连结程序(ld)生成可执行文件。下面几种方法可以进行实际的上机实验:1.已经拥有福珑迷你电脑这个我现在还没轮到,好羡慕那些已经盒子到手的龙芯发烧友。2.使用远程登陆,也可以做到在真正的龙芯硬件上运行你的程序这个已经体验过了,效果很好。3.使用模拟器gxemul这个我没做试验,请使用过的朋友介绍一下经验。4.使用S

8、PIM。这

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。