豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 519 行 · 29712 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「编译器核心」之「网页汇编核心」之「二进制生成」之书。
寻观「裸机后端」之「机器编码」之书。
寻观「裸机后端」之「散列二五六」之书。
寻观「裸机后端」之「链接格式写出」之书。

「:文言:马赫格式者,苹果系统所载之可执行文件也。此写动态可执行之形:零页、文本、数据、链接编辑四段;所导之符,由 dyld 依绑定之码填于数据段之槽;唯链 libSystem;文末附特设之签名,臂之苹果系统无签则不行。汉语:Mach-O 64 位可执行文件写出器(macOS)。生成由 dyld 装载的可执行文件:__PAGEZERO、__TEXT、__DATA、__LINKEDIT 四个段;导入符号经 LC_DYLD_INFO_ONLY 的绑定操作码由 dyld 写进数据段的指针槽;只链接 libSystem;文件末尾附特设(ad-hoc)代码签名,arm64 macOS 不执行未签名的程序。:」

「马赫页」乃「整数」也。
「:文言:段以一万六千三百八十四对齐,苹果芯片之页大也;四千九十六之页亦可载。汉语:段按 16 KiB 对齐(Apple 芯片的页大小),4 KiB 页的 x86-64 也能映射。:」
「马赫页」者「一六三八四」也。

「马赫签页」乃「整数」也。
「:文言:签名每四千九十六字节一散列。汉语:代码签名每 4096 字节一个页散列。:」
「马赫签页」者「四零九六」也。

「马赫代码偏移」乃「整数」也。
「:文言:代码居文件之一千二十四字节处,亦文本段内之偏;其前为头与诸命令。汉语:代码放在文件偏移 1024(也是 __TEXT 段内偏移),前面是文件头(32 字节)与加载命令(776 字节)。:」
「马赫代码偏移」者「一零二四」也。

「马赫命令数」乃「整数」也。
「马赫命令数」者「一三」也。

「马赫命令长」乃「整数」也。
「马赫命令长」者「七七六」也。

「:文言:代码之虚址,零页之大加代码之偏。汉语:代码起始虚址:__TEXT 紧接 __PAGEZERO,从零页大小处开始。:」
「马赫代码虚址」乃化「整数」而「整数」也。
「马赫代码虚址」者会「零页」而
  「加」于「零页」于「马赫代码偏移」
也。

「:文言:文本段之长,头、命令与代码合而对齐于页。汉语:__TEXT 段长:文件头、加载命令与代码合计,按页向上对齐。:」
「马赫文本长」乃化「整数」而「整数」也。
「马赫文本长」者会「代码长」而
  「向上对齐」于(「加」于「马赫代码偏移」于「代码长」)于「马赫页」
也。

「:文言:数据段之虚址,续于文本段之后。代码以相对寻址及之,故须先知。汉语:__DATA 段虚址紧接 __TEXT 段;代码用 PC 相对寻址访问数据与导入槽,生成代码前需要它。:」
「马赫数据虚址」乃化「整数」而化「整数」而「整数」也。
「马赫数据虚址」者会「零页」而会「代码长」而
  「加」于「零页」于(「马赫文本长」于「代码长」)
也。

「:文言:段名、节名占十六字节,不足补零。汉语:段名与节名字段:16 字节,右补零。:」
「马赫名」乃化「字符串」而「字节串」也。
「马赫名」者会「名」而
  虑「字」者「字符串转字节串」于「名」而
  「拼接字节串」于「字」于(「零字节」于(「减」于「一六」于(「字节串长度」于「字」)))
也。

「:文言:节头八十字节:节名、段名、虚址、长、偏、对齐之幂、标。汉语:section_64(80 字节):节名、段名、虚址、长度、文件偏移、对齐(2 的幂次)、标志;无重定位。:」
「马赫节」乃
  化「字符串」而
  化「字符串」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  「字节串」
也。
「马赫节」者会「节名」而会「段名」而会「址」而会「长」而会「偏」而会「齐」而会「标」而
  「网页拼字节」于(「列」【
    「马赫名」于「节名」,
    「马赫名」于「段名」,
    「小端字节」于「八」于「址」,
    「小端字节」于「八」于「长」,
    「小端字节」于「四」于「偏」,
    「小端字节」于「四」于「齐」,
    「零字节」于「八」,
    「小端字节」于「四」于「标」,
    「零字节」于「一二」
  】)
也。

「:文言:段命令:名、虚址、内存之长、文件之偏与长、权,及其诸节。权以读四、写二、执行一相加。汉语:LC_SEGMENT_64(72 字节加每节 80 字节):段名、虚址、内存长、文件偏移、文件长、权限(读 4、写 2、执行 1,最大权限与初始权限相同)及其节。:」
「马赫段命令」乃
  化「字符串」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  化(「列」于「字节串」)而
  「字节串」
也。
「马赫段命令」者会「名」而会「址」而会「大」而会「偏」而会「长」而会「权」而会「节们」而
  虑「节数」者「长度」授以「字节串」于「节们」而
  「网页拼字节」于(「列」【
    「小端字节」于「四」于「二五」,
    「小端字节」于「四」于(「加」于「七二」于(「乘」于「八零」于「节数」)),
    「马赫名」于「名」,
    「小端字节」于「八」于「址」,
    「小端字节」于「八」于「大」,
    「小端字节」于「八」于「偏」,
    「小端字节」于「八」于「长」,
    「小端字节」于「四」于「权」,
    「小端字节」于「四」于「权」,
    「小端字节」于「四」于「节数」,
    「小端字节」于「四」于「零」,
    「网页拼字节」于「节们」
  】)
也。

「:文言:绑定之码:每导入一符,定库序一、书符名、定类为指针、定段二与其偏、行绑定;终以止码,补零至八之倍。汉语:绑定操作码:每个导入依次为 SET_DYLIB_ORDINAL_IMM 1(libSystem)、SET_SYMBOL_TRAILING_FLAGS_IMM 加以零结尾的符号名、SET_TYPE_IMM 指针、SET_SEGMENT_AND_OFFSET_ULEB(第 2 段即 __DATA,偏移为 ULEB128)、DO_BIND;最后 DONE,补零到 8 的倍数。:」
「马赫绑定码」乃化(「列」于(「字符串」合「整数」))而「字节串」也。
「马赫绑定码」者会「导入们」而
  虑「码」者
    「网页拼字节」于(「列」【
      「网页拼字节」于(「态射」授以(「字符串」合「整数」)授以「字节串」
        于「导入们」
        于(会「项」而
          「网页拼字节」于(「列」【
            「单字节串」于「一七」,
            「单字节串」于「六四」,
            「字符串转字节串」于(「项」中「零」),
            「单字节串」于「零」,
            「单字节串」于「八一」,
            「单字节串」于「一一四」,
            「网页无符号编码」于(「项」中「一」),
            「单字节串」于「一四四」
          】))),
          「单字节串」于「零」
    】)
  而
  虑「长」者「字节串长度」于「码」而
  「拼接字节串」于「码」于(「零字节」于(「减」于(「向上对齐」于「长」于「八」)于「长」))
也。

「:文言:代码目录:以大端书其头八十八字节,次标识,次每页之散列。所签者,文件自首至签名之前也。汉语:CodeDirectory(版本 0x20400,大端):88 字节头,随后是以零结尾的标识,再后是每 4096 字节一个 SHA-256 页散列。签名覆盖从文件开头到签名之前的全部字节;标志为特设签名兼链接器签名(0x20002);可执行段取 __TEXT,标为主程序。:」
「马赫代码目录」乃化「字节串」而化「字节串」而化「整数」而「字节串」也。
「马赫代码目录」者会「未签」而会「标识」而会「文本长」而
  虑「限」者「字节串长度」于「未签」而
  虑「槽数」者
    「除以」于(「加」于「限」于(「减」于「马赫签页」于「一」))于「马赫签页」而
    虑「散列们」者
      「网页拼字节」于(「态射」授以「整数」授以「字节串」
        于(「整数范围」于「零」于「槽数」)
        于(会「号」而
        虑「始」者「乘」于「号」于「马赫签页」而
        虑「余」者「减」于「限」于「始」而
        「散列二五六段」于「未签」于「始」于(
          若「小于」于「余」于「马赫签页」则「余」否则「马赫签页」)))
    而
    虑「散列偏移」者「加」于「八八」于(「字节串长度」于「标识」)而
    「网页拼字节」于(「列」【
      「大端字节」于「四」于「四二零八八五六零六六」,
      「大端字节」于「四」于(「加」于「散列偏移」于(「字节串长度」于「散列们」)),
      「大端字节」于「四」于「一三二零九六」,
      「大端字节」于「四」于「一三一零七四」,
      「大端字节」于「四」于「散列偏移」,
      「大端字节」于「四」于「八八」,
      「大端字节」于「四」于「零」,
      「大端字节」于「四」于「槽数」,
      「大端字节」于「四」于「限」,
      「单字节串」于「三二」,
      「单字节串」于「二」,
      「单字节串」于「零」,
      「单字节串」于「一二」,
      「零字节」于「三二」,
      「大端字节」于「八」于「文本长」,
      「大端字节」于「八」于「一」,
      「标识」,
      「散列们」
    】)
也。

「:文言:签名之超块:唯含代码目录一项。汉语:签名 SuperBlob:只含一个 CodeDirectory(槽类型 0,位于偏移 20)。:」
「马赫签名」乃化「字节串」而化「字节串」而化「整数」而「字节串」也。
「马赫签名」者会「未签」而会「标识」而会「文本长」而
  虑「目录」者「马赫代码目录」于「未签」于「标识」于「文本长」而
  「网页拼字节」于(「列」【
    「大端字节」于「四」于「四二零八八五六二五六」,
    「大端字节」于「四」于(「加」于「二零」于(「字节串长度」于「目录」)),
    「大端字节」于「四」于「一」,
    「大端字节」于「四」于「零」,
    「大端字节」于「四」于「二零」,
    「目录」
  】)
也。

「:文言:数据段之距:自映像之始至数据段之虚址;小于文本段之长者,数据段紧随文本段。汉语:带数据段距离的版本:最后一个参数是数据段虚址相对映像起址(即 __PAGEZERO 之后)的距离;小于 __TEXT 段长时数据段紧接 __TEXT。文本段与数据段之间的空隙不映射,位置无关的代码可按固定距离找到数据段。:」
「:文言:成可执行之文件。臂者,位置无关者,零页之大,代码,入口在代码之偏,数据,数据之内存长,导入之符与其在数据段之偏,签名之标识。代码之虚址与数据之虚址,以「马赫代码虚址」「马赫数据虚址」先求之。命令凡十三:四段;动态装载之讯唯有绑定;符号表空而串表八字节;空之动态符号表;装载器之径;标识取代码与数据散列之前十六字节;平台为苹果桌面,最低十一;主入口;链 libSystem;签名。汉语:生成完整的 Mach-O 可执行文件。参数依次为:是否 arm64(否则 x86-64)、是否位置无关(MH_PIE)、__PAGEZERO 大小(__TEXT 由此开始)、代码、入口在代码内的偏移、数据段初值、数据段内存长(超出初值部分零填充)、导入列表(符号名,如 _write,与其指针槽在数据段内的偏移)、签名标识。代码与数据的虚址可先用「马赫代码虚址」「马赫数据虚址」求出。加载命令共十三条:四个段;LC_DYLD_INFO_ONLY 只有绑定信息(无重定基、弱绑定、延迟绑定与导出表);LC_SYMTAB 无符号、字符串表 8 个零字节;空的 LC_DYSYMTAB;LC_LOAD_DYLINKER;LC_UUID 取代码与数据散列的前 16 字节;LC_BUILD_VERSION 平台 macOS、最低版本 11.0;LC_MAIN;LC_LOAD_DYLIB libSystem;LC_CODE_SIGNATURE。:」
「:文言:尾块:大模块附于 __LINKEDIT 之内、签名之前,为签名所覆;其后十六字节为尾标:“YUYANMOD”与八字节之长。执行器自读其文件,依 LC_CODE_SIGNATURE 之 dataoff 寻之。汉语:尾块:把大模块(例如预编后的编译器)放进 __LINKEDIT、代码签名之前(受签名覆盖),其后紧跟 16 字节尾标(“YUYANMOD”加 8 字节长度),尾标正好结束在签名起点。执行器启动时读自己的可执行文件,按 LC_CODE_SIGNATURE 的 dataoff 找到它。块为空时不写尾标。:」
「马赫尾标」乃化「整数」而「字节串」也。
「马赫尾标」者会「块长」而
  若「大于」于「块长」于「零」则
    「拼接字节串」于(「字符串转字节串」于『YUYANMOD』)于(「小端字节」于「八」于「块长」)
  否则
    「空字节串」于「元」
也。

「:文言:调试之符号表:每符一项十六字节(名于串表之偏、类型〇x0e 为节内之局部符、节一即 __text、描述〇、虚址);串表首字节为零,诸名各以零终,补零至八之倍。无符则串表唯八零字节,与旧逐字同。唯供 sample、lldb 诸器示函数之名,不与于装载。汉语:调试符号表(LC_SYMTAB):每个符号一个 16 字节的 nlist_64(名字在串表里的偏移、类型 0x0e 即定义在节内的局部符号、节号 1 即 __text、描述 0、虚址);串表首字节为 0,名字依次以零结尾,末尾补零到 8 的倍数。没有符号时串表只有 8 个零字节,与原先逐字节相同。只供 sample、lldb 等工具显示函数名,不参与装载。:」
「马赫串表」乃化(「列」于(「字节串」合「整数」))而「字节串」也。
「马赫串表」者会「符号们」而
  虑「体」者
    「网页拼字节」
      于(「缀」
        于(「机器单字节」于「零」)
        于(「态射」授以(「字节串」合「整数」)授以「字节串」
          于「符号们」
          于(会「符」而「拼接字节串」于(「符」中「零」)于(「机器单字节」于「零」))))
  而
  虑「长」者「字节串长度」于「体」而
  虑「齐长」者
    「向上对齐」于(若「小于」于「长」于「八」则「八」否则「长」)于「八」
  而
  「拼接字节串」于「体」于(「零字节」于(「减」于「齐长」于「长」))
也。

「马赫符号项们」乃化(「列」于(「字节串」合「整数」))而「字节串」也。
「马赫符号项们」者会「符号们」而
  递归虑「逐」其化(「列」于(「字节串」合「整数」))而化「整数」而化(「列」于「字节串」)而「字节串」者会「余」而
  会「偏」而
  会「逆」而
  鉴「余」而
    有「罄」则「网页拼字节」于(「反转」授以「字节串」于「逆」)
    或有「缀」于「首」于「尾」则
      「逐」
        于「尾」
        于(「加」于「偏」于(「加」于(「字节串长度」于(「首」中「零」))于「一」))
        于(「缀」
          于(「网页拼字节」
            于(「列」【
              「小端字节」于「四」于「偏」,
              「机器单字节」于「一四」,
              「机器单字节」于「一」,
              「小端字节」于「二」于「零」,
              「小端字节」于「八」于(「首」中「一」)
            】))
            于「逆」)
  而
  「逐」于「符号们」于「一」于(「罄」授以「字节串」)
也。

「:文言:带符号之版:末参为调试之符号(名与虚址)。汉语:带调试符号的版本:最后一个参数是调试符号(名字字节串与虚址),写进 LC_SYMTAB;其余同「生成马赫可执行带距」。:」
「生成马赫可执行带符号」乃
  化「爻」而
  化「爻」而
  化「整数」而
  化「字节串」而
  化「整数」而
  化「字节串」而
  化「整数」而
  化(「列」于(「字符串」合「整数」))而
  化「字符串」而
  化「整数」而
  化「字节串」而
  化(「列」于(「字节串」合「整数」))而
  「字节串」
也。
「生成马赫可执行带符号」者
  会「臂」而
  会「位置无关」而
  会「零页」而
  会「代码」而
  会「入口」而
  会「数据」而
  会「数据内存」而
  会「导入们」而
  会「标识名」而
  会「数据距」而
  会「尾块」而
  会「符号们」而
  虑「代码长」者「字节串长度」于「代码」而
  虑「块长」者「字节串长度」于「尾块」而
  虑「附长」者
    (若「大于」于「块长」于「零」则「加」于「块长」于「一六」否则「零」)而
    虑「数据长」者「字节串长度」于「数据」而
    虑「文本长」者「马赫文本长」于「代码长」而
    虑「数据址」者
      「加」于「零页」于(若「小于」于「数据距」于「文本长」则「文本长」否则「数据距」)
    而
    虑「数据文件长」者「向上对齐」于「数据长」于「马赫页」而
    虑「数据最大」者
      若「小于」于「数据内存」于「数据长」则「数据长」否则「数据内存」
    而
    虑「数据内存长」者
      「向上对齐」于(若「小于」于「数据最大」于「一」则「一」否则「数据最大」)于「马赫页」
    而
    虑「编偏」者「加」于「文本长」于「数据文件长」而
    虑「编址」者「加」于「数据址」于「数据内存长」而
    虑「绑定」者「马赫绑定码」于「导入们」而
    虑「符号偏」者「加」于「编偏」于(「字节串长度」于「绑定」)而
    虑「符号数」者「长度」授以(「字节串」合「整数」)于「符号们」而
    虑「符号项」者「马赫符号项们」于「符号们」而
    虑「串表」者「马赫串表」于「符号们」而
    虑「串表偏」者「加」于「符号偏」于(「字节串长度」于「符号项」)而
    虑「签偏」者
      「向上对齐」于(「加」于(「加」于「串表偏」于(「字节串长度」于「串表」))于「附长」)于「一六」
    而
    虑「标识」者
      「拼接字节串」于(「字符串转字节串」于「标识名」)于(「单字节串」于「零」)
    而
    虑「槽数」者
      「除以」于(「加」于「签偏」于(「减」于「马赫签页」于「一」))于「马赫签页」
    而
    虑「签长」者
      「向上对齐」
        于(「加」于「一零八」于(「加」于(「字节串长度」于「标识」)于(「乘」于「三二」于「槽数」)))
        于「一六」
    而
    虑「编长」者「减」于(「加」于「签偏」于「签长」)于「编偏」而
    虑「标识码」者
      「截取字节串」于(「散列二五六」于(「拼接字节串」于「代码」于「数据」))于「零」于「一六」
    而
    虑「命令们」者
      「网页拼字节」于(「列」【
        「马赫段命令」于『__PAGEZERO』于「零」于「零页」于「零」于「零」于「零」
        于(「罄」授以「字节串」),
        「马赫段命令」
          于『__TEXT』
          于「零页」
          于「文本长」
          于「零」
          于「文本长」
          于「五」
          于(「列」【
            「马赫节」
              于『__text』
              于『__TEXT』
              于(「马赫代码虚址」于「零页」)
              于「代码长」于「马赫代码偏移」于「二」于「二一四七四八四六七二」
          】),
          「马赫段命令」
            于『__DATA』
            于「数据址」
            于「数据内存长」
            于「文本长」
            于「数据文件长」
            于「三」
            于(「列」【「马赫节」于『__data』于『__DATA』于「数据址」于「数据长」于「文本长」于「三」于「零」】),
            「马赫段命令」
              于『__LINKEDIT』
              于「编址」
              于(「向上对齐」于「编长」于「马赫页」)
              于「编偏」于「编长」于「一」
              于(「罄」授以「字节串」),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「二一四七四八三六八二」,
                「小端字节」于「四」于「四八」,
                「零字节」于「八」,
                「小端字节」于「四」于「编偏」,
                「小端字节」于「四」于(「字节串长度」于「绑定」),
                「零字节」于「二四」
              】),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「二」,
                「小端字节」于「四」于「二四」,
                「小端字节」于「四」于「符号偏」,
                「小端字节」于「四」于「符号数」,
                「小端字节」于「四」于「串表偏」,
                「小端字节」于「四」于(「字节串长度」于「串表」)
              】),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「一一」,
                「小端字节」于「四」于「八零」,
                「小端字节」于「四」于「零」,
                「小端字节」于「四」于「符号数」,
                「小端字节」于「四」于「符号数」,
                「小端字节」于「四」于「零」,
                「小端字节」于「四」于「符号数」,
                「零字节」于「五二」
              】),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「一四」,
                「小端字节」于「四」于「三二」,
                「小端字节」于「四」于「一二」,
                「字符串转字节串」于『/usr/lib/dyld』,
                「零字节」于「七」
              】),
              「网页拼字节」于(「列」【「小端字节」于「四」于「二七」,「小端字节」于「四」于「二四」,「标识码」】),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「五零」,
                「小端字节」于「四」于「二四」,
                「小端字节」于「四」于「一」,
                「小端字节」于「四」于「七二零八九六」,
                「小端字节」于「四」于「七二零八九六」,
                「小端字节」于「四」于「零」
              】),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「二一四七四八三六八八」,
                「小端字节」于「四」于「二四」,
                「小端字节」于「八」于(「加」于「马赫代码偏移」于「入口」),
                「小端字节」于「八」于「零」
              】),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「一二」,
                「小端字节」于「四」于「五六」,
                「小端字节」于「四」于「二四」,
                「小端字节」于「四」于「二」,
                「小端字节」于「四」于「六五五三六」,
                「小端字节」于「四」于「六五五三六」,
                「字符串转字节串」于『/usr/lib/libSystem.B.dylib』,
                「零字节」于「六」
              】),
              「网页拼字节」于(「列」【
                「小端字节」于「四」于「二九」,
                「小端字节」于「四」于「一六」,
                「小端字节」于「四」于「签偏」,
                「小端字节」于「四」于「签长」
              】)
      】)
    而
    虑「检」者
      若「等于」于(「字节串长度」于「命令们」)于「马赫命令长」则
        「元」
      否则
        「发生事故」授以「有」于『马赫格式加载命令的长度与预计不符』
    而
    虑「头」者
      「网页拼字节」于(「列」【
        「小端字节」于「四」于「四二七七零零九一零三」,
        「小端字节」于「四」于(
          若「臂」则「一六七七七二二八」否则「一六七七七二二三」),
          「小端字节」于「四」于(
            若「臂」则「零」否则「三」),
            「小端字节」于「四」于「二」,
            「小端字节」于「四」于「马赫命令数」,
            「小端字节」于「四」于「马赫命令长」,
            「小端字节」
              于「四」
              于(若「位置无关」则「二零九七二八五」否则「一三三」),
              「小端字节」于「四」于「零」
      】)
    而
    虑「前」者
      「定位拼合」
        于「零」
        于(「列」【
          「零」与(「拼接字节串」于「头」于「命令们」),
          「马赫代码偏移」与「代码」,
          「文本长」与「数据」,
          「编偏」与「绑定」,
          「符号偏」与「符号项」,
          「串表偏」与「串表」,
          (「减」于「签偏」于「附长」)与「尾块」,
          (「减」于「签偏」于(
            若「大于」于「块长」于「零」则「一六」否则「零」))与(「马赫尾标」于「块长」)
        】)
    而
    虑「未签」者
      「拼接字节串」于「前」于(「零字节」于(「减」于「签偏」于(「字节串长度」于「前」)))
    而
    虑「签」者「马赫签名」于「未签」于「标识」于「文本长」而
    「网页拼字节」于(「列」【「未签」,「签」,「零字节」于(「减」于「签长」于(「字节串长度」于「签」))】)
也。

「生成马赫可执行带距」乃
  化「爻」而
  化「爻」而
  化「整数」而
  化「字节串」而
  化「整数」而
  化「字节串」而
  化「整数」而
  化(「列」于(「字符串」合「整数」))而
  化「字符串」而
  化「整数」而
  化「字节串」而
  「字节串」
也。
「生成马赫可执行带距」者
  会「臂」而
  会「位置无关」而
  会「零页」而
  会「代码」而
  会「入口」而
  会「数据」而
  会「数据内存」而
  会「导入们」而
  会「标识名」而
  会「数据距」而
  会「尾块」而
  「生成马赫可执行带符号」
    于「臂」
    于「位置无关」
    于「零页」
    于「代码」
    于「入口」
    于「数据」
    于「数据内存」
    于「导入们」
    于「标识名」
    于「数据距」
    于「尾块」
    于(「罄」授以(「字节串」合「整数」))
也。

「生成马赫可执行」乃
  化「爻」而
  化「爻」而
  化「整数」而
  化「字节串」而
  化「整数」而
  化「字节串」而
  化「整数」而
  化(「列」于(「字符串」合「整数」))而
  化「字符串」而
  「字节串」
也。
「生成马赫可执行」者
  会「臂」而
  会「位置无关」而
  会「零页」而
  会「代码」而
  会「入口」而
  会「数据」而
  会「数据内存」而
  会「导入们」而
  会「标识名」而
  「生成马赫可执行带距」
    于「臂」
    于「位置无关」
    于「零页」于「代码」于「入口」于「数据」于「数据内存」于「导入们」于「标识名」于「零」
    于(「空字节串」于「元」)
也。