汇编工具
kaykaykay333
这个作者很懒,什么都没留下…
展开
-
汇编指令翻译器
汇编语言翻译器 项目上用自定义指令的汇编语言来写硬件驱动,需要将编写的汇编指令转换为机器识别的2进制码。同时,需要检测汇编程序中的错误,并进行统计。 整个翻译器包括获取存储单词,指令检测,翻译和统计三个部分。如下图 1,单词获取及存储 首先,需要从给定的程序文本文件中,获取单词,包括宏定义、全局变量、函数名、指令名、寄存器参数、立即数参数和其他符号。 单词的判断和分类原创 2017-04-07 17:22:51 · 11291 阅读 · 0 评论 -
汇编器优化,指令名链表排序与二分查找
在汇编器的词法分析阶段,需要对获取的指令名进行有效性验证并保存对应的指令类型。然而,当前实现方法在效率和管理性方面还有不足,顾需进行优化,主要工作如下图。 前期实现时,为了快速匹配指令名,建立了一个与指令集对应的全局数组,该数组按字母表顺序索引指令名。具体而言就是将相同首字母的指令放入以该字母命名的一维数组中,26个字母索引数组共同构成全局数组。 该方法存在两方面的问题,1 需原创 2017-04-10 21:36:21 · 365 阅读 · 0 评论 -
汇编模拟执行器,执行单元的设计
在完成对汇编语言翻译的工作后,项目上需要在软件层面模拟汇编语言的执行,验证汇编语言实现算法的正确性。根据冯诺依曼体系,程序的执行包括输入、输出、运算器、存储和控制器。因此为了实现模拟器,需要建立负责运算的执行单元,存储的寄存器及相关存储和发射指令的控制器。如图 本文主要就执行单元的设计做出描述,软件执行单元的重点不在对指令的执行上,指令的执行依靠编程语言的运算完成,比如mov指令用赋值原创 2017-04-18 23:16:51 · 522 阅读 · 0 评论 -
排序模板链表的插入存储和二分查找
排序模板链表的插入存储和二分查找 在汇编工具中,需要将宏定义以链表的形式存储起来并进行二分查找。同时,像指令和函数内部标示因为具有先后顺序仅进行尾插和顺序遍历。之前对算法的设计进行过总结,本文主要就实现上进行梳理。 由于宏定义和指令所需储存的属性不同,但都用链表管理,所以实现时使用模板链表。另一方面,宏定义需要排序插入和二分查找,而指令仅需尾插和顺序遍历,顾需要两种不同的链表操作,实现原创 2017-04-17 12:25:02 · 782 阅读 · 0 评论