最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Debug的基本使用()

 更新時間:2023年08月01日 19:19:35   投稿:mdxy-dxy  
Debug是一個通過操作系統(tǒng)(os)對cpu寄存器進行訪問用于學(xué)習(xí)匯編的程序,但是如今的win10(64位)已經(jīng)不支持cmd打開debug,但是我們可以通過DOSBOX模擬器對其進行訪問

Debug是一個通過操作系統(tǒng)(os)對cpu寄存器進行訪問用于學(xué)習(xí)匯編的程序,但是如今的win10(64位)已經(jīng)不支持cmd打開debug,但是我們可以通過DOSBOX模擬器對其進行訪問。

  安裝方法:先在https://www.dosbox.com中下載dosbox(默認路徑在C:\Program Files (x86)),接下來在網(wǎng)上下載debug.exe,為了方便可以直接在D盤下創(chuàng)一個Debug文件夾放到里邊即可。接下來修改一下DOSBox 0.74-3 Options.bat里的路徑,把最后的路徑掛到

MOUNT C D:\DebugC:debug

中即可打開Dosbox。

debug 的基本用法

debug 基本指令指令全稱用法用途
?----------?顯示debug的命令列表
AassembleA [ address ]將輸入源程序的指令匯編成目標代碼并從指定的地址單元開始存放。若省缺起始地址,則從當(dāng)前CS:100地址開始存放。A命令按行匯編,主要用于小段程序的匯編或?qū)δ繕顺绦虻男薷?/td>
CcompareC range address比較內(nèi)存的兩個部分
DdumpD [ range ]顯示部分內(nèi)存的內(nèi)容
EenterE address [ list ]從指定地址開始,將數(shù)據(jù)輸入
FfillF range list使用指定值填充一段內(nèi)存
GgoG [ = address ] [ addresses ]運行在內(nèi)存中的可執(zhí)行文件
HhexH value1 value2執(zhí)行十六進制運算
IinputI port顯示來自特定端口的 1 字節(jié)值
LloadL [ address ] [driver ] [ firstsector ] [ number ]將文件或磁盤扇區(qū)內(nèi)容加載到內(nèi)存
MmoveM range address復(fù)制內(nèi)存塊中的內(nèi)容
NnameN [ pathname ] [ arglist ]指定 Debug l(加載)或 w(寫入)命令的可執(zhí)行文件的名稱,或者指定正在調(diào)試的可執(zhí)行文件的參數(shù)
OoutputO port byte向輸出端口發(fā)送 1 個字節(jié)的值
PproceedP [ =address ] [ number ]執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程;或通過任何其他指令跟蹤
QquitQ退出 debug會話,不保存當(dāng)前測試文件
RregisterR [ register ]若給出寄存器名,則顯示該寄存器的內(nèi)存并可進行修改。缺省寄存器名,則顯示所有寄存器的內(nèi)容及當(dāng)前值( 不能修改 )
SsearchS range list在部分內(nèi)存中搜索一個或多個字節(jié)值的模式
TtraceT [ =address] [ value ]執(zhí)行一條指令,然后顯示所有寄存器的內(nèi)容、所有標志的狀態(tài)和Debug下一步要執(zhí)行的指令的解碼形式
UunassembleU [ range ]反匯編字節(jié)并顯示相應(yīng)的原語句
WwriteW [address ] [ drive ] [ firstsector ] [ number ]將測試文件寫入磁盤
XAallocate expanded memoryXA [ # pages ]分配擴展內(nèi)存
XDdeallocate expanded memoryXD [ handle ]釋放擴展內(nèi)存
XMmap expanded memory pagesXM [ Lpage ] [ Ppage ] [ handle ]映射擴展內(nèi)存頁
XSdisplay expanded memory statusXS顯示擴展內(nèi)存的狀態(tài)

以上便是debug的簡介。

學(xué)習(xí)匯編語言并且調(diào)用debug調(diào)試的時候,主要使用到 -L -U -D -G -T -P 指令

-L 裝入 -G 運行 -U 反匯編 -T 單步(可以進入子程序) -P 單步(不進入子程序)-D 查詢內(nèi)存

匯編語言程序建立步驟:

  1. edit 建立源文件 格式:edit xxx.asm ( 必須以 asm 為擴展文件名,否則不能使用 masm 調(diào)用 ),生成 obj 文件。
  2. masm 生成鏈接文件 格式:masm xxx.asm 然后生成 obj 文件,obj 文件是可連接文件,接下來需要使用link鏈接文件生成exe
  3. link 生成 exe 文件 格式:link xxx.obj 生成 exe 可執(zhí)行文件

接下來我們進行一些基本的操作

  -r 命令查看,改變cpu寄存器內(nèi)容

  -d 查看內(nèi)存中的內(nèi)容

  -e 命令改寫內(nèi)存中的內(nèi)容

  -u 將機器指令翻譯為匯編指令

  -t 執(zhí)行下一條指令

  -a  以匯編指令方式寫入一條機器指令

首先介紹一下基本內(nèi)容,看下初始配置:

  看這些寄存器的名稱應(yīng)該都是8086的寄存器名稱2333

  在電腦(CISC)的cpu指令由pc(cs段地址和ip偏移地址往地址總線傳輸?shù)刂罚┛刂疲虼宋覀兛梢孕薷腸s和ip值對pc進行操作。

  CS:代碼段寄存器i  ES:額外的寄存器

  DS:數(shù)據(jù)段寄存器  (A-D)X:普通寄存器

  SS:堆棧段寄存器  SP:堆棧寄存器

  BP:基址寄存器   DI:變址寄存器

  SI:源址寄存器

  

  修改cs,ip地址(-r cs||ip),dosbox里默認是2個字節(jié)16位,即4個十六進制表示:

  

  執(zhí)行下一條指令(-t),可發(fā)現(xiàn)ip+=3,占了三個字節(jié),在-d查看一下內(nèi)存:

  

  下面我們隨意用-a來操作一下(輸入命令):

         

  

  然后修改cs:ip往下執(zhí)行......:

  

  按quit即可退出,以上就是debug的基本匯編操作用法,觀看愉快?。。?/p>

相關(guān)文章

  • 匯編語言中的segment

    匯編語言中的segment

    segment是段的意思,是段定義偽指令,一個正常的應(yīng)用程序被由若干個 segment組成,接下來通過本文給大家介紹匯編語言中的segment,需要的朋友可以參考下
    2020-01-01
  • 使用匯編語言實現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法

    使用匯編語言實現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法

    這篇文章主要介紹了使用匯編語言實現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 一文秒懂匯編中的循環(huán)問題

    一文秒懂匯編中的循環(huán)問題

    這篇文章主要介紹了一文秒懂匯編中的循環(huán)問題,通過每一行指令詳細分析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 匯編語言位向量(位映射)的實現(xiàn)

    匯編語言位向量(位映射)的實現(xiàn)

    這篇文章主要介紹了匯編語言位向量(位映射)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 匯編實現(xiàn)簡單選擇排序的方法示例

    匯編實現(xiàn)簡單選擇排序的方法示例

    這篇文章主要介紹了匯編實現(xiàn)簡單選擇排序的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言:x86匯編指令大全及其注意事項

    匯編語言:x86匯編指令大全及其注意事項

    用最精煉的語言,記錄匯編語言中所有常用或不常用或極其重要的匯編指令及其注意事項,以方便自己和讀者進行查閱,如有錯誤和不足請在評論區(qū)指出
    2021-10-10
  • libAccessibility通知Crash排查記錄分析

    libAccessibility通知Crash排查記錄分析

    這篇文章主要為大家介紹了libAccessibility通知Crash排查記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 匯編語言80x86系統(tǒng)通用數(shù)據(jù)傳送指令詳解

    匯編語言80x86系統(tǒng)通用數(shù)據(jù)傳送指令詳解

    這篇文章主要為大家介紹了匯編語言80x86系統(tǒng)通用的數(shù)據(jù)傳送指令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • ARM匯編判斷之如何用匯編判斷數(shù)組中正負數(shù)個數(shù)

    ARM匯編判斷之如何用匯編判斷數(shù)組中正負數(shù)個數(shù)

    這篇文章主要介紹了ARM匯編判斷之如何用匯編判斷數(shù)組中正負數(shù)個數(shù),在匯編語言中程序的基本框架是不變的,這里我們可以直接把正向遍歷的程序給貼過來,然后我們思考怎么運用判斷后綴把數(shù)組中正數(shù)和負數(shù)分開,進行判斷個數(shù)和分別求和,需要的朋友可以參考下
    2022-04-04
  • os_object_release Crash 排查記錄分析

    os_object_release Crash 排查記錄分析

    這篇文章主要為大家介紹了os_object_release Crash 排查記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11

最新評論

体育| 十堰市| 无为县| 天津市| 闵行区| 炎陵县| 当雄县| 博野县| 扎兰屯市| 苍山县| 宁强县| 寿光市| 洪雅县| 洛南县| 平乡县| 延安市| 鸡泽县| 瑞丽市| 吴堡县| 屯昌县| 浦北县| 峨眉山市| 台中县| 大同市| 习水县| 定南县| 化隆| 田阳县| 德惠市| 沙坪坝区| 韶关市| 满城县| 新乡县| 湘西| 灵宝市| 乐至县| 南乐县| 子长县| 屏东县| 延寿县| 洪泽县|