指令环境。

2)Power PC虚拟环境级———用户级体系结构的扩展。

3)Power PC操作系统级———可控制操作系统资源。

用户级寄存器主要有32个(32位或64位)通用寄存器(R02R31),32个浮点寄存器(F02F31)。一个程序计数器(PC),一个链接寄存器(L R),一个条件寄存器(CR),一个浮点状态和控制寄存器(FPSCR),其中R1、R14~R31是非易失性寄存器,R0、R3~R12是易失性寄存器,R0代码段专用,R1堆栈专用,R3~R10可用于变量传递。

用户级体系结构的指令系统主要有整型指令、浮点指令、读取和存储指令、跳转和流程控制指令,另外还有一些系统和处理器控制指令。

2 汇编实现

2.1 汇编模块嵌入

MVM E5100上运行的程序框架是C语言实现的,所以需要将汇编实现数据组装模块加入到现有框架中。主要有两种实现方式,且都是基于Tornado2.0集成开发环境:

1)直接编写独立的汇编程序

这种实现可以使用代码编辑器编写完整的汇编源程序,然后使用Tornado自带的独立编译程序ccppc.exe在命令行下将源程序编译成目标文件。ccppc.exe位于S YS:\Tornado\ ho st\x862win32\bin目录下。

使用编译命令ccppc?o yourfile.o yourfile.s获得目标文件,然后将目标文件添加到需要调用该模块的工程中。

2)C语言内联汇编

Tornado2.0编译器支持C语言的Power2 PC内联汇编,用内联标示将汇编实现代码按Power PC汇编语法内嵌到C语言代码中。这需要解决好如何分配寄存器,如何与C语言变量相结合的问题。

例:/3222222222C语言代码22222222223/

__asm__("li3,10");

/3222222222C语言代码2222222223/

内联可以嵌入部分汇编语句,或者嵌入整个汇编函数体。数据组装模块的汇编实现主要采用后者,这种方式可以减少变量传递与寄存器分配的复杂度,便于系统调用维护并且在函数体内可以统一规划使用寄存器。

2.2 C与汇编的调用接口

Power PC体系结构中,通用寄存器R3~R10可用于函数变量传递,R3、R4还用于数据返回,并且R3必须作为传递第1个参数的寄存器。Power PC堆栈结构是使用R1寄存器把所有堆栈构成一个单向链表,链表增长方向是从高地址到低地址,而堆栈内部变量的增长方向是从低地址到高地址(图2)。堆栈指针总是指向当前执行函数堆栈段的最低位,新的堆栈创建总是在相邻下一个更低位的可用内存

图2 PowerPC堆栈结构

当一个函数调用另一个函数时,底层实现过程是首先将传递的参数值保存到从R32R10的寄存器中,然后跳转到被调用函数的入口点。而被调用函数必须在函数入口点创建一个新的堆栈段,在堆栈创建完毕并保存好非易失性寄存器之后,将R3~R10寄存器中的参数值保存,即完成了变量传递。被调用函数在返回前,要将返回值保存到R3、R4寄存器,并在恢复原非易失性寄存器和释放堆栈之后返回。

汇编函数按以上规则定义入口点及参数传入传出,C程序就可以与调用其它C函数一样调用汇编函数。

2.3 局变量的引用

函数功能实现过程中常常需要使用到全局变量。汇编代码中使用全局变量,首先要用. extern预处理宏将需要的全局变量从符号表中引用过来,然后在程序实现中作为数据段标示符来获得该全局变量首地址。

2.4 重要细节

1)Power PC的通用寄存器中,R142R31为非易失性寄存器,而程序中使用非易失性寄存器之前,必须保存所有可能用到的非易失性寄存器中从最小号到R31的所有寄存器。

如果可能用到的非易失性寄存器中最小号寄存器是R20,那么必须保存从R20到R31的

497

计算机组装部zho,PowerPC汇编实现BES Ⅲ数据获取读出系统机箱级数据组装相关推荐

  1. PowerPC VxWorks BSP分析(2)--PowerPC汇编

    PowerPC汇编 这里总结PPC指令集中几种常用的指令. 首先为运算和逻辑指令,它与通用寄存器有关,源数据来自GPR或16位立即数,目的是GPR寄存器,操作为32位,GPR中存放32位更新数据,大多 ...

  2. 小学少年宫计算机组活动教案,小学少年宫计算机兴趣小组活动记录表汇编

    <小学少年宫计算机兴趣小组活动记录表汇编>由会员分享,可在线阅读,更多相关<小学少年宫计算机兴趣小组活动记录表汇编(10页珍藏版)>请在人人文库网上搜索. 1.小学少年宫计算机 ...

  3. 全国计算机等级考试office无纸化考试,全国计算机等级考试真题汇编与专用题库 二级MS Office高级应用 2016年无纸化考试专用...

    <全国计算机等级考试真题汇编与专用题库--二级MS Office高级应用>是依据教育部考试中心颁布的<全国计算机等级考试大纲>及无纸化真考题库编写而成的.<全国计算机等级 ...

  4. java计算机毕业设计华北地区阔叶林木叶部病虫害图像管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计华北地区阔叶林木叶部病虫害图像管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计华北地区阔叶林木叶部病虫害图像管理系统源码+mysql数据库+系统+lw ...

  5. 大学计算机试题汇编,最新全国大学生计算机一级考试模拟试题汇编

    最新全国大学生计算机一级考试模拟试题汇编 全国大学生计算机一级考试模拟试题 一.选择题 1.下列软件中__B__一定是系统软件. A.自编的一个C程序,功能是求解一个一元二次方程 B.WINDOWS操 ...

  6. 全国计算机等级考试无纸化专用题库二级c语言答案,全国计算机等级考试真题汇编与专用题库二级C语言2017年无纸化考试专用...

    内容提要 < 2017年 全国计算机等级考试真题汇编与专用题库 二级C语言>依据教育部考试中心新颁布的<全国计算机等级考试大纲>及新无纸化真考题库编写而成.本书内容充分考虑考生 ...

  7. Powerpc汇编编译学习笔记

    Powerpc汇编编译学习笔记 本篇文章结合网上学习的部分知识,搭建对于Powerpc的编译环境. 1.准备 本人使用Fedora 33 64bit虚拟机 核心Binutils用于对二进制文件进行处理 ...

  8. 如何看懂PowerPC汇编之指令集架构

    看懂PowerPC汇编,需要如下3方面的知识: PowerPC指令集架构即Power ISA,可以从Power.org获得,包括寄存器定义,数据模型,寻址方式和指令定义以及指令助记符: PowerPC ...

  9. java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试 ...

最新文章

  1. 网络访问:本地账号的共享和安全模式设置身份验证后自动更改其他验证的处理方法 ...
  2. opt eclipse jre bin java_Linux下安装JDK和Eclipse的配置方法
  3. 431.chapter10. working with flat files
  4. 解决eclipse 文件更新不自动刷新的问题
  5. 解决思维导图软件Mindmanager Mindjet连接出错
  6. matlab能否用递推公式给出表达式,matlab定积分运算
  7. 木讷的程序员需要知道的事情 (三)
  8. 有你真好,我的程序员老公
  9. php 系统分隔符,php脚本由哪个分隔符包围
  10. 训练指南 UVALive - 4043(二分图匹配 + KM算法)
  11. 不确定性量化 (UQ) 可以显著提高预测准确性,在不确定的世界中获得最佳结果昆士兰大学Mike McKerns-中国学者网
  12. 【天光学术】中国哲学论文:以老子为例看中国哲学的思辨体系
  13. 昌乐一中2021年高考成绩查询,喜 报
  14. ICCV2017跟踪算法BACF原理及代码解析
  15. C#之 十九 使用WinForm控件
  16. 压缩感知测量矩阵构造方法研究
  17. 生态系统更新:区块链操作系统上的主流开发人员
  18. 河海大学厕所上吊自杀 为情所困再发2起命案
  19. 食品行业B2B电子商务网站数据驱动,构建深度智能B2B商业体系
  20. Windows Terminal添加、使用主题

热门文章

  1. 【前端笔记】SCSS学习篇之一:基础入门
  2. 计算机二级要学的函数有哪些,2017年计算机二级考试MS office 常用函数
  3. 【一看就懂】tf.logical_and(),tf.logical_or(),tf.logical_not(),tf.logical_xor()
  4. Python 图片与pdf相互转换
  5. android 使用mediaplayer播放视频的时候设置请求头header
  6. 数学之美2 - 概率篇
  7. 听音乐用什么蓝牙耳机好?音质好的tws蓝牙耳机推荐
  8. 商业智能 BI 赋能年底的财务分析
  9. Java面向对象案例——购物车
  10. Python——模块:模块就是程序