- Vim經常使用命令總結
- 插入:
- 退出:
- :q:退出
- :wq!:強制保存並退出
- :wq:保存並退出
- :w <文件路徑> :另存爲
- 刪除:
- 在vim中,查看printq!:強制退出,不保存f man pages(幫助文檔)的命令是 :3K
- gdb
- 進入gdb:
- gcc -g xxx.c -o xxx
- gdb xxx
- 查看源碼:
- (gdb) l:進行行號提示
- (gdb) b n:在第n行設置斷點
- (gdb) r:運行代碼,運行至斷點處
- (gdb) n:單步運行
- (gdb) c:使程序繼續往下運行,直到再次遇到斷點或程序結束
- (gdb) q:退出GDB
- (gdb) watch n:在"n"設置了觀察點,觀察變量的變化狀況
- gdb中使用命令(break main)設置main函數斷點。
- gdb中使用命令(until)能夠跳出循環語句。
- gdb中next和step均可以單步跟蹤,根據自頂向下原則應該優先選用next
- GDB中以16進制形式打印%eax中內容的命令是(print /x $eax)
GCC編譯過程算法
- 以hello.c爲例
- 預處理:gcc –E hello.c –o hello.i ;gcc –E調用cpp 產生預處理過的C原始程序
- 編譯:gcc –S hello.i –o hello.s ;gcc –S調用ccl 產生彙編語言原始程序
- 彙編:gcc –c hello.s –o hello.o ;gcc -c 調用as 產生目標文件
- 鏈 接:gcc hello.o –o hello ;gcc -o 調用ld 產生可執行文件
- 運行: ./hello
GCC中INFINITY表示(無窮大)。vim
CH01-07易錯習題
- CH01
- CPU中的(PC或程序計數器)寄存器總指向主存中的某條機器語言指令。
- (進程)是操做系統對正在運行的程序的一種抽象。
- 存儲層次結構的主要思想是一層上存儲器做爲低一層存儲器的(高速緩存)
- CH07
- linux系統中,連接器程序是(ld)。
- (加載器)將可執行文件的內容映射到存儲器,並運行這個程序。
- C語言中的全局變量能夠一次聲明,屢次定義。(X)
- CH02
- 練習2.6中整數換成12345,浮點數換成12345.0,最多時共(13)位匹配。
- a,b長度都是一個字節,a=6,b=15, a|b = ( 15 )
- a,b長度都是一個字節,a=6,b=15, a||b = ( 1,True,非零 均可以 )
- 計算機將信息按位編碼,一般組織成(字節)序列。
- 計算機的(字長)指明整數和指針數所的標稱大小。
- 文本數據比二進制數據具備更強的平臺獨立性。(ok)
- (香農)創建了布爾代數和數字邏輯之間的聯繫。
- 計算機執行的整數運算其實是模運算。(Ok)
- IEEE浮點數標準包含符號、尾數、(階碼)三部分。
- CH03
- (精通細節 )是理解更深和更基本概念的先決條件。
- (程序計數器或%eip) 指示將要執行的下一條指令在內存中的地址。
- 兩個寄存器(%ebp和%esp)保存着指向程序棧中重要位置的指針。
- 把當即數0x4050複製到%eax的指令是( movl $0x4050 ,%eax )
- SET指令對有符號數和無符號數有不一樣的處理方式。(X) 處理方式相同
- jz/jnz指令中跳轉條件是由(ZF)決定的。
- C語言中的循環結構彙編中能夠用(條件測試和跳轉)組合起來實現。
- Linux彙編中,銷燬棧幀的語句是(movl %ebp,%esp popl %ebp 或leave)
- Linux彙編中,須要調用者保存的寄存器有(%eax,%edx,%ecx )。
- GDB中以16進制形式打印%eax中內容的命令是(print /x $eax)
- CH04
- Y86中,有(8)個程序寄存器。
- Y86中,movl rA, rB 實現寄存器間的數據傳送。( x )
- Y86中,狀態碼INS表示遇到非法地址。( X )
- (YIS或指令集模擬器 )但是模擬Y86機器代碼的執行。
- HCL中,多路複用函數使用(狀況表達式)來描述。
- ALU是一種時序電路。(X)
- 寄存器是一種時序電路。(X)
- CH06
這學期已是第二學期寫博客了,相比於上學期剛剛接觸的陌生與不適應,已經漸漸有了習慣的感受,對每週知識的梳理是對這幾天學習成果的反饋。這學期最大的收穫實際上是學習心態上的改變,上學期多少總以爲學習量大每次都有點應付的小情緒,這學期每週都把知識化整爲零天天學習一點,就沒有那麼大壓力,並且以爲的對知識的吸取也好了不少。經過這半學期的自我學習,我認爲最重要的仍是對本身的從新認知與態度上的積極轉變,別人再怎麼強制督促也是外部條件,只有本身心態上的積極轉變纔會有動力與真正的收穫。緩存
本身的不足
在自學方面我也只是算剛剛入門,要改進的地方也是路漫漫其修遠兮。對書本的知識我到底每次自學完本身能消化多少,有些東西學過去由於沒有理解到核心也只是似懂非懂,真正的原理並無掌握。我很明白本身的不足是對知識的理解不夠深刻透徹,可是這個改進是日積月累的,對每個不懂的問題都要搞懂,不光會作題還要理解題目的用意與相關聯知識,這樣才能更好的自學。安全
課程建議和意見
我認爲大學自學這個方法是很好的,鍛鍊自主學子能力與作事效率,對從此的學習工做也有很大幫助。可是自學畢竟能達到的層次仍是有限,若是老師在咱們自學後再將課程串講一遍我想你們確定會理解的更加深入。bash