当前位置:首页 > 我的杂物 > 正文内容

nasm 的源码增加指令集完成所需要的指令助记符。

Peirre2年前 (2022-09-17)我的杂物316

现在介绍一下nasm 这个汇编语言程序的源码添加代码的方法和文件,

nasm可以用宏文件头方案解决问题。

我用的是最新版的nasm-2.16rc 2020年11月4日的最新版。说实话到现在已经过两年了。

10.jpg

这nasm的源码目录主要的目录是asm主源码和include 文件头目录 x86 就是指令集数据了。我们看一下。

11.jpg

我们看这三个文件内容, insnsd.c 这个文件是指令数据表,也就是指令助记符的定义。

insnsb.c 这个是自动生成的一个c文件,不可以手工编辑,用insns.pl 脚本提取insns.dat 文件数据。

insnsa.c 这个也是和insnsd.c 文件一样的。一个例本,一个应用本,nasm编译含其它机器码指令集。

这三个文件都是insns.pl 自动生成的。我也不太必要管它的细节问题。因为看源码也花时间。

我们直接看 insns.dat 数据。

13.jpg

这个regs.dat 是 CPU寄存器的数据,一般不要动它,因为现在的处理器都差不多,而且特殊的处理器不太通用。

如果有特别的商业应用。这里可以加定制的CPU处理器的寄存器系列。

14.jpg

这个insns.dat 是数据文件,一般不直接应用到程序中来,可以用上面提的PL语言脚本来分析它。

我们改指令,关键是改它就可以了。

其它的文件不管,有这几个文件就可以做到了。insns.dat 和 insns.pl 这两个处理一下就可以了。

asm 目录下的 nasm.h 是数据定义,这个加参数什么的可以加,不过要在其它地方实现。有深度的理解力才需要。

其它的文件是主文件的处理文件。

如 md5c 生成MD5的,CRC64.C 求和校验的。STRING.C 字符处理的。PATH.C 路径处理的,这些文件是原作者图方便加进来的。

程序主要在linux 下生成应用。可以用其它的环境编译。

Mkfiles 目录下的 msvc.mak 和openwcom.mak 是用 MSVC 2015 C++ 和 openwcom C++ 环境编译的。

VC可以学生版生成64位的windows 命令行程序,兼容 windows 窗口。 openwcom c 现在是兔费使用的。它的特点是386指令集编译。

以前的DOS游戏源码可以用它生成应用版。以前是商业软件。风靡一时。openwcom 环境下编译,参数要留意一下,图形界面不太好弄。

生成没太大的困难,但是产生的一些一般性问题要一一解决。没特别的不太爱用。但生成程序的确很爽快。

自己已经加了指令了,也没有必要公开,因为常用指令的还没跟进到这里,自己留备,汇编语言很多。这是改进方法。

看了一下指令集,amd 的 和 intel 的一般多媒体指令应用很新很全。我没有高端的CPU,所以生成完也没太大的意思。

够用就行,也算是行为指南吧。所有的适合就行,没那多的要求。个人的一个坏习惯总是改不了。一些格式不齐的文档,喜欢像捉虫式的把这些文件格式对齐。

也算是对程序的了解和自己的懒吧,思考度还是有限的。面面俱全也不太容易,有些程序思考的角度自己重制,还Hole不住。有一种无尽的能源浪费的感觉。

世界皆空啊!休息一下,休息一下。最近玩暗黑中文版有重制的,我这是老的改版。可以连战网,有战网注册文件,喜欢玩的可以跟进一下。

有 1.14的网络地图版。以后时间过了就没了,最少不能上网了。

找我索要啊,生活来源也要靠一下的。

暗黑游戏介绍内链

1.jpg


分享给朋友:

相关文章

架设自己的导弹防御系统(附电路图&PCB、雷达+导弹、纯雷达源码)-USB雷达

架设自己的导弹防御系统(附电路图&PCB、雷达+导弹、纯雷达源码)-USB雷达

雷达大家都见过(起码电视上见过),每次看到觉得很爽啊,能探测各种障碍物,要是自己能够拥有一个就太棒了。而有人不光敢想,更敢于将想法付诸实践(这也是我们所缺少的),他真的做出了一个非常酷的USB雷达。雷...

滤波扼流圈的设计与计算

滤波扼流圈的设计与计算

    1.铁芯截面积的计算公式:    Sc——铁芯截面积(厘米2)    L ——电感量(亨)&...

OBS 插件开发所需要的数据结构。

插件的四个入口:plugins_sourcesplugins_outputsplugins_encodersplugins_servicesOBS软件的三个主线程函数:obs_graphics_thr...

Dolphin 模拟器在WIN10和Linux mint 下使用真实的WII控制手柄。

Dolphin 模拟器在WIN10和Linux mint 下使用真实的WII控制手柄。

很多以前的WII游戏是可以在电脑上玩的。自从买了一张别人开发的WII模拟器集成软件之后,发现电脑使用WII模拟器一点也不难。Iplay 是一个体感游戏大厅,分收费零售版和免费版,免费版和收费零售版不一...

linux mint 下的网桥设置,附window 10 网桥的建立。

linux mint 下的网桥设置,附window 10 网桥的建立。

家有板载双网卡的电脑一台,一直以来都是正常使用。接一个网线,直接通过路由上网。另外一个网卡不知道怎么使用一直是备用状态。今天大年初一,心情比较轻松。于是试了一下另外的一个网卡。我的迷你电脑有两个端口,...

有幸找到IP分析源码。

有幸找到IP分析源码。

这两天翻硬盘资料,找到windows 2000关于网络IP的一份源码。看见网络上只有CSDN处有一份,于是贴了出来,含源码分析。inet_addr函数_misterliwei的专栏-CSDN博客_in...