在Debug中使用斷點調試程序


我最近在學習匯編的程序,所以很多都需要動手寫點代碼去測試,如果是測試三五行代碼的還比較簡單,可以在debug中直接按T進行單步調試,但是到后來調試的代碼越來越復雜,越來越長,如果再使用單步調試不知道要按鍵按到驢年馬月去,之前用過一些開發其他的高級語言時的IDE,里面都有設置斷點和單步調試的功能,所以我也就想在我的程序中也增加斷點的功能,讓程序執行到斷點然后就停止,這樣也方便查看程序中數據的變化。

由於本人剛剛學習匯編,使用最笨拙的方法去實現斷點功能。

功能分析:學匯編的對標志位都不陌生,里面很多都程序運行密切相關,這里就是要用IF和TF標志位,分別是中斷和單步執行的控制,所以只要設置這兩位為1,程序就會暫停。下面就以一個簡單的程序設置斷點來說明

程序代碼:

assume cs:code

stack segment
db 30h dup(0)
stack ends

code segment
start:     
    mov ax,3
    mov bx,1
    mov cx,5
    s0:
    add ax,bx
    call breakPoint     ;在此處設置斷點暫停
    loop s0
    mov ax,4c00h
    int 21h

    
breakPoint:
    push bx
    pushf
    pop bx
    or bh,3        ;這里可以增加判斷,例:當cx為100的時候再設置斷點
    push bx
    popf
    pop bx
    ret

使用說明:

在需要設置斷點地方調用call breakPoint,編譯-鏈接-debug執行,在debug中直接按g鍵,則程序執行到我們設置的斷點處會自動暫停


你可以根據上面的說明,自己改進下,比如條件斷點等功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM