链接格式写出。测试。豫
yuyan · 186 行 · 11106 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「编译器核心」之「网页汇编核心」之「二进制生成」之书。
寻观「裸机后端」之「机器编码」之书。
寻观「裸机后端」之「链接格式写出」之书。
「:文言:验头之诸字段,并成二样例:书“豫言操作系统”一行,以退出码七终。汉语:核对 ELF 文件头与程序头的各字段;另生成两个样例可执行文件(臂与兼容各一),在工作目录写出 yy链接格式样例臂、yy链接格式样例兼,供在 Linux 上实际运行:向标准输出写一行“豫言操作系统”,以退出码 7 结束。:」
「链接验字」乃
化「字符串」而
化「字节串」而
化「整数」而
化(「列」于「整数」)而
「有」
也。
「链接验字」者会「名」而会「字」而会「始」而会「期」而
虑「检」者
「态射」授以「整数」授以「有」
于(「整数范围」于「零」于(「长度」授以「整数」于「期」))
于(会「号」而
若「等于」于(「字节串取字节」于「字」于(「加」于「始」于「号」))
于(「第N个」授以「整数」于「号」于「期」)则「元」
否则
「发生事故」于(『链接格式字段不符:』附「名」))
而
「元」
也。
「链接验数」乃
化「字符串」而
化「字节串」而
化「整数」而
化「整数」而
化「整数」而
「有」
也。
「链接验数」者会「名」而会「字」而会「始」而会「宽」而会「期」而
「链接验字」
于「名」
于「字」
于「始」
于(「态射」授以「整数」授以「整数」
于(「整数范围」于「零」于「宽」)
于(会「号」而「字节串取字节」于(「小端字节」于「宽」于「期」)于「号」))
也。
「四字节们」乃化(「列」于「整数」)而「字节串」也。
「四字节们」者会「码们」而
「网页拼字节」于(「态射」授以「整数」授以「字节串」于「码们」于(会「码」而「小端字节」于「四」于「码」))
也。
「样例消息」乃「字节串」也。
「样例消息」者「字符串转字节串」于『豫言操作系统
』也。
「:文言:臂样:x0 一,x1 消息之址,x2 长,x8 六十四(写),svc;x0 七,x8 九十三(退),svc。汉语:臂样例代码:write(1, 消息, 长) 后 exit(7)。消息放在 0x410000 的只读数据段。:」
「臂样例代码」乃「字节串」也。
「臂样例代码」者
「四字节们」于(「列」【
「三五三一六零四零零零」,
「三五三三七零三二零一」,
「加」于「三五三一六零三九七零」于(「乘」于(「字节串长度」于「样例消息」)于「三二」),
「三五三一六零六零二四」,
「三五五六七六九七九三」,
「三五三一六零四一九二」,
「三五三一六零六九五二」,
「三五五六七六九七九三」
】)
也。
「:文言:兼样:edi 一,esi 消息之址,edx 长,eax 一(写),syscall;edi 七,eax 六十(退),syscall。汉语:兼容样例代码:write(1, 消息, 长) 后 exit(7)。:」
「兼样例代码」乃「字节串」也。
「兼样例代码」者
「网页拼字节」于(「列」【
「单字节串」于「一九一」,
「小端字节」于「四」于「一」,
「单字节串」于「一九零」,
「小端字节」于「四」于「四二五九八四零」,
「单字节串」于「一八六」,
「小端字节」于「四」于(「字节串长度」于「样例消息」),
「单字节串」于「一八四」,
「小端字节」于「四」于「一」,
「单字节串」于「一五」,
「单字节串」于「五」,
「单字节串」于「一九一」,
「小端字节」于「四」于「七」,
「单字节串」于「一八四」,
「小端字节」于「四」于「六零」,
「单字节串」于「一五」,
「单字节串」于「五」
】)
也。
「样例可执行」乃化「爻」而「字节串」也。
「样例可执行」者会「臂」而
「生成链接格式可执行」
于「臂」
于「四一九四三零四」
于(「列」【
「载入段」于「四一九四三零四」于(
若「臂」则「臂样例代码」否则「兼样例代码」)于「四零九六」于「五」,
「载入段」于「四二五九八四零」于「样例消息」于「四零九六」于「四」,
「载入段」于「一零七三七四一八二四」于(「空字节串」于「元」)于「一零四八五七六」于「六」
】)
也。
「:文言:头之诸字段。汉语:文件头:魔数、64 位、小端、可执行类型、机器号、入口、程序头偏移与个数(三个载入段加一个栈头)。:」
「臂样」乃「字节串」也。
「臂样」者「样例可执行」于「阳」也。
「兼样」乃「字节串」也。
「兼样」者「样例可执行」于「阴」也。
「链接验字」
于『魔数』于「臂样」于「零」
于(「列」【「一二七」,「六九」,「七六」,「七零」,「二」,「一」,「一」,「零」】)。
「链接验数」于『类型』于「臂样」于「一六」于「二」于「二」。
「链接验数」于『臂机器号』于「臂样」于「一八」于「二」于「一八三」。
「链接验数」于『兼机器号』于「兼样」于「一八」于「二」于「六二」。
「链接验数」于『入口』于「臂样」于「二四」于「八」于「四一九四三零四」。
「链接验数」于『程序头偏移』于「臂样」于「三二」于「八」于「六四」。
「链接验数」于『程序头个数』于「臂样」于「五六」于「二」于「五」。
「:文言:头段:只读,起于文件偏移零,映于最低段之下六万五千五百三十六处,长即头长。汉语:第一个程序头是头段:PT_LOAD,只读,文件偏移 0,虚址 0x3F0000,文件长与内存长都是头长(64 + 56×5 = 344)。:」
「链接验数」于『头段类型』于「臂样」于「六四」于「四」于「一」。
「链接验数」于『头段权限』于「臂样」于「六八」于「四」于「四」。
「链接验数」于『头段偏移』于「臂样」于「七二」于「八」于「零」。
「链接验数」于『头段虚址』于「臂样」于「八零」于「八」于「四一二八七六八」。
「链接验数」于『头段文件长』于「臂样」于「九六」于「八」于「三四四」。
「:文言:代码段:可读可执行,偏移与虚址同余于六万五千五百三十六。汉语:第二个程序头是代码段:权限 读+执行,文件偏移 65536(与虚址 0x400000 同余),内容长 32,内存 4096,对齐 65536。:」
「链接验数」于『代码段类型』于「臂样」于「一二零」于「四」于「一」。
「链接验数」于『代码段权限』于「臂样」于「一二四」于「四」于「五」。
「链接验数」于『代码段偏移』于「臂样」于「一二八」于「八」于「六五五三六」。
「链接验数」于『代码段虚址』于「臂样」于「一三六」于「八」于「四一九四三零四」。
「链接验数」于『代码段文件长』于「臂样」于「一五二」于「八」于「三二」。
「链接验数」于『代码段内存长』于「臂样」于「一六零」于「八」于「四零九六」。
「链接验数」于『代码段对齐』于「臂样」于「一六八」于「八」于「六五五三六」。
「:文言:消息段之偏,续于代码段之后而同余。零内容之末段偏移取余数零、文件长零。汉语:消息段文件偏移为 131072,与虚址 0x410000 同余;零内容的末段偏移取余数 0、文件长 0。:」
「链接验数」于『消息段偏移』于「臂样」于「一八四」于「八」于「一三一零七二」。
「链接验数」于『末段偏移』于「臂样」于「二四零」于「八」于「零」。
「链接验数」于『末段文件长』于「臂样」于「二六四」于「八」于「零」。
「链接验数」于『末段内存长』于「臂样」于「二七二」于「八」于「一零四八五七六」。
「链接验数」于『栈头类型』于「臂样」于「二八八」于「四」于「一六八五三八二四八一」。
「:文言:段失其序者必拒。汉语:段未按虚址升序时拒绝生成。:」
「链接验拒」乃「有」也。
「链接验拒」者
虑「拒」者
「尝试运行」授以「爻」
于(会「无」而
虑「文」者
「生成链接格式可执行」
于「阳」
于「四一九四三零四」
于(「列」【
「载入段」于「四二五九八四零」于「样例消息」于「四零九六」于「四」,
「载入段」于「四一九四三零四」于「臂样例代码」于「四零九六」于「五」
】)
而
「阴」
)
于(会「错」而「是子字符串吗」于『升序』于「错」)
而
若「拒」则「元」否则「发生事故」于『乱序的载入段应被拒绝』
也。
「:文言:内容置于所算之偏。汉语:代码与消息确实位于算出的偏移处,文件在消息之后结束。:」
「链接验数」于『代码首字』于「臂样」于「六五五三六」于「四」于「三五三一六零四零零零」。
「链接验数」于『兼代码首字节』于「兼样」于「六五五三六」于「一」于「一九一」。
「链接验字」
于『消息』
于「臂样」
于「一三一零七二」
于(「态射」授以「整数」授以「整数」
于(「整数范围」于「零」于(「字节串长度」于「样例消息」))
于(会「号」而「字节串取字节」于「样例消息」于「号」))。
「链接验数」
于『文件总长』
于(「小端字节」于「八」于(「字节串长度」于「臂样」))
于「零」于「八」
于(「加」于「一三一零七二」于(「字节串长度」于「样例消息」))。
「:文言:书二样例于工作目录。汉语:写出两个样例文件,供 Linux 上运行验证。:」
「写臂样」乃「有」也。
「写臂样」者「文件系统」之「写文件字节串」于『yy链接格式样例臂』于「臂样」也。
「写兼样」乃「有」也。
「写兼样」者「文件系统」之「写文件字节串」于『yy链接格式样例兼』于「兼样」也。