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

前言

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

一、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

Win32位系统进入Debug
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目录下;

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

DOSBox
我们可以看到Z:>,这是DOSBox的虚拟盘符
然后依次输入下面的命令

mount D D:\Debug
D:
debug

在这里插入图片描述

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

三、实战

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

以寄存器 ax为例

R命令
Enter键,R命令操作结束。

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

以内存10000H处的内容为例,用“d 段地址:偏移地址”的格式来查看
D命令
图中
左边,是每行的起始地址
中间,是指定地址开始的128个单元的内容,用16进制的格式输出,每行输出从16的整数倍的地址开始,最多输出16个单元的内容。
右边,是每个单元中的数据对应的ASCII码字符,当数据没有对应的ASCII字符时,Debug就会用 “ . ” 代替。

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

Enter键,D命令操作结束。

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

以内存1000:0-1000:9单元为例,将其中的内容改为0、1、2······7、8、9,可以用“e 起始地址 数据 数据 数据······”的格式来进行。
E命令

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

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

向内存中存入机器码

要知道,机器码也是数据,当然可以用e命令将机器码写入内存,比如写下面的指令:
指令
可以用e命令这样写:
e命令写入机器码

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

类比上面的命令,u命令运用如下:
u命令
从左到右依次是:每一条机器指令的地址机器指令机器指令所对应的汇编指令

Enter键,结束U命令。

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

T命令
图中标红线的地方就是下一步要进行的指令,用t命令即可立刻执行。

Enter键,结束T命令。

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

通过上面的练习我们发现用E命令写入机器指令很麻烦,所以我们可以用A命令直接写入汇编指令:
A命令
Enter键,结束A命令。

总结

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

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉马努金的小石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值