CLI裡面的秘密 (一)總體介紹,以及CIL

2021-09-05 13:13:32 字數 1402 閱讀 1247

不知道大家對於common language infrastructure有什麼認識呢?

「噢!天啊!看到那麼幾個英文我就頭痛了!」

如果真是這樣,那麼你就沒有辦法繼續看下去了,因為這裡面的東西基本上只能夠找到英文的資料。

int a = a + b + c + d + e + f + g + h + i;

80x86 asm

cil

0000004c 8b 54 24 10 mov edx,dword ptr [esp+10h] 00000050 03 54 24 14 add edx,dword ptr [esp+14h] 00000054 03 54 24 18 add edx,dword ptr [esp+18h] 00000058 03 54 24 1c add edx,dword ptr [esp+1ch] 0000005c 03 54 24 20 add edx,dword ptr [esp+20h] 00000060 03 d5 add edx,ebp 00000062 03 d6 add edx,esi 00000064 03 d3 add edx,ebx 00000066 03 d7 add edx,edi 00000068 89 54 24 10 mov dword ptr [esp+10h],edx

il_0000: 06 ldloc.0 // a il_0001: 07 ldloc.1 // b il_0002: 08 ldloc.2 // c il_0003: 09 ldloc.3 // d il_0004: 11 04 ldloc.s e il_0006: 11 05 ldloc.s f il_0008: 11 06 ldloc.s g il_000a: 11 07 ldloc.s h il_000c: 11 08 ldloc.s i il_000e: 58 add // stack[top] = stack[top--] + stack[top--] = stack[top] = h + i; il_000f: 58 add // stack[top] = g + h + i il_0010: 58 add // = f + g + h + i il_0011: 58 add // = e + f + g + h + i il_0012: 58 add // = d + e + f + g + h + i il_0013: 58 add // = c + d + e + f + g + h + i il_0014: 58 add // = b + c + d + e + f + g + h + i il_0015: 58 add // = a + b + c + d + e + f + g + h + i il_0016: 0a stloc.0 // a = ...

牢記這是乙個棧式機,所有指令都和棧有關。

注意當前函式是否為靜態函式

就這麼多了

難道您只想知道這麼多嗎?不想知道cli包括些什麼東西嗎?甚至連實際讀一次il都不想試一下嗎?

專案進度(一) 總體架構

我們製作的專案是果蔬自動識別計價秤,用來自動識別並計價,節省超市的人力成本。專案的總體架構為 採用arduino是因為 簡單清晰的開發 arduino ide基於processing ide開發,有著足夠的靈活性。arduino語言基於wiring語言開發,不需要太多的微控制器基礎 程式設計基礎,簡...

軟考(一)總體總結

軟考涉及到的知識面非常廣,可是大部分都是以前學習過的知識,剛開始看書的時候感覺知識非常多,非常凌亂,經過一番疏通,將知識分類。瞬間清晰了不少,見下圖 導圖思路 總體上,我把軟考的知識塊劃分為三類,各自是計算機,軟體project和其它資訊保安和規範化相關知識三個部分,我們的考試叫做全國計算機技術與軟...

執行緒池體系(一) 總體概述

執行緒池頂級介面,只定義了乙個執行無返回值任務的方法。public inte ce executor 執行緒池次級介面,對executor做了一些擴充套件,主要增加了關閉執行緒池 執行有返回值任務 批量執行任務的方法。public inte ce executorservice extends ex...