一、個人吐槽:
最近,學習16位彙編,頭痛的是我竟然在vs2013(32位)上配置彙編(32位)環境,現在把它解除安裝,所以先記錄下來。這裡順便延伸一下16彙編。我找了一大堆資料,後來發現一位網友說得很對,16彙編是最基礎的,我們應該使用debug來進行除錯以便更了解pc機的基層語言。話不多說,開講。
二、16位彙編環境搭配及使用
1、首先,我來彙總一下,若你的系統是32位且win7以下,直接進行第三步,否則從第二步開始
2、如果你的電腦是32位機且是win7以下的,可以直接開啟系統的命令提示符進行debug,否則需要軟體輔助才能進行debug。我向大家推薦乙個軟體dosbox。
安裝及使用教程參考:
(1)這個教程是別人做的,但我有一點小技巧。開啟安裝路徑->dosbox-0.74->dosbox 0.74 options.bat,在倒數第三行【autoexec】加入mount c g:\masm,注意:g:\masm這個是我放masm軟體的路徑,masm軟體在3中放出,你可以將masm放在其他路徑,g:masm改為你的路徑,最好不要中文路徑。然後換行,再加入c:即可。作用:不用每次開啟都要輸入這兩行。這個軟體的作用是將這個將這個目錄掛載到c盤上。
3、當然,有了這個軟體,我的程式應該怎麼除錯呢?就像上文我說的g:\masm路徑一樣。這裡我向大家推薦乙個軟體masm,作用:將.asm->.obj->.exe
4、[環境配置好了],masm軟體有了。我在這總結一下以下幾點,
(1)用記事本編寫彙編(當然,你也可以用其他任何可編輯文字的軟體),儲存為.asm檔案,並放到masm目錄下(重點,不然無法debug)。然後進入命令提示符(win7 32位以下)或dosbox(不能再命令提示符使用debug的),
(2)輸入masm xx.asm(xx代表你的檔名),你會看到有三個檔案(.obj .list ..crf)讓你選擇生成,若你一直按回車,只生成.obj檔案。
(3)輸入masm xx.asm(xx代表你的檔名),你會看到有三個檔案(.exe .map .lib)讓你選擇生成,若你一直按回車,只生成.exe檔案。
三、除錯
1、新建記事本,將附件內容複製貼上,儲存在masm目錄下(不要放錯啊),字尾名為.asm(記得改啊)
2、彙編(編譯)--------- >目標檔案 .obj(aaa是你的檔名)
d:\masm>masm aaa
3、 •鏈結 --------- > 可執行檔案 .exe
d:\masm>link aaa
4、執行--------- >最終可執行檔名 或雙擊檔名
d:\masm>aaa
5、除錯--------- > 最終可執行檔名
d:\masm>debug aaa.exe
四、彙編常用命令
1、dos 命令簡單介紹
改變碟符: c:\>d: (變成d:\>)
建立子目錄: d:\>md masm (在d:盤的根目錄下建立了masm子目錄)
改變子目錄: d:\>cd masm **到masm子目錄)
回到上一級目錄: d:\ masm\>cd \
檢視目錄內檔案:d:\masm>dir
2、debug常用命令
命令名稱
命令格式 a
彙編a[《位址》] g
執行g=[起始位址] [斷點位址]
d顯示記憶體
d[《位址》]或d[《範圍》] u
反彙編u[位址範圍] r
顯示暫存器
r[暫存器名]或rf g
執行g[=《起始位址》][《斷點位址》] h
十六進製制計算
h 數值1 數值2
五、附件(輸出how do you do)
data segment ;資料段開始
str db "how do you do?$"
data ends ;資料段結束
stack segment stack ;堆疊段開始
db 200 dup(?)
stack ends ;堆疊段結束
code segment ;**段開始
assume ds:data,ss:stack,cs:code ;段分配,宣告段
start: mov ax,data ;給ds賦初值
mov ds,ax
lea dx,str ;顯示緩衝區首址賦dx
mov ah,9 ;設定9號呼叫
int 21h ;9號呼叫輸出how do you do?
mov ah,4ch ;設定4ch號呼叫
int 21h ;結束程式執行,返回dos
code ends ;**段結束
end start ;程式結束
六、程式結果 彙編常用命令
一 程式除錯 1 用文字編輯器建立源程式,副檔名.asm,例如1.asm 2 用masm生成1.obj檔案 3 用link生成1.exe檔案 二 用debug.exe除錯 1 用cmd進入命令列模式 開始選單,鍵入cmd 2 用命令操作進入你的檔案 cd c masm5.0 結果為 c masm5....
vxworks shell 除錯常用命令
1 與任務相關的命令 sp arg1 arg9 啟動任務,最多接受9個引數,預設的優先順序100 堆疊20000位元組 period n,arg1 arg8 建立乙個週期呼叫的任務,週期為n秒,最多接受8個引數 repeat m,arg1 arg8 建立乙個反覆呼叫的任務,呼叫次數為m,m 0時永久...
android 除錯常用命令
1.檢視機器當前記憶體使用情況以及剩餘量 adb shell dumpsys meminfo 2.檢視lib庫當前版本資訊 串列埠輸入 busybox strings system lib libstagefright.so busybox grep author 3.檢視ddr當前執行頻率,找到d...