寄存器
王爽汇编语言实验
第四十五页实验内容
实验任务1:
使用debug,把下面的程序写入内存中,并且逐条执行,观察每条指令执行之后cpu中的相关寄存器的内容的变化
这里编写汇编指令的方式有两种,第一种是通过机器码写入汇编指令
使用E命令写入,使用U命令查看,使用T命令来执行
在执行汇编的代码的时候,首先要先确定CS:iP的位置,不然无法执行到我们存放在1000:0中的汇编指令
因为一共编写了14条指令,所以一共执行14次,最后可以看到ADD AL,9C执行正确
实验任务2:
把下面的三条指令写入到2000:0开始的内存单元中,利用这三条指令来计算2的八次方
MOV AX,1
ADD AX,AX
JMP 2000:0003
这个代码的意思大概是这样子的,首先把1放在AX中,然后再加上一个1,这样子AX中就是2了
让后再JMP跳到第二条指令上,再次去执行ADD指令,这样子第二次就是2+2(2的平方)
第三次就是4+4(2的三次方)
第四次就是8+8(2的四次方)
一直计算到第八次,AX中存放的数值就是2的八次方AX=10000000
反复执行,可以看到指令一直在这几条中来回的跳转,并且AX的数值在改变
实验任务3:
查看内存中的内容
PC机主板上的ROM上写着一个生产日期,在内存FFF000H-FFFFFH中的某几个单元中,找到这个生产日期,并且尝试修改这个日期
-d fff0:
大概应该就是这个了,01/01/92
下面的都是乱码,不知道是什么东西
右边的对应的是ASCII码
可以用debug 中的E命令来修改内存中的内容
实验任务4:
向内存从B8100H开始的单元中填写数据
如:
-e B810:0000 01 01 02 02 03 03 04 04
我本来一直以为自己哪里写错了,还以为是我的DOS出现了问题,我重新启动了一下,然后还是这个样子,去看书本第12页,上面有解释为什么会出现这样子的原因
然后还是这个样子,去看书本第12页,上面有解释为什么会出现这样子的原因