# Assembly Language - GDB Debug - CMake compile [toc] ## 安裝 - JWasm https://stackoverflow.com/a/56268268 ## CMake配置問題 https://blog.csdn.net/xx352890098/article/details/78819852 ## Debug ### GDB指令 - run 設定完中斷點輸入run(或簡寫r)可開始執行,執行到中斷點停止。 - b 如果要在程式裡面加入中斷點,輸入break(或簡寫b)或是指定某一行停下來 - s <file> 從指定文件中讀取符號表。 - n 如果要繼續執行下一行可輸入next(或簡寫n) - bt 顯示程式堆棧信息 - c 輸入c則執行到下一個中斷點為止 - q 不顯示版本和版權信息 - finish 函數會繼續執行完,並且打印返回值,然後等待輸入接下來的命令 - print 顯示expression的值 ### gdb-peda  1. 暫存器(Register)是cpu用來暫存指令、數據和RAM地扯 2. 組合語言代碼 3. 記憶體有一部份是stack,宣告變數的時候就會佔用stack RAM ## 前置基本概念  - 組合語言轉成執行檔需要什麼過程? Ans:組譯後鏈接到其他目標文件 - 解釋組譯器是什麼? Ans:組合語言轉換成機械語言 - 解釋連結器是什麼? Ans:會連結其他目的檔或者函數庫 - 0xDEADBEEF Little-Endian記憶體位置  Big-Endian記憶體位置  - 32-bit general-purpose registers 有哪些?  分別對映的 16-bit registers 又有哪些?   - RIP 與 EIP 的差異? RIP是64bit用 EIP是32bit用  - EFLAGS Register 可以幹麻? Status Flags 有哪些? Ans:EFLAGS Register是控制標誌和系統標誌的寄存器 Parity flag (PF) Auxiliary Carry flag (AC) Zero flag (ZF) Sign flag (SF) Overflow flag (OF) Carry flag (CF) - listing file 欄位所代表的含意 listing file包含源代碼,包括行數,每條指令的數字地址,每條指令的機器 代碼字節(以十六進製表示)以及符號表。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up