欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Debug的基本使用()

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

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

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

MOUNT C D:\DebugC:debug

中即可打開Dosbox。

debug 的基本用法

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

以上便是debug的簡(jiǎn)介。

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

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

匯編語言程序建立步驟:

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

接下來我們進(jìn)行一些基本的操作

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

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

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

  -u 將機(jī)器指令翻譯為匯編指令

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

  -a  以匯編指令方式寫入一條機(jī)器指令

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

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

  在電腦(CISC)的cpu指令由pc(cs段地址和ip偏移地址往地址總線傳輸?shù)刂罚┛刂?,因此我們可以修改cs和ip值對(duì)pc進(jìn)行操作。

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

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

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

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

  SI:源址寄存器

  

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

  

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

  

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

         

  

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

  

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

相關(guān)文章

  • 匯編用串檢測(cè)scasb尋找數(shù)的位置實(shí)現(xiàn)

    匯編用串檢測(cè)scasb尋找數(shù)的位置實(shí)現(xiàn)

    這篇文章主要介紹了匯編用串檢測(cè)scasb尋找數(shù)的位置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言段定義的使用

    匯編語言段定義的使用

    匯編語言源程序的基本結(jié)構(gòu)是段,一個(gè)匯編語言源程序由若干個(gè)代碼段,本文主要介紹了匯編語言段定義的使用,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 匯編語言入門匯編指令及寄存器詳解教程

    匯編語言入門匯編指令及寄存器詳解教程

    這篇文章主要為大家介紹了匯編語言入門匯編指令及寄存器的詳解教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • ARM體系下的GCC內(nèi)聯(lián)匯編教程詳解

    ARM體系下的GCC內(nèi)聯(lián)匯編教程詳解

    在操作系統(tǒng)級(jí)的編程中,有時(shí)候,C語言并不能完全的使用硬件的功能,這時(shí)候就需要嵌入一些匯編代碼來實(shí)現(xiàn)功能。這篇文章主要介紹了ARM體系下的GCC內(nèi)聯(lián)匯編,需要的朋友可以參考下
    2020-02-02
  • 使用匯編語言編寫一條簡(jiǎn)單的貪吃蛇的實(shí)現(xiàn)

    使用匯編語言編寫一條簡(jiǎn)單的貪吃蛇的實(shí)現(xiàn)

    這篇文章主要介紹了使用匯編語言編寫一條簡(jiǎn)單的貪吃蛇的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 匯編語言進(jìn)制轉(zhuǎn)換之16進(jìn)制轉(zhuǎn)10進(jìn)制

    匯編語言進(jìn)制轉(zhuǎn)換之16進(jìn)制轉(zhuǎn)10進(jìn)制

    這篇文章主要介紹了匯編語言進(jìn)制轉(zhuǎn)換之16進(jìn)制轉(zhuǎn)10進(jìn)制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 匯編語言MIPS指令分類及尋址模式原理概念

    匯編語言MIPS指令分類及尋址模式原理概念

    這篇文章主要為大家介紹了匯編語言MIPS指令分類及尋址模式的原理及概念,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • x86匯編DOS編程環(huán)境搭建過程

    x86匯編DOS編程環(huán)境搭建過程

    在學(xué)習(xí)x86匯編時(shí),第一步是搭建一個(gè)可以編譯、運(yùn)行代碼的環(huán)境,這個(gè)搭建方法也真的超簡(jiǎn)單,本文重點(diǎn)給大家介紹x86匯編DOS編程環(huán)境搭建過程,感興趣的朋友一起看看吧
    2021-11-11
  • 常用的匯編指令與技巧(收藏)

    常用的匯編指令與技巧(收藏)

    這篇文章主要介紹了常用的匯編指令與技巧,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 匯編語言XOR指令:對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)異或操作(推薦)

    匯編語言XOR指令:對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)異或操作(推薦)

    匯編語言(assembly language)是一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語言,亦稱為符號(hào)語言。這篇文章主要介紹了匯編語言XOR指令:對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)異或操作,需要的朋友可以參考下
    2020-01-01

最新評(píng)論