比如x86汇编,通用寄存器恰好8个,这是巧合么?其实是与我大天朝古代的八卦暗合了:
原名 | 中文
—–| —–
EAX | 乾
EBX | 坤
ECX | 坎
EDX | 离
ESI | 震
EDI | 巽
ESP | 艮
EBP | 兑
十六进制弱爆,我大天朝天干地支60进制,但是为了兼容性,好吧,就很生硬的十天干+五地支编码了1~F
1|2|3|4|5|6|7|8|9|A|B|C|D|E|F
—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—
甲|乙|丙|丁|戊|己|庚|辛|壬|癸|子|丑|寅|卯|辰
这时中文的伟大就提现出来了有没有,用他们洋鳖的阿拉伯数字的话,要区分十进制和十六进制需要加前缀后缀,0x神马的,h神马的,中文的话:
十进制:二百五
十六进制:辰子
至于指令神马的,洋鳖们又是mov,又是push,还pop,都不等长,多难看!中文的话移
,推
,弹
,都是一个字,多么整齐!
示例代码:
四八六 矣
平模 矣
码 矣
公 吾函
吾函 始
推 兑
移 兑, 艮
减 艮, 四
推 巽
推 震
移 乾, 存之兑增辛
移 震, 存之兑增丑
移 巽, 存之兑增甲零
移 存之兑去四, 巽
加 存之兑去四, 震
加 乾, 存之兑去四
弹 震
弹 巽
移 艮,兑
弹 兑
返
吾函 终
终
像武功秘籍对吧?
我们再来看看洋鳖们的写法:
.486
.MODEL FLAT
.CODE
PUBLIC _myFunc
_myFunc PROC
; Subroutine Prologue
push ebp ; Save the old base pointer value.
mov ebp, esp ; Set the new base pointer value.
sub esp, 4 ; Make room for one 4-byte local variable.
push edi ; Save the values of registers that the function
push esi ; will modify. This function uses EDI and ESI.
; (no need to save EBX, EBP, or ESP)
; Subroutine Body
mov eax, [ebp+8] ; Move value of parameter 1 into EAX
mov esi, [ebp+12] ; Move value of parameter 2 into ESI
mov edi, [ebp+16] ; Move value of parameter 3 into EDI
mov [ebp-4], edi ; Move EDI into the local variable
add [ebp-4], esi ; Add ESI into the local variable
add eax, [ebp-4] ; Add the contents of the local variable
; into EAX (final result)
; Subroutine Epilogue
pop esi ; Recover register values
pop edi
mov esp, ebp ; Deallocate local variables
pop ebp ; Restore the caller's base pointer value
ret
_myFunc ENDP
END
一点也不整齐,一点也不土气,居然还需要那么多奇怪的注释才能让人看懂这段代码,弱爆了!
程序员从此不再是手无束鸡之力的geek形象了有没有,给不明真相的围观妹纸随意朗诵一段中文汇编程序,立即就充满了武侠气质。
需要中文编程的少年们,学汇编去吧。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.