汇编语言:实验一(熟悉debug的基本操作)

本文通过debug工具详细介绍了如何查看和修改CPU寄存器及内存内容,包括使用R命令查看寄存器状态、D命令查看内存、E命令改写内存、U命令将机器指令转换为汇编指令等。并通过实例演示了如何通过汇编指令计算2^8的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验内容:

  • 用debug的R命令查看,并改变cpu寄存器的内容

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

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

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

  • 用 debug 的T命令执行一条机器指令

  • 用 debug 的A命令以汇编指令的格式在内存中写入一条机器指令

实验过程:

首先进入debug
在这里插入图片描述
查看,并改变cpu寄存器中的一个的内容
在这里插入图片描述
用D命令查看内存中的内容,这里查看了从地址073F:0000开始内存上的内容

在这里插入图片描述

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

在这里插入图片描述

用U命令将内存中的机器指令翻译成汇编指令,我们从 地址073f:0000处翻译

在这里插入图片描述

我么用A命令编写一个汇编程序,并将其机器指令翻译成汇编指令,并执行

在这里插入图片描述

如上图:当前已经把我们的汇编指令写入内存中了,我们把内存中从地址073F:0100处的一段连续的内存中的机器语言翻译成汇编指令。

接下来我们执行T指令,观察AX寄存器和BX寄存器的改变:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DX4E02jI-1612883648865)(https://secure-static.wolai.com/static/7B7hbywFg7RPUZuQoA2HUh/QQ截图20210209215427.png)]

一开始的指令是 mov ,ax=4E20,此时执行了机器指令,AX=4E20,接下来执行,ADD ax,1416

所以当前ax+1416=4e20+1416=6236

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SRPNM8cG-1612883648865)(https://secure-static.wolai.com/static/aC134PPnoCh6zggYhMFfQD/QQ截图20210209215623.png)]

接下来一次执行汇编的命令,来模拟cpu的执行过程。

问题二

将下面三条指令写入从2000:0开始的内存单元中,利用这三条指令计算 2^8。

mov ax,1

add ax,ax

jmp 2000:0003 

写入以上命令并检查当前地址,如果和以上地址不想应,则修改地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n72w9RBT-1612883648866)(https://secure-static.wolai.com/static/dVJ6Lb4RKVJopcAr2X1bH4/QQ截图20210209220646.png)]

接下来执行以上命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QouX9aZ9-1612883648867)(https://secure-static.wolai.com/static/ds3B7wQC9vPk1TVLN11ghm/QQ截图20210209220847.png)]

解释这样如何得到ax=0008

首先我们在2000:0000→2000:0002过程中我们执行了ax=0001,
在2000:0003→2000:0004过程中我们执行了 ax+ax,此时ax=0002,
然后我们在由jmp:2000:0003地址重新执行add ax,ax,
我们往复执行这一循环对ax不断进行倍加,得到ax=0008

问题三

查看主板内存中的内容

pc机主板的上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找出这个日期并试图改变它。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wNPmMvBx-1612883648868)(https://secure-static.wolai.com/static/7XrYVtbJF7CAHvNB3BMbP9/QQ截图20210209222838.png)]

显示生成日期:01/01/92 92年生产的主板??假的吧!

问题四

向B810H开始的单元中填写数据:

如 e b810:0000 01 01 02 02 03 03 04 04

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XpHqeV1e-1612883648868)(https://secure-static.wolai.com/static/qTLD6e1rBjiYjfizsgjUrc/QQ截图20210209231131.png)]

细心的话可以发现,屏幕有些地方开始出现数字,这些数字是16进制转化成10进制所对应的ascii码对应的图像,而b810:0000所对应的内存地址是指向的是显存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值