【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程

目录

  • 前言
  • 一、Debug模式
    • Debug功能
  • 二、下载安装DOSBox和debug.exe
  • 三、实战
    • 用R命令修改寄存器中的内容
    • 用D命令查看内存中的内容
    • 用E命令改写内存中的内容
    • 向内存中存入机器码
    • 用U命令将内存中的机器指令翻译成汇编指令
    • 用T命令执行一条或多条指令
    • 用A命令以汇编指令的形式在内存中写入机器指令
  • 总结

前言

最近学了王爽教授写的《汇编语言》,整理一下学习笔记。

一、Debug模式

Debug是DOS、Windows都提供的实时模式(8086 方式)程序的调试工具。使用它,可以查看CPU各种寄存器的内容、内存的情况和在机器码级跟踪程序的运行。

Debug功能

(1)用Debug的R命令查看、改变CPU寄存器的内容
(2)用Debug的D命令查看内存中的内容
(3)用Debug的E命令改写内存中的内容
(4)用Debug的U命令将内存中的机器指令翻译成汇编指令
(5)用Debug的T命令执行一条机器指令
(6)用Debug的A命令以汇编指令的格式在内存中写入一条机器指令

Windows 32位系统可以直接从DOS方式下进入Debug

【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第1张图片
Windows 64位系统已经不再支持命令行模式下进入Debug了,想要进入Debug模式,需安装DOSBoxdebug.exe来进入Debug模式。

二、下载安装DOSBox和debug.exe

通过下面的链接即可下载:
链接:https://pan.baidu.com/s/1eMB0ddYycOdF42QmoXhJOQ?pwd=DDOS
提取码:DDOS

在这里我将DOSBox 默认安装在 C:\Program Files (86X) 目录下。将debug.exe 放在D盘的Debug目录下;

打开后是这样的界面,有两个窗口,两个窗口必须同时打开,不能关闭任意一个!

【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第2张图片
我们可以看到Z:>,这是DOSBox的虚拟盘符
然后依次输入下面的命令

mount D D:\Debug
D:
debug

【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第3张图片

这样就可以进入Debug模式了(其中D盘是在DOSBox中创建的虚拟D盘,并不是本地的D盘)

三、实战

用R命令修改寄存器中的内容

以寄存器 ax为例

【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第4张图片
Enter键,R命令操作结束。

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

以内存10000H处的内容为例,用“d 段地址:偏移地址”的格式来查看
【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第5张图片
图中
左边,是每行的起始地址
中间,是指定地址开始的128个单元的内容,用16进制的格式输出,每行输出从16的整数倍的地址开始,最多输出16个单元的内容。
右边,是每个单元中的数据对应的ASCII码字符,当数据没有对应的ASCII字符时,Debug就会用 “ . ” 代替。

若查看指定内存处的内容,可以用“d 段地址:起始偏移地址 结尾偏移地址”的格式来查看。

Enter键,D命令操作结束。

用E命令改写内存中的内容

以内存1000:0-1000:9单元为例,将其中的内容改为0、1、2······7、8、9,可以用“e 起始地址 数据 数据 数据······”的格式来进行。
【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第6张图片

同时,还可以用e命令以提问的方式来逐个的修改从某一地址开始的内存单元内容

E命令
Enter键,结束E命令。

向内存中存入机器码

要知道,机器码也是数据,当然可以用e命令将机器码写入内存,比如写下面的指令:
【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第7张图片
可以用e命令这样写:
e命令写入机器码

用U命令将内存中的机器指令翻译成汇编指令

类比上面的命令,u命令运用如下:
【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第8张图片
从左到右依次是:每一条机器指令的地址机器指令机器指令所对应的汇编指令

Enter键,结束U命令。

用T命令执行一条或多条指令

【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第9张图片
图中标红线的地方就是下一步要进行的指令,用t命令即可立刻执行。

Enter键,结束T命令。

用A命令以汇编指令的形式在内存中写入机器指令

通过上面的练习我们发现用E命令写入机器指令很麻烦,所以我们可以用A命令直接写入汇编指令:
【汇编语言】实验1查看CPU和内存,用机器指令和汇编指令编程_第10张图片
Enter键,结束A命令。

总结

以上为本人学习汇编语言时的摘录总结,主要内容来源于汇编语言(第四版) 王爽 著,大家若是感兴趣可以看看原书,很值得推荐,以上内容如果有什么错误的话,还请大家指正!

你可能感兴趣的:(汇编,网络,后端)