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

Peirre2年前我的杂物253

现在介绍一下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


相关文章

微软Windows 10 下的网络互连命令行测试程序【它会装死!!!】

微软Windows 10 下的网络互连命令行测试程序【它会装死!!!】

刚刚重装一个windows 10 系统之后,购买了一个序列号,然后连网测试网络,使用的是ping命令,偶尔的机会发现它竟然会装死!!!。下面我介绍一下过程。本机IP地址是 192.168.31.238...

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

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

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

2018-1-31月全食

2018-1-31月全食

今天是150年来一次的月全食,刚刚上顶楼看了一下,没有做好准备,月亮拍照月亮小了点,于是,下楼在自己的房间上网看。今天终于看到了大月亮。截几张图片,这个视角,可以看月亮旁的飞机,汽车,房子。汽车,飞机...

Ubuntu Linux  19.10 下 完善街机模拟器。

Ubuntu Linux 19.10 下 完善街机模拟器。

Ubuntu linux 下有个共享软件库,可以用apt软件工具下载,当中有个街机模拟器叫mame。让我们一起免费在家玩街机游戏吧。nantz@nantz-desktop:~$ sudo apt li...

2020上半年在家里玩的游戏介绍。

2020上半年在家里玩的游戏介绍。

一大早晨起来休息了一下,现在是冠状病毒肺炎时期。在家休息出不了门,一大早玩游戏快打旋风,发现了一个广告牌,是非典的广告语。第二个游戏介绍最早的魂斗罗卡带256K日文版这个游戏的游戏名称叫Gryzor(...

滤波扼流圈的设计与计算

滤波扼流圈的设计与计算

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