Radasm使用簡明手冊(中文版)_微機原理與組合語言
來源:互聯網
上載者:User
操作方面: 一、書籤:
SHIFT+F8為所在行下書籤或刪除書籤(Crtl+0-9能定義存於檔案中的10個書籤),可通過編輯\書籤\開關書籤。(CRTL+F8為下一書籤,F8為上一書籤)二、列選擇:
拉框時用到,CRTL+B為切換行&列 拉框。三、展開 & 關閉模組 & 顯示行號:
CRTL+E為展開和關閉模組,在左下腳2 & 3小按鈕是展開全部和關閉全部的方式,1是顯示行號。四、顯示API的函數原型:
當游標碰到一個函數名稱時,可顯示一個函數的原型,用視圖\資訊工具開啟即可。五、輸出視窗:
可通過視圖\輸出視窗或點擊標題列上的表徵圖即可。六、全螢幕顯示:
通過CRTL+W切換。七、鎖定檔案:
在檔案樹中,可滑鼠右鍵鎖定&解鎖檔案。八、建立項目:
當建立一個項目時,可通過嚮導的倒數第2步會出現“匯入”按鈕,來匯入已有的檔案(如表徵圖等),然後在檔案組中,右鍵\匯入\檔案即可,可通過工程組(右鍵檔案樹)對檔案進行分類。九:設定工程的儲存位置 & 檔案關聯:
設定工程的儲存位置:通過選項\設定路徑Projects ,檔案關聯:在 檔案夾選項\檔案類型選項卡裡設定(關聯.asm和.rap)十:斷點設定:(程式運行時才會起作用CRTL+SHIFT+F5)
A:在工程選項中把“發行”改成“調試”
B:在檔案定義的最後加上 include C:\RadASM\Masm\Inc\RADbg.inc
C:ALT+F8為設定&清除斷點,通過編輯\斷點可全部清除斷點
D:當斷點沒有反映時可能是沒有F5重新編譯或者是LINK時依賴的資源檔不存在造成的(通過工程選項中可設定LINK)十一:資源編輯採用VC來編輯,把編輯好的.RC代碼粘貼到RADASM中即可。十二:工具箱中
1)ASCII編碼錶
2)顏色拾取的值
3)代碼格式化
組建檔案方面:工程\工程選項:(只推薦使用幾個常用的)
Compile(編譯資源檔):4,O,$B/RC.EXE /v /I "$I",1 (4代表最終輸出的RES檔案名稱)
Assembly(彙編asm為機器碼):3,O,$B\ML.EXE /c /coff /Cp /Zi /nologo /I"$I",2 (3代表最終輸出的OBJ檔案名稱)
Link(串連檔案並產生PE檔案):5,O,$B\LINK.EXE /SUBSYSTEM:WINDOWS /DEBUG /VERSION:4.0 /LIBPATH:"$L" /OUT:"$5",3,4 (/OUT:"$5"PE檔案名稱)
Run(運行檔案):0,0,,5(5代表啟動並執行檔案名稱)
Run w/debug(調試運行):0,0,"$E\OllyDbg",5(5代表調試啟動並執行檔案名稱)
產生PE檔案的順序:
1:Compile(編譯資源檔) SHIFT+F5
2:Assembly(彙編asm為機器碼) F5
3:Link(串連檔案並產生PE檔案) CRTL+ALT+F5
4:Run(運行檔案) SHIFT+CRTL+F5
5:Run w/debug(調試運行) CRTL+D 技巧:
一:通過在2,3行處下斷點,當執行到第3行命中時,看EAX中的數值,把數值貼到VS中的工具-錯誤尋找。可看出錯誤的問題是什麼。(注意是十六進位的數)
1:invoke LoadLibrary,offset dllName
-》2:invoke GetLastError
-》3:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK OTHER:
1。選項\設定路徑:可設定相應的路徑。
2。OllyDbg中可設定OD相關路徑:選項\介面選項\目錄選項卡。 FAQ:
1.radasm中無法找到resource檔案時,是相對路徑的問題
當有資源時需要設定工程選項
工程\工程選項 4,O,$B/RC.EXE /v /I "$I",1
這樣就可以在使用rc檔案中使用相對路徑了······ 2.格式化輸出字串和數值
wsprintf,addr szBuffer,addr szStart,............ szBuffer db 256 dup (?) ;全域變數
local @szBuffer[256]:db ;局部變數 szStart db 'return : %d!',0 ; %d 輸出十進位 %x輸出十六進位 %s輸出字串, %c輸出字元,%08x,小於8位時就用0填充,%lu是輸出32位整數
invoke wsprintf,addr szBuffer,addr szStart,eax ;
szStart db 'return : %s!',0 ; 若是%s格式時就需要用 addr偽指令,因為%s接收的是一個變數的地址
invoke wsprintf,addr szBuffer,addr szStart,addr szText ;
invoke MessageBox,NULL,offset szBuffer,offset szCaption,MB_OK