当前位置:   article > 正文

汇编实验之用debug命令查看寄存器和内存中的内容_瑞萨ad值怎么在debug里面看

瑞萨ad值怎么在debug里面看


前言

安装汇编实验所需的软件:DOSBox下载地址https://download.csdn.net/download/weixin_51165960/36497323
在安装好DOSBox后,使用debug命令进行汇编语言的实验一。
1.使用Debug命令查看寄存器的值。
2.使用Debug命令查看内存的内容。

一、用Debug的R命令查看、改变CPU寄存器的内容

r命令查看cpu寄存器内容:

在这里插入图片描述

注意cs和ip的值。图中cs=073F,ip=0100,也就是说,内存073F:0100处的指令为CPU当前要读取、执行的指令。在所有寄存器的下方,debug还列出了CS:IP所指向的内存单元所存放的机器码,并将它翻译为汇编语言。

可以看出,CS:IP所指向的内存单元为073F:0100,此处存放的机器码为0000,对应的汇编指令为 ADD [BX+SI],AL,就是把AL的值与[BX+SI]相加然后将结果放到DS:[BS+SI]中。图中DS:0000=CD,DS:0000就是DS这个数据段的偏移量0000的地址,[0000]就是进阶寻址这个数据,看到的是CD。

r命令改变寄存器中的内容:

比如修改寄存器AX中的值,用r命令后加寄存器名来进行,输入“r ax”后回车,将出现“:”作为输入提示,在后面输入要写入的数据后回车,即完成AX中内容的修改,再次使用r命令可查看修改后的结果。图中将AX中的值0000修改为1111。
在这里插入图片描述

二、用Debug的D命令查看内存中的内容

用D命令直接查看内存中的内容

将直接列出debug预设地址处的内容。
在这里插入图片描述

用“D 段地址:偏移地址”的格式来查看内存某处的内容

如查看内存10000H处的内容,首先将这个地址表示为“段地址:偏移地址”的格式,可以是“1000:0”。

使用“d 段地址:偏移地址”的格式,debug将列出从指定内存单元开始的128个内存单元的内容。

在这里插入图片描述

最左侧是每行的起始地址以逻辑地址的形式给出。

中间是从指定地址开始的128个内存单元的内容,用十六进制的格式输出,每行的输出是从16的整数倍的地址开始,最多输出16个单元的内容。中间的“-”将每行的输出分为两部分,便于查看。

右边是每个内存单元中数据对应的可显示的ASCII码字符。没有对应可显示的字符就用“.”来替代。

注意内存中的内容,在不同的计算机中是不一样的,也可能每次使用debug看到的内容都不相同,因为使用debug看到的都是原来就在内存中的内容,这些内容会因为系统环境的变化发生变化。

三、用Debug的E命令改写内存中的内容

指定d命令的查看范围,采用“d 段地址:偏移地址 结尾偏移地址”的格式:

比如查看1000:0~1000:9中的内容,可以用“D 1000:0 9”来实现。

在这里插入图片描述

用debug的e命令改写内存中的内容:

可以使用e命令来改写内存中的内容,比如要将内存的1000:0~1000:9单元中的内容分别写为0,1,2,3,4,5,6,7,8,9,可以使用“E 起始地址 数据 数据 数据 ……”的格式来进行。

在这里插入图片描述

采用提问的方式来一个一个的修改内存中的内容:

在这里插入图片描述

输入 e 1000:10 ,回车,debug显示起始地址1000:0010和第一个单元的原始内容:00,然后光标停在“.”后面提示想要写入的数据,此时可以有两种选择:其一输入数据(此时输入的是“1”)然后按空格键,即用输入的数据改变当前的内存单元;其二不输入数据直接按空格键,则不对当前内存单元进行改写。

希望所有的改写内存单元改写完毕后回车,e命令操作结束。

可以用e命令向内存中写入字符或字符串:

在这里插入图片描述

同样也可以用e命令向内存中写入字符串,比如,用e命令从内存1000:0开始写人:数值1,字符串“a+b”、数值2、字符串“c++”,结果如图所示:
在这里插入图片描述

用e命令将机器码写入内存:

比如想要从内存1000:0单元开始写入这样一段机器码:

b80100 mov ax,0001

b90200 mov cx,0002

01c8 add ax,cx

可用下图方式进行:
在这里插入图片描述

用u命令查看写入或内存中原有的机器码所对应的汇编指令,u命令为反汇编指令。

可以用u命令将从1000:0开始的内存单元中的内容翻译为汇编指令,并显示出来:

首先用e命令向内存1000:0开始的内存单元中写入了8个字节的机器码;

然后用d命令查看内存1000:0~1000:1f中的数据;

最后用u命令查看从1000:0开始的内存单元中的机器指令及其所对应的汇编指令。

u命令的输出分为三部分,包括每一条机器指令的地址、机器指令、机器指令所对应的汇编指令。
在这里插入图片描述
由此可以看出内存中的数据和代码没有任何区别,关键在于如何解释。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号