数学系大三了,学数值分析。老师总是说在下课是说:下去吧算法实现一下。我一开始为了**,就想用个汇编写的GUI程序来充胖子。结果事情比我想到麻烦多了,持持续续搞了几个月。今天总算搞定。 大致流程是这样的:程序有个启动画面(我抄的),然后会进行文件关联(到数据文件.hai),处理命令行参数,如果双击了数据文件就会用该程序打开,并且将文本显示在控件中,接着加载算法动态链接库,然后可对文本进行编辑,保存后,可以算法菜单进行相应计算(开启新线程,程序进行字符串解析,调用算法动态链接库中相应的算法,进行运算,此时主要是浮点指令),得出结果并写入结果文件中。 文本编辑主要用来罗云彬的记事本代码,我添加了一些功能。 我花了不少时间,但现在只实现了一种算法(拉格朗日插值),因为汇编写算法代码确实有点长,我想写一个就具有代表性了。这个程序使用价值并不大。但我通过它确实得到了锻炼,不再是光看书了。这个程序里面用到了很多东西:线程,动态链接库,内存映射文件,浮点指令,RichEdit控件,文件操作,文件流,注册表,命令行参数等等。在进行字符串解析的过程中,有限状态机和向后搜索这两两个概念对我帮助很大。难点还是在浮点处理部分,特别是字符串与浮点数的转换,一开始我自己写了很久,写好了才发现只能针对整数,又到处找浮点资料,找来找去也只找到写指令手册,最后才发现电脑里有,就在masm的开发包里。在这里要感谢Raymond Filiatreault,感谢他不仅分享代码,还做了浮点教程,他对我这种菜鸟帮助太大了。花了很多的时间找资料,今天总算写好了。由于快期末考试了以及其他原因,很多地方还没有细细加工,请见谅。 接下来我想好好看看《深入理解计算机系统》和数据结构与算法,尤其是后者,我想在寒假之内学好学扎实。 源代码及示例。 高手莫笑。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)