摘要:本文设计并实现了一套面向RISC-V的汇编程序语义等价性自动化测试系统. 在面向RISC-V开发软件时, 尤其是基于扩展指令(例如向量指令)编写高效的程序时, 很难避免以手写汇编的方式编写代码. 例如, 为标准的C函数库编写相应的向量版函数. 与编译器自动生成的代码不同, 手写的汇编代码虽然可以最大限度地提高程序的效率, 但因绕过了编译时对程序的约束(如类型检查、寄存器分配等)而对开发者提出了更高的要求. 能否对新版本与标准版本的汇编程序进行快速地、自动化的语义等价性测试, 将大大影响代码的正确性和软件开发和调试的效率. 已有面向RISC-V的测试框架缺乏对语义等价性测试的支持, 也未考虑程序执行带来的副作用. 本研究基于模拟器的动态测试环境, 设计并实现了一套面向RISC-V的汇编程序语义等价性自动化测试系统. 系统通过跟踪机器状态, 捕获程序执行的副作用, 并结合用户定义的测试目标生成测试报告. 实验表明, 本系统相比已有的测试系统, 能够有效地对RISC-V汇编程序的语义等价性进行测试.