- 博客(6)
- 收藏
- 关注
原创 OpenGL 绘制API统计
OpenGL 绘制API统计 项目中,需要对绘图程序进行统计分析,确定绘制所需的硬件资源。绘图程序使用OpenGL编写,初期,考虑使用静态扫描的方式对使用的API就种类和数量进行统计,同时,还应该保证程序能够正常运行。鉴于以上需求,使用define重载方式统计API,统计完成后调用glAPI完成绘图。如下1 #define glAPI 为glAPI_self 为了在不改变源程
2017-05-10 23:52:18
411
原创 openGL应用复杂度评价
在项目中,需要对使用openGL绘制的图形应用、场景就复杂度进行评价并预测同类应用的绘制效率。在有程序源码的条件下,从静态统计和动态运行两方面进行分析。如下图 静态统计关注的是程序代码,主要统计代码中调用图形绘制命令的种类和次数,从类别和数量上了解程序的大致规模。另一方面,在图形流水线中,基本图元在光栅化中会被拆分成点、线和三角形这三种图元,因此能够在静态分析中,用软件模拟拆分,了解光
2017-04-25 19:42:14
314
原创 汇编模拟执行器,执行单元的设计
在完成对汇编语言翻译的工作后,项目上需要在软件层面模拟汇编语言的执行,验证汇编语言实现算法的正确性。根据冯诺依曼体系,程序的执行包括输入、输出、运算器、存储和控制器。因此为了实现模拟器,需要建立负责运算的执行单元,存储的寄存器及相关存储和发射指令的控制器。如图 本文主要就执行单元的设计做出描述,软件执行单元的重点不在对指令的执行上,指令的执行依靠编程语言的运算完成,比如mov指令用赋值
2017-04-18 23:16:51
512
原创 排序模板链表的插入存储和二分查找
排序模板链表的插入存储和二分查找 在汇编工具中,需要将宏定义以链表的形式存储起来并进行二分查找。同时,像指令和函数内部标示因为具有先后顺序仅进行尾插和顺序遍历。之前对算法的设计进行过总结,本文主要就实现上进行梳理。 由于宏定义和指令所需储存的属性不同,但都用链表管理,所以实现时使用模板链表。另一方面,宏定义需要排序插入和二分查找,而指令仅需尾插和顺序遍历,顾需要两种不同的链表操作,实现
2017-04-17 12:25:02
775
原创 汇编器优化,指令名链表排序与二分查找
在汇编器的词法分析阶段,需要对获取的指令名进行有效性验证并保存对应的指令类型。然而,当前实现方法在效率和管理性方面还有不足,顾需进行优化,主要工作如下图。 前期实现时,为了快速匹配指令名,建立了一个与指令集对应的全局数组,该数组按字母表顺序索引指令名。具体而言就是将相同首字母的指令放入以该字母命名的一维数组中,26个字母索引数组共同构成全局数组。 该方法存在两方面的问题,1 需
2017-04-10 21:36:21
359
原创 汇编指令翻译器
汇编语言翻译器 项目上用自定义指令的汇编语言来写硬件驱动,需要将编写的汇编指令转换为机器识别的2进制码。同时,需要检测汇编程序中的错误,并进行统计。 整个翻译器包括获取存储单词,指令检测,翻译和统计三个部分。如下图 1,单词获取及存储 首先,需要从给定的程序文本文件中,获取单词,包括宏定义、全局变量、函数名、指令名、寄存器参数、立即数参数和其他符号。 单词的判断和分类
2017-04-07 17:22:51
11238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人