汇编实验一 查看CPU和内存,用机器指令和汇编指令编程

 

实验结论

实验任务一:

(1)A命令将程序段写入1000:0开始的内存单元中,然后用U命令查看写入的代码段反汇编结果

 

(2)r命令改写cs:ip地址,再用r命令查看一下,用t命令运行代码

 

每次运行t命令,程序运行一行代码,同时cs:ip地址自动偏移指令长度的地址

实验任务二:

(1)A命令将程序段写入2000:0开始的内存单元中

此时我们注意到,代码中jmp 2000:0003的效果使得代码形成了一个循环,每次循环翻倍ax中的值,所以我们可以用它来计算28次方

(2)修改cs:ip值并用t命令运行程序

 

最后ax的结果为0100,即16的平方,28次方

实验任务三:

(1)d命令查看FFF0:0开始的内存地址,尝试寻找生产日期

 我们明显注意到最后一行存在着生产日期为01/01/92

(2)尝试改写生产日期

  此时我们发现并没有成功改变,这是因为从C0000FFFFF的内存地址都属于ROM,不能修改其内容

实验任务四:

(1)向从B8100H开始的单元中写入数据

(2)尝试更改输入的数据和更改数据的地址

 我们可以发现,每次输入数据,屏幕右上都会出现一个字符,再次输入相同数据,字符颜色会改变。而改变更改的内存单元会导致出现字符的位置发生变化。因为A0000BFFFF的内存地址属于显存,更改会改变屏幕显示。

实验总结与体会

 一、通过本次实验,可以熟练掌握了debug工具几项命令的基本使用:

  1r命令查看和修改寄存器中的内容(注意不能直接修改段寄存器)

2e命令改写内存单元中的内容(既可以写入数据也可以写入指令,因为它们实际上是一样的)

3d命令查看内存中的内容

4u命令进行反汇编将内存中的内容解释为对应的汇编指令

5t命令执行cs:ip处的命令

6a命令以汇编的方式向内存写入指令

二、掌握了内存单元的分配和意义:

000009FFFF的内存地址属于主储存器地址空间

A0000BFFFF的内存地址属于显存

C0000FFFFF的内存地址都属于ROM

修改显存地址中的内存内容会改变屏幕显示,无法修改ROM地址中的内容

猜你喜欢

转载自www.cnblogs.com/makise-kurisu/p/9837145.html