-
几个命令:
命令 功能 R 查看、改变CPU寄存器的内容 D 查看内存中的内容 E 改写内存中的内容 U 将内存中的机器指令翻译成汇编指令 T 执行一条机器指令 A 以汇编指令的格式在内存中写入一条机器指令 - 进入debug后,直接输入
R
查看CPU寄存器的内容 - 若要修改一个寄存器中的值,比如AX中的值,可用
R
命令后加寄存器名来进行,输入“r ax”后按Enter键,将出现“: ”作为输入提示,在后面输入要写入的数据后按Enter键,即完成了对AX中内容的修改。若想看一下修改的结果,可再用R命令查看。 - 如果我们想知道内存10000H处的内容,可以用“d 段地址:偏移地址”的格式来查看。
d 1000:0
- 使用“d 段地址:偏移地址”的格式,debug将列出从指定内存单元开始的128个内存单元的内容。
- 使用D命令,debug将输出3部分内容
- 左边是每行的起始地址
- 中间是从指定地址开始的128个内存单元的内容,用十六进制的格式输出,每行的输出从16的整数倍的地址开始,最多输出16个单元的内容。注意在每行的中间有一个“-”,它将每行的输出分为两部分,这样便于查看。“-”左边是XXXX:X0~XXXX:X7的8个单元,右边是XXXX:X8~XXXX:XF的8个单元。
- 右边是每个内存单元中的数据对应的可显示的ASCII码字符。
- 在使用“d 段地址:偏移地址”之后,接着使用D命令,可列出后续的内容。
- 也可以指定D命令的查看范围,此时采用“d 段地址:起始偏移地址 结尾偏移地址”的格式。
- 比如要看1000:0~1000:9中的内容,可以用
d 1000:0 9
来实现。
- 如果我们就想查看内存单元10000H中的内容,可以用如下3种命令的任一种,因为所有“段地址:偏移地址”都表示了10000H这一物理地址。
d 1000:0 d 0fff:10 10 d 0100:f000 f000
- 用debug的E命令改写内存中的内容。
- 可以使用E命令来改写内存中的内容,比如,要将内存1000:0~1000:9单元中的内容分别写为0、1、2、3、4、5、6、7、8、9,可以用“e 起始地址 数据 数据 数据……”的格式来进行,如下图所示:
e 1000:0 0 1 2 3 4 5 6 7 8 9
- 也可以采用提问的方式来一个一个地改写内存中的内容,步骤如下:
- 输入
e 1000:10
按Enter键。 - debug显示起始地址1000:10,和第一单元(即1000:10单元)的原始内容,然后光标停在
.
的后面提示输入想要写入的数据,此时可以有两个选择:其一为输入数据,然后按空格键,即用写入的数据改写当前的内存单元;其二为不输入数据,直接按空格键,则不对当前内存单元进行改写。 - 当前单元处理完成后(不论是改写或没有改写,只要按了空格键,就标识处理完成),debug将接着显示下一个内存单元的原始内容,并提示及进行修改。
- 所有希望改写的内存单元改写完毕后,按
Enter
键,E命令操作结束。
- 输入
- 也可以用E命令向内存中写入字符串,比如,用E命令从内存1000:0开始写入:数值1、字符串“a+b”、数值2、字符串“c++”、字符3、字符串“IBM”,如下:
e 1000:0 1 “a+b” 2 “c++” 3 “IBM”
-
用E命令向内存中写入机器码,用U命令查看内存中机器码的含义,用T命令执行内存中的机器码。(见P42)
-
用debug的A命令以汇编指令的形式在内存中写入机器指令。(见P44)
转载请注明:guanjianhe的博客 » 汇编笔记04