2016-12-04 86 views
-5

我是新來的c語言,希望建立將c語言映射到彙編語言的直覺,以便我可以對堆棧,註冊表,內存,代碼如何工作看到c代碼。我已經閱讀了幾本彙編語言書籍,主要關注彙編語法,而不是c和彙編之間的關係。有誰知道我在哪裏可以找到關於c和彙編語言之間的映射的書。將c語言映射爲彙編語言

+1

沒有「* map *」,不同的編譯器以不同的方式做,即使是相同的編譯器在不同的設置下也會有不同的做法 – harold

+0

C不需要堆棧,也不需要註冊。 – Olaf

回答

0

我不知道這樣一本書是否存在(如果有的話,它可能是一本關於編譯器的書)。但是,有一個更簡單的解決方案:嘗試一下。

編寫C代碼,然後用調試符號編譯(這些說明假設Linux的):

gcc foo.c -o foo 

然後,使用調試器:

gdb ./foo 
break MyFunction 
run 
disass 

這將設置一個斷點MyFunction,然後運行該程序直至達到該斷點。 disass將打印該功能的程序集。您可以使用stepi一次執行一條指令,或者使用next一次執行一條C指令。

+1

或者,運行'gcc -S foo.c'讓編譯器直接生成彙編文件(這可能會在彙編文件中留下更多關於映射的信息)。 – microtherion