gdb调试汇编语言

合集下载

汇编语言源程序运行步骤和DEBUG的使用

汇编语言源程序运行步骤和DEBUG的使用

汇编语言源程序运行步骤和DEBUG的使用一、实验目的1.熟悉汇编语言源程序书写格式。

2.熟悉汇编语言源程序编辑、汇编、连接、执行步骤。

3.练习DEBUG常用命令的使用。

4.熟悉8086的寄存器。

5.了解程序的执行过程。

二、实验预习要求1、认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立、汇编、连接、执行、调试的全过程。

2.预习使用DEBUG 检查/修改寄存器内容、查询存储器内容的命令。

3.预习使用DEBUG单步、断点及连续执行程序的命令。

三、实验内容1.编辑以下程序,汇编连接后运行,将输出'HOW ARE YOU?’。

本习题主要目的:熟悉汇编语言源程序的书写格式;熟悉汇编语言源程序的编辑、汇编、连接、运行。

DA TA SEGMENTBUF DB 'HOW ARE YOU?$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET BUFMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.DEBUG 调试以下程序,查看DATA段中定义的数据在内存中的存放方式,并单步执行查看每一语句执行后相关寄存器的内容,并解释为何取该值:DA TA SEGMENT ;(1)DB 34H,12H ;(2)B DW 1234H ;(3)C DD 0 ;(4)D DB -1,15/3 ;(5)E DB '012' ;(6)F DW 'AB','C' ;(7)G DW ? ;(8)H DB 5 DUP(0) ;(9)I DW $-OFFSET H ;(10)DA TA ENDS ;(11)CODE SEGMENT ;(12)ASSUME CS:CODE,DS:DA TA ;(13)START: MOV AX,CODE ;(14)MOV DS,AX ;(15)MOV BX,SEG A ;(16)MOV CX,OFFSET B ;(17)MOV DX,TYPE C ;(18)MOV AH,4CH ;(19)INT 21H ;(20)CODE ENDS ;(21)END START ;(22)3.下面是第1题采用将主程序定义为远程的程序返回DOS的结束方式,将其编辑、连接、运行,熟悉汇编源程序不同的结束方式。

实验一 利用 DEBUG 调试汇编语言程序段

实验一 利用 DEBUG 调试汇编语言程序段

实验名称实验一利用 DEBUG 调试汇编语言程序段一、实验目的1.熟悉 DEBUG 有关命令的使用方法;2.利用 DEBUG 掌握有关指令的功能;3.利用 DEBUG 运行简单的程序段。

二、实验要求1.仔细阅读有关 DEBUG 命令的内容,对有关命令,要求事先准备好使用的例子;三、实验环境DOS 操作系统四、实验内容1.进入和退出 DEBUG 程序;1)开始—运行点确定进入DOS命令窗口图1进入DOS命令窗口2)在命令窗口中输入 dubug 进入 debug 程序图2进入 debug 程序3)进入 debug 窗口后,输入 q 命令退出 debug图3退出 debug2.学会 DEBUG 中的1)D 命令(显示内存数据 D 段地址:偏移地址)例 1:-D100 ;显示 DS 段, 0100 开始的 128 个字节内容-D ;默认段寄存器为 DS,当前偏移地址(刚进入 debug 程序偏移地址为 0100H)图4默认显示 DS 段内容-D DS:100 ;显示 DS 段, 0100H 开始的 128 个字节内容图5显示 DS 段内容-D CS:200 ;显示 CS 段, 0200H 开始的 128 个字节内容图6显示 CS 段内容-D 200:100 ;显示 DS 段, 0200:0100H 开始的 128 个字节内容图7显示 DS段0200:0100H内容-D 200 ;显示 DS 段, 0200H开始的128个字节内容图8显示 DS段0200H开始的内容-D 100 L 10 ;显示 DS 段, 100H 开始的 100H 个字节内容图9显示 DS段100H开始的100H字节内容2)E 命令(修改指定内存)例 1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:073F:0100 41 42 43 44 48 47 46 45-e 100 修改内存内容-d 100,L08 查看刚才修改的内存内容图10 修改和查看DS段100H开始的80H字节内容例 2: -E 100073F:0100 41. 42 : 42 是操作员键入此命令是将原 100 号内存内容 41 修改为 42,用 D 命令可察看。

汇编语言学习手把手的Debug教程

汇编语言学习手把手的Debug教程

汇编语⾔学习⼿把⼿的Debug教程⽬录Debug 是什么Debug 实战Debug -rDebug -dDebug -eDebug -uDebug -tDebug -a总结关于汇编的第⼀篇⽂章:Hello⼤家好,我是程序员cxuan!我们上篇⽂章了解了⼀下基本的寄存器,这篇⽂章我们来进⾏实际操作⼀下。

我们以后将会⽤到很多 Debug 命令,这⾥我们先来熟悉⼀下它们。

Debug 是什么Debug 是 Windows / Dos 操作系统提供的⼀种功能。

使⽤ Debug 能让我们⽅便查看 CPU 各种寄存器的值、内存情况,⽅便我们调试指令、跟踪程序的运⾏过程。

接下来我们会⽤到很多 debug 命令,但是使⽤这些命令的前提是,你需要在电脑上安装⼀下 debug,Windows/Mac 都可以安装,获取链接我已经给你找出来了。

阿,忘记说了,我们这⾥使⽤的是 Dos box来模拟汇编的操作环境。

下载完成后打开 DosBox ,打开之后是这样的。

此时我们输⼊ debug 命令应该提⽰的是因为我们还没有进⾏连接和挂载,此时我们执⾏mount c D:\debug执⾏这条命令时,你需要现在 D 盘下创建⼀个 debug ⽂件夹,然后我们挂载到 debug 下⾯。

并且执⾏C:切换到 C 盘路径下。

此时我们就可以执⾏ debug 命令了。

这⾥需要注意⼀点,我在 Windows 10 系统下搭建 Debug 环境时,在挂载完成后输⼊ debug ,还是提⽰ Illegal command:debug ,此时你需要再下载⼀个 debug.exe ,贴⼼的我也把下载地址给你了。

需要下载⾥⾯的 debug.exe,然后把它放在你挂载的路径下,这⾥我挂载的路径时 D 盘下的 debug ⽂件夹。

放置完成之后,再输⼊ debug 就可以了。

因为每次打开 Dosbox 都会执⾏上⾯这些命令,真的好烦,那怎么办呢?⼀个简单的办法是在 Dosbox 安装路径下找到打开之后,在末尾键⼊就 OK 了,下次直接打开 Dosbox ,会默认执⾏这三条命令,⾄此,就是我搭建 Dosbox 遇到的所有问题了。

(2021年整理)GDB调试命令手册.

(2021年整理)GDB调试命令手册.

(完整版)GDB调试命令手册.编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)GDB调试命令手册.)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)GDB调试命令手册.的全部内容。

(完整版)GDB调试命令手册.编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 (完整版)GDB调试命令手册。

这篇文档能够给您的工作和学习带来便利。

同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈(完整版)GDB调试命令手册。

> 这篇文档的全部内容。

常用的 gdb 命令backtrace 显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where breakpoint 在程序中设置一个断点cd 改变当前工作目录clear 删除刚才停止处的断点commands 命中断点时,列出将要执行的命令continue 从断点开始继续执行delete 删除一个断点或监测点;也可与其他命令一起使用display 程序停止时显示变量和表达时down 下移栈帧,使得另一个函数成为当前函数frame 选择下一条 continue 命令的帧info 显示与该程序有关的各种信息jump 在源程序中的另一点开始运行kill 异常终止在 gdb 控制下运行的程序list 列出相应于正在执行的程序的原文件内容next 执行下一个源程序行,从而执行其整体中的一个函数print 显示变量或表达式的值pwd 显示当前工作目录pype 显示一个数据结构 (如一个结构或 C++类的内容quit 退出 gdbreverse-search 在源文件中反向搜索正规表达式run 执行该程序search 在源文件中搜索正规表达式set variable 给变量赋值signal 将一个信号发送到正在运行的进程step 执行下一个源程序行,必要时进入下一个函数undisplay display 命令的反命令,不要显示表达式until 结束当前循环up 上移栈帧,使另一函数成为当前函数watch 在程序中设置一个监测点(即数据断点whatis 显示变量或函数类型GDB 命令分类详解一:列文件清单。

汇编语言调试DEBUG命令详解

汇编语言调试DEBUG命令详解

汇编语言调试DEBUG命令详解1、显示命令D① D [地址]② D [范围]如不指定范围,一次显示8行×16个字节。

-D ;默认段寄存器为DS,当前偏移地址-D DS:100 / -D CS:200-D 200:100-D 200;200为偏移地址,默认段寄存器DS-D DS:100 110/ -D 100 L 102.修改命令E① E 地址;从指定地址开始,修改(或连续修改)存储单元内容。

DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。

② E 地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。

-E DS:100 F3 ‘AB’ 8D。

3.添充命令FF 范围数据表;将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。

-F DS:0 L5 01,02,03,04,05-F DS:0 L5 01 02 03 04 05(空格分隔)-F DS:0 L5 FF ;5个字节重复使用FF4.显示修改寄存器命令RR;★显示所有寄存器和标志位状态;★显示当前CS:IP指向的指令。

显示标志时使用的符号:标志标志=1 标志=0OF OV NVDF DN UPIF EI DISF NG PLZF ZR NZAF AC NAPF PE POCF CY NC5.汇编命令AA [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。

注释:①在DEBUG下编写简单程序即使用A命令。

②每条指令后要按回车。

③不输入指令按回车,或按Ctrl+C结束汇编。

④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。

6.反汇编命令U① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。

汇编语言第1次实验报告:DEBUG命令及汇编编程工具的使用

汇编语言第1次实验报告:DEBUG命令及汇编编程工具的使用
2获取计算机只认识机器语言的直观感受;
3熟悉汇编语言编程工具的使用。
实验环境
1X86系列桌面系统;
2UltraEdit-32、TASM、TLINK、TD。
实验内容
1用r命令观察寄存器及各标志位:
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
四川大学计算机学院、软件学院
实验报告
学生姓名
夏超
学号
1143041054
班级
113040115
学生专业
计算机科学与技术
学院
计算机学院
课程名称
汇编语言程序设计(第1次实验)
实验时间
2012年10月9日
实验项目
DEBUG常用命令实践及编程初步
报告撰写时间
2012年10月9日
实验目的
1学习DEBUG常用命令,掌握观察寄存器和内存单元的方法;
DS=13AE ES=13AE SS=13AE CS=13AE IP=0100 NV UP EI PL NZ NA PO NC
用d命令观察内存
观察200h单元的内容15h及所在段的段基址13AEh;
计算该单元的物理地址:13CEh;
用不同的段基址和偏移量观察上述物理地址的内容:
13CE:00;
13BE:100;
>anyshow;
4用集成编程工具编译、连接和执行AnyShow.asm。
小结
这次实验课让我认识到计算机的一些很基础的知识,加深了对编译语言和编译原理的理解,也了解到了一些基本的编译语言的基本指令,提升了对编译语言的兴趣,对编译语言的实际用途有了更深的了解。

gdb常用调试命令

gdb常用调试命令

gdb常用调试命令
1. run: 用于开始程序调试
2. break: 用于设置断点,可以是源代码的行号、函数名或地址
3. clear: 用于清除断点,可以是源代码的行号、函数名或地址
4. continue: 用于让程序继续执行,直到遇到断点
5. stepi: 单步运行,每次运行一条汇编指令
6. step: 单步运行,每次运行一行C源代码
7. nexti: 运行至次汇编指令,不进入函数内部
8. next: 运行至次行C源代码,不进入函数内部
9. jump: 任意跳转到某行源代码运行
10. until: 从断点处运行到某行源代码,不包括该行
11. finish: 运行到当前函数的返回处
12. info breakpoints: 显示所有的断点
13. delete: 删除断点
14. watch: 设置变量的某种变化条件
15. list: 显示源代码
16. disassemble: 反汇编指令
17. x: 以十六进制及字符串查看内存值
18. print: 打印数据、表达式及变量
19. set: 设置变量值
20. backtrace: 显示堆栈调用过程。

计算机组成原理与汇编语言实验一 debug调试环境实验

计算机组成原理与汇编语言实验一  debug调试环境实验

实验一 debug调试环境实验
姓名:学号:序号:分数:
1.使用a命令在地址2000:10开始位置输入下面的汇编指令,给出各条指令的保存地址和目标代码;
2.将下面的指令输入到地址2000:10开始的内存中,使用w命令以文件名保存输入的指令,并在
计算机中直接执行程序,给出程序的输出;
mov dl,41
mov ah,02
int 21
mov dl,42
int 21
mov dl,43
int 21
int 20
思考:采用上面的思路,做一个com程序,程序执行后在计算机屏幕上输出自己的名字或者学号实验步骤:
3.用命令u查看8086/8088 cpu在开机后执行的第一条指令
实验步骤:开机时,初始化cs=ffff,ip=0000
4.使用有关debug命令,将2000:10起8个内存地址单元初始化为数据AA,将2000:20
起8个内存单元初始化为数据‘abcdefgh’
实验步骤:
5.区分调试命令t,p,g的不同。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

gdb调试汇编语言
GDB是一个功能强大的调试器,可以用来调试汇编语言程序。

在使用GDB调试汇编语言程序时,你需要首先确保程序已经被编译成可执行文件,并且包含了调试信息。

接下来,你可以通过以下步骤使用GDB来调试汇编语言程序:
1. 启动GDB,在命令行中输入`gdb`命令,然后在GDB提示符下输入可执行文件的名称。

2. 设置断点,你可以使用`break`命令在程序中设置断点,以便在特定的位置停止程序的执行。

例如,你可以输入`break main`来在程序的主函数处设置断点。

3. 运行程序,输入`run`命令来运行程序,程序会在设置的断点处停止执行。

4. 单步执行,使用`stepi`命令来逐条执行汇编指令,这样你可以逐步跟踪程序的执行过程。

5. 查看寄存器和内存,使用`info registers`命令可以查看寄
存器的值,而使用`x`命令可以查看内存中特定地址的内容。

6. 检查堆栈,使用`backtrace`命令可以查看当前的函数调用堆栈,而使用`frame`命令可以切换到不同的堆栈帧。

7. 观察变量,使用`print`命令可以查看特定变量的值,这对于检查程序状态非常有用。

8. 继续执行,当你想让程序继续执行时,可以使用`continue`命令来让程序一直执行到下一个断点或者程序结束。

以上是使用GDB调试汇编语言程序的基本步骤,当然,在实际调试过程中可能会有更复杂的情况需要处理,但是掌握了这些基本操作之后,你就可以更有效地使用GDB来调试汇编语言程序了。

希望这些信息对你有所帮助。

相关文档
最新文档