震惊!!!学习汇编语言时用debug查看电脑的生产日期,竟发现我新买的电脑是92年翻新机???!!!

笔者最近刚开始用新买的电脑学习汇编,就练习了一下debug的用法,这不练不知道,一用练真的猛吓了一跳

之所以吓一跳,原因是这个样子的:





















这道题是这个样子的:
pc机主板上的ROM中写有一个生产日期,在内存FFF00H-FFFFFH的某几个单元中,
请找到这个生产日期并试图修改它。

思路很简单,用d命令查看内存单元fff0:0开头的128个存储单元,然后一直向后走,直到来到了以 FFF0:00F0开头的内存单元
震惊!!!学习汇编语言时用debug查看电脑的生产日期,竟发现我新买的电脑是92年翻新机???!!!_第1张图片
可以清楚的看到,电脑的生产日期是01/01/92(日/月/年),我竟然被坑了???!!!这让我的心情久久不能平复…在经过网上查资料之后,发现这个问题并不是我一个人有,原来这是win10的锅:Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具,但在win10中系统已经没有了自带的debug,所以我们安装了DosBox软件来虚拟Dos环境,所以内存中的日期也是它虚拟出来的,自然不能作为参考了
注:这就好比是inter处理器的虚拟8086模式,而不是直接操作实模式,避免了一些误操作(关于实模式,保护模式以及虚拟8086模式有时间再补充进来)

题目后半部分:修改日期
在这里插入图片描述
很显然,我们没办法修改生产日期,原因呢:
可以看一下下图:8086CPU的内存地址空间分配
震惊!!!学习汇编语言时用debug查看电脑的生产日期,竟发现我新买的电脑是92年翻新机???!!!_第2张图片
题目地址显然是ROM材质,所以就很清楚了。

你可能感兴趣的:(汇编,debug,编程语言,windows)