最近头脑有点发热,又回顾(几年之前看过几遍)了一下汇编语言(第二版,王爽著)。
在第二章快要结束时,有个实验1(查看CPU和内存...)。
其中有一个实验任务是修改寄存器CS和IP中的值。
当时书没看仔细(估计是看了好几遍的缘故,有点麻木),没有看明白是如何修改CS和IP的值,加上前面的一节中有讲到如何通过使用jmp指令修改CS和IP,于是想在debug窗口中直接使用jmp指令修改CS和IP,结果出现如下错误。
出现了一个Error,当时就很纳闷,于是百度了一下,发现了有几篇文章也是遇到了这个问题(或许和我想的不是同一个问题),但是它们没有给出解决方案。
只好把这个章节又看了一篇,当时很怀疑能否使用R命令修改CS和IP,结果试了一下竟然成功了,恍然大悟,原来是我理解错了,jmp是用于指令执行的时候修改CS和IP,而不是在debug中直接修改,下图就是正确的修改方式。
#jmp指令的执行。
#在内存地址1000:0写入一段指令。
-a 1000:0
1000:0000 mov ax,1
1000:0003 mov bx,2
1000:0006 jmp 1000:0
1000:0008
#修改寄存器CS和IP的值。
-r cs
cs 0AF4
:1000
-
-r ip
ip 0011
:0
#执行一条指令(mov ax,1),执行之后IP的值为0003。
-t
#执行一条指令(mov bx,2),执行之后IP的值为0006。
-t
#执行一条指令(jmp 1000:0),执行之后IP的值为0000。
-t
额,这难道就是“书读百遍,其义自见”?
分享到:
相关推荐
1. **Debug 工具介绍**:在汇编语言开发过程中,调试是非常重要的环节。"Debug"是一款经典的汇编语言调试工具,尤其适用于学习和理解汇编语言程序的工作原理。通过它,开发者可以在程序执行的每个步骤中停下来检查...
【汇编语言程序设计与DEBUG调试】 汇编语言是一种低级编程语言,它与机器语言直接对应,每条指令都代表计算机硬件的一个特定操作。在编写汇编语言程序后,通常需要通过调试工具来检查和修正错误。DEBUG是DOS操作...
在汇编语言中,寄存器是CPU中的一组小的内存区域,用来存储数据和指令。它们是CPU直接访问和处理数据的区域。常用的寄存器有: 1. AX寄存器:是累加寄存器,用于存储算术和逻辑操作的结果。 2. BX寄存器:是基址...
在学习IBM-PC汇编语言的过程中,DEBUG是一个重要的调试工具,它包含在DOS系统中,位于`c:\windows\command`目录下。DEBUG不仅能够调试已经汇编和链接后的可执行程序,还支持直接在环境中编写简单的汇编程序。了解...
DEBUG是DOS操作系统中内置的一个命令行调试工具,对于学习汇编语言的初学者来说,它提供了查看和修改内存、单步执行指令、设置断点等功能。其主要命令包括: 1. A - 用于汇编指令。 2. D - 显示内存区域的内容。 3. ...
在编程领域,汇编语言是一种低级编程语言,与机器语言密切相关,直接对应于计算机的指令集。为了方便程序员调试汇编程序,Microsoft开发了一个名为DEBUG的工具,它提供了丰富的功能,包括单步执行、设置断点、查看和...
本文将对王爽汇编语言期末复习题进行总结和分析,涵盖汇编语言基础知识、8086CPU 工作原理、DEBUG 命令、指令格式、寄存器、内存寻址、栈段管理等方面的知识点。 一、汇编语言基础知识 * 汇编语言是一种低级语言,...
在学习汇编语言的过程中,调试技能至关重要。本文将详细介绍如何利用Debug工具进行汇编语言的学习和调试,包括Debug的基础知识、常见命令及其应用场景等。 #### 二、Debug简介 **Debug** 是一种用于调试程序的工具...
### 汇编语言Debug命令解释 #### 一、DEBUG的主要用途及DEBUG的调用 DEBUG是一款专为汇编语言设计的调试工具,它通过多种方式帮助程序员有效地调试程序,如单步执行、设置断点等。这款工具使得开发者能够直接检查...
【汇编语言程序设计实验报告】是合肥工业大学计算机与信息学院...通过这个实验,学生能够实践汇编语言的基本操作,理解汇编指令在实际程序中的运用,同时掌握DEBUG的使用技巧,为后续的汇编语言程序设计打下坚实基础。
### 汇编语言 DEBUG 详解 #### 一、DEBUG 程序的启动与基本概念 **DEBUG** 是一种专用于 DOS 环境下的调试工具,主要用于汇编语言程序的开发与调试。它提供了丰富的命令集,帮助开发者进行程序的测试与错误定位。 ...
随着计算机技术的发展,汇编语言也在不断发展和改进。 汇编语言的类型 汇编语言有很多类型,包括: * x86 汇编语言:适用于 Intel x86 架构的计算机。 * ARM 汇编语言:适用于 ARM 架构的计算机。 * MIPS 汇编...
这个过程强调了汇编语言与机器语言之间的转换,以及DEBUG在程序调试中的作用。 第三部分,实验者在命令行环境中使用TASM进行编译,TLINK进行链接,最后执行AnyShow.asm。这演示了从源代码到可执行程序的完整编译...
4. **内存操作**:讲解内存模型和内存访问,包括段和偏移地址的概念,以及如何通过DS、ES、SS、CS等段寄存器配合IP(指令指针)进行内存寻址。 5. **I/O操作**:如何通过IN和OUT指令与外部设备交互,以及中断处理...
而IP(指令指针寄存器)和CS(代码段寄存器)是8086 CPU中的两个寄存器,用来指示下一条将要执行的指令的地址和当前代码段的位置。 通过这些基本的命令和操作,程序员可以使用DEBUG工具来调试汇编程序。例如,通过...
### 汇编语言调试DEBUG命令详解 #### 概述 在计算机编程领域,特别是针对低级别的编程语言如汇编语言,调试工具是必不可少的一部分。本文将详细介绍DEBUG这一古老的调试工具,它主要用于MS-DOS环境下进行程序调试...
在这个步骤中,我们使用 DEBUG 程序来调试汇编语言程序。DEBUG 程序是一种专门为汇编语言设计的调试工具,它提供了多种调试方式,例如单步、跟踪、断点和连续等。DEBUG 程序的主要命令有: * A 命令:从指定地址...
在调试工具如DEBUG中,可以通过`R`、`D`和`E`命令来查看、显示和修改寄存器和内存内容。 理解汇编语言和8086 CPU的工作原理对于深入学习计算机体系结构、操作系统和低级别编程至关重要。掌握这些基础知识有助于开发...
调试汇编语言程序通常需要借助调试器,如DEBUG或更现代的如OllyDbg,它们可以查看内存、跟踪执行、设置断点、修改寄存器等,以帮助找出程序中的错误。 在实验过程中,你需要动手编写简单的汇编程序,如打印字符、...