Debug课后实验

实验任务

(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CUP中相关寄存器中内容的变化

机器码汇编指令
b8 20 4emov ax,4E20
05 16 14add ax,1416
bb 00 20mov bx,2000
01 d8add ax,bx
89 c3mov bx,ax
01 d8add ax,bx
b8 1a 00mov ax,001A
bb 26 00mov bx,0026
00 d8add al,bl
00 dcadd ah,bl
00 c7add bh,bl
b4 00mov ah,0
00 d8add al,bl
04 9cadd al,9c

提示,可用E命令和A命令以两种方式将指令写入内存。

实践(用E命令)

在CS=2000 IP=0000上面执行
e 2000:0000
将机器码依次输入即可
在这里插入图片描述t

在这里插入图片描述

实践(用A命令)

在这里插入图片描述在这里插入图片描述
然后重复实践(E命令)的操作

(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方在这里插入图片描述在这里插入图片描述

这里AX中的100是十六进制,也就是2的8次方256,
在这里插入图片描述
利用了jmp转跳实现循环,1+1=2,2+2=4,4+4=8,8+8=10…这样依次下去

(3)查看内存中的内容

PC机主板上分的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并试图改变它
首先ROM是只读存储器,写入数据去改变是没有结果的
所以我们只能看
根据提示FFF00H~FFFFFH的某几个单元中直接用D命令去查看一下

在这里插入图片描述
01/01/92,8086CUP模拟器中的ROM是1992年1月1日生产
意外查到一个可以查看电脑生产日期的方法
在这里插入图片描述

(4)向内存从B8100H开始的单元中填写数据

-e B810:0000 01 01 02 02 03 03 04 04
在这里插入图片描述
试了两组数据,发现这段值没有改
奇怪的现象,多次尝试发现数变了

在这里插入图片描述因为是模拟机的原因B810:0000该段是向显存中输入数据,该数据会显示在屏幕上,而之所以数发生了改变,是因为输入的数据不一样,那么要显示的数也是不一样的,需要不一样,底层的数据也是不一样的

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Back~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值