匯編語言學習(三)——DoxBox中debug的使用

目錄

一、安裝DoxBox,并下載匯編工具(MASM文件)

二、debug是什么

三、debug中的命令


一、安裝DoxBox,并下載匯編工具(MASM文件)

鏈接:

https://pan.baidu.com/s/1IbyJj-JIkl_oMOJmkKiaGQ?pwd=j4th

提取碼:j4th

?1、下載安裝之后雙擊DOSBox0.74-win32-installer.exe文件進行安裝。

2、配置DOS匯編器

? ? ? ?(1) 直接將下載好的MASM文件夾直接復制到自己安裝DosBox文件夾下面即可。

  • MASM.EXE文件用于編譯;
  • LINK.EXE文件用于鏈接;
  • debug.exe文件用于調試;

????????

? ? ? ? (2)打開DosBox,輸入以下命令將Debug工具掛載到虛擬C盤:

mount C d:/Dosbox/masm

????????

? ? ? ? ?其中:d:/Dosbox/masm路徑下存放著debug.exe文件;

? ? ? ? (3)運行debug工具,輸入一下兩條命令,即可運行debug.exe文件。

二、debug是什么

? ? ? ??Debug是DOS系統中著名的調試程序,也可以在Windows系統中以實模式運行。Debug的主要功能包括查看和修改寄存器內容、查看和修改內存內容、將內存中的機器指令翻譯成匯編指令、執行機器指令、以匯編指令格式寫入內存等。

三、debug中的命令

? ? ? ? (1)R命令用于查看或改變CPU寄存器的內容

? ? ? ? ? ? ? ? 查看所有寄存器的內容

-r  用于查看寄存器的值

? ? ? ? ? ? ? ? 查看指定寄存器的內容

-r 寄存器名     

? ? ? ? ? ? ? ? 修改寄存器的內容,debug會提示輸入新的值(以“:”表示)?

-r 寄存器名
:值

? ? ? ? ? ? ? ? 實例演示:?

????????(2)D命令用于查看內存中的內容

???????????????? 指定段地址和偏移地址

-d 段地址:偏移地址

從段地址1000和偏移地址0開始顯示內存內容? ? ? ? ? ? ??

????????????????使用段寄存器

-d 段寄存器:偏移地址

?從 DS 段寄存器中的段地址和偏移地址 100 開始顯示內存內容

?????????????????不指定地址

-d

????????????????指定指定段地址和偏移地址以及結尾偏移地址

-d 段地址:偏移地址 結尾偏移地址

從段地址1000和偏移地址0開始顯示內存內容,結束位置在段地址1000和偏移地址1f

  • 如果指定了段地址和偏移地址,d 命令將從該地址開始顯示內存內容。
  • 如果未指定地址,d 命令將從上次 d 命令顯示的最后一個單元的下一個單元開始顯示,或者從默認地址開始顯示。
  • 默認情況下,d 命令從 DS:100H 地址開始顯示 128 個單元的內容,但實際行為可能因環境而異。

? ????????????????輸出格式:

  • 每行顯示 16 個字節的內容。
  • 左邊是每行的起始地址。
  • 中間是每個內存單元中的數據對應的十六進制值。
  • 右邊是每個內存單元中的數據對應的可顯示的 ASCII 碼字符。若沒有對應可顯示的 ASCII 字符,DEBUG 就用“.”來代替

? ? ? ? (3)E命令用于修改內存中的內容

? ? ? ? ? ? ? ? 批量修改內存單元

E 段地址:偏移地址  數據1 數據2...

? ? ? ? ? ?逐個修改內存單元

E 段地址:偏移地址逐個詢問式修改空格 -接受,繼續回車 -結束

? ?

? ? ? ? (4)U命令用于將內存中的機器指令翻譯成匯編指令

匯編指令

mov ax,0123H

mov bx,0003H

mov ax, bx

add ax,bx

對應的機器碼為

B8 23 01

BB 03 00

89 D8

01 D8

e 段地址:偏移地址 數據(機器碼)-------寫入

d?段地址:偏移地址? ? -----------------查看

u?段地址:偏移地址? ------------查看對應的匯編指令

?

? ? ? ? (5)A命令用于以匯編指令格式在內存中寫入機器指令

a? 段地址:偏移地址 數據(寫入匯編指令)

d 段地址:偏移地址 --------查看數據

u 段地址:偏移地址 -----------查看代碼

?

? ? ? ? (6)T命令用于執行cs:ip處的機器指令

? ? ? ? ? ? ? ? 先在CS:IP地址處寫入幾條指令

? ? ? ? ????????使用-t執行

? ? ? ? (7)Q命令用于退出Debug

-q 退出debug

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86090.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于DDOS

DDOS是一門沒什么技術含量的東西,其本質而言是通過大量數據報文,發送到目標受害主機IP地址上,導致目標主機無法繼續服務(俗稱:拒絕服務) DDOS灰產人期望達成的預期目標,幾乎都是只要把對面打到 …

Modbus轉Ethernet IP網關助力羅克韋爾PLC數據交互

在工業自動化領域,Modbus協議是一種廣泛應用的串行通信協議,它定義了主站和從站之間的通信規則和數據格式。羅克韋爾PLC是一種可編程的邏輯控制器,通過Modbus協議實現與其他設備之間的數據交互。然而,隨著以太網技術的普及和發展&…

C# winform教程(二)----button

一、button的使用方法 主要使用方法幾乎都在屬性內,我們操作也在這個界面 二、作用 用戶點擊時觸發事件,事件有很多種,可以根據需要選擇。 三、常用屬性 雖然屬性很多,但是常用的并不多 3.常用屬性 名稱內容含義AutoSize自動調…

【 java 基礎問題 第二篇 】

目錄 1.深拷貝和淺拷貝 1.1.區別 定義 定義 1.2.實現深拷貝的方式 2.泛型 2.1.定義 2.2.作用 3.對象 3.1.創建對象的方式 3.2.對象回收 3.3. 獲取私有成員 4.反射 4.1.定義 4.2.特性 4.3.原理 5.異常 5.1.異常的種類 5.2.處理異常的方法 6.Object 6.1.等于與…

Kafka 入門指南與一鍵部署

Kafka 介紹 想象一下你正在運營一個大型電商平臺,每秒都有成千上萬的用戶瀏覽商品、下單、支付,同時后臺系統還在記錄用戶行為、更新庫存、處理物流信息。這些海量、持續產生的數據就像奔騰不息的河流,你需要一個強大、可靠且實時的系統來接…

湖北理元理律師事務所:企業債務重組的風險控制方法論

一、擔保鏈破解:阻斷債務傳染的核心技術 2023年武漢某建材公司案例: 原始債務結構: A公司(主債務人)欠款200萬 ↓ B公司(擔保人)←連帶責任觸發執行 ↓ C公司(B公司擔…

如何在CloudCompare中打開pcd文件

你只需要將pcd文件的路徑改在全英文路徑下,CloudCompare就可以打開。若含中文,就會報錯:

中醫的十問歌和脈象分類

中醫核心理論框架如下 診斷技術如下 本文主要介紹問診和切診。 十問歌的“十”是虛指,實際包含12個核心問題,脈象28種中常見僅10余種,重點解釋脈診的物理本質(血流動力學觸覺感知) 以下是中醫十問歌的完整內容及脈…

基于智能代理人工智能(Agentic AI)對沖基金模擬系統:模范巴菲特、凱西·伍德的投資策略

股票市場涉及眾多統計數據和模式。股票交易基于研究和數據驅動的決策。人工智能的使用可以實現流程自動化,讓投資者在研究上花費更少的時間,同時提高準確性。這使他們能夠更加專注于監督實際交易和服務客戶。 頂尖對沖基金經理發揮著至關重要的作用&…

大二下期末

一.Numpy(Numerical Python) Numpy庫是Python用于科學計算的基礎包,也是大量Python數學和科學計算包的基礎。不少數據處理和分析包都是在Numpy的基礎上開發的,如后面介紹的Pandas包。 Numpy的核心基礎是ndarray(N-di…

D3ctf-web-d3invitation單題wp

#注入 #用kali構造憑證訪問MinIO服務器 #用mc帶臨時憑證訪問遠程Minion的儲存桶 還有一個 minio 服務的api,我們后面要用 /static/js/tools.js function generateInvitation(user_id, avatarFile) {if (avatarFile) {object_name avatarFile.name;genSTSCreds(ob…

基于 Vue 和 Spring Boot 實現滑塊驗證碼的機器驗證

基于 Vue 和 Spring Boot 實現滑塊驗證碼的機器驗證 需求概述技術選型前端實現1. 引入組件2. 修改后端請求URL3. 新增機器驗證頁面4.首頁調用驗證組件 后端實現流程梳理具體實現1. 引入依賴2. 增加yml配置3. 代碼實現4.跨域配置(可選) 實現效果二次驗證的…

[Java惡補day13] 53. 最大子數組和

休息了一天,開始補上! 給你一個整數數組 nums ,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 子數組是數組中的一個連續部分。 示例 1: 輸入:nums …

sql server如何創建表導入excel的數據

在 SQL Server 中,可以通過幾種方式將 Excel 數據導入到數據庫表中。下面是一個完整的流程,包括如何創建表,以及將 Excel 數據導入該表的方法: ? 方法一:使用 SQL Server Management Studio (SSMS) 的導入向導&#x…

C++單例模式教學指南

C單例模式完整教學指南 📚 目錄 [單例模式基礎概念][經典單例實現及問題][現代C推薦實現][高級話題:雙重檢查鎖][實戰應用與最佳實踐][總結與選擇指南] 1. 單例模式基礎概念 1.1 什么是單例模式? 單例模式(Singleton Pattern&…

使用xdocreport導出word

之前java總用freemaker進行導出&#xff0c;但是改xml實在是太繁瑣了&#xff0c;這次找了另一個工具進行體驗. 一、簡單導出 pom引入 <dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.xdocreport.core</arti…

vscode里如何用git

打開vs終端執行如下&#xff1a; 1 初始化 Git 倉庫&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 倉庫 git add . 3 使用 git commit 命令來提交你的更改。確保在提交時加上一個有用的消息。 git commit -m "備注信息" 4 …

C++.OpenGL (2/64)你好,三角形(Hello Triangle)

你好,三角形(Hello Triangle) 繪制流程概覽 #mermaid-svg-MvIGIovxiuKVfzy8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MvIGIovxiuKVfzy8 .error-icon{fill:#552222;}#mermaid-svg-MvIGIovxiuKVfzy8 .error…

汽車安全體系:FuSa、SOTIF、Cybersecurity 從理論到實戰

汽車安全&#xff1a;功能安全&#xff08;FuSa&#xff09;、預期功能安全&#xff08;SOTIF&#xff09;與網絡安全(Cybersecurity) 從理論到實戰的安全體系 引言&#xff1a;自動駕駛浪潮下的安全挑戰 隨著自動駕駛技術從L2向L4快速演進&#xff0c;汽車安全正從“機械可靠…

N2語法 列挙、話題提出

1&#xff0c;&#xff5e;やら&#xff5e;やら  接続&#xff1a;名詞、辭書形  意味&#xff1a;…啦…啦&#xff08;列舉代表性的事物&#xff09;  例文&#xff1a;     家に帰って料理やら洗濯やら何もしなければならない。     帰國前、買い物やら荷造りや…