您好,登錄后才能下訂單哦!
1、深入Linux內核的前提
因為以前學習過intel的x86匯編語言,所以本文就不在講述匯編的基本語法了;
內核絕大部分的代碼都是用C和匯編語言實現的,要理解內核,C語言大部分的人都已經掌握了,接下來就得首先掌握匯編知識,以便深入理解Linux內核知識!!!
2、學習Linux內核的線路
首先內核有基礎部分和深入的部分,我認為應該從一個全局的角度去解讀Linux內核,以便我們達到一個更加深刻的認識,從內核的整體架構--->內核源碼的解讀,并且在這個的過程中不斷的去修改代碼,編程調試是至關重要的!!!
3、AT&T匯編的不同之處
(1)、寄存器的引用
在AT&T匯編的格式下,寄存器的前面要加上:%, %eax;
(2)、操作數的順序
mov %eax(源), %ebx(目的)
(3)、常數/立即數的格式
使用立即數,要在數的前面加上$, mov $4;
(4)、操作數的長度
操作數的長度用加在指令后的符號表示
b(byte), w(word), l(long), movw %ax, %bx;
(5)、轉移指令
ljump和lcall,在Intel中的格式為:jmp far 和 call far;
(6)、尋址方式
偏移量移到了前面了,
4、嵌入式在C語言-->嵌入式匯編
_asm_代表了嵌入式匯編的語句;
a, b, c, d 分別代表寄存器eax、ebx、ecx、edx;
S、D 表示寄存器esi edi;
r 表示任何寄存器;
閱讀內核代碼有可能出現嵌入式匯編語句,的牢牢的掌握!!!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。