201983290255王宇霄实验一

实验任务二

1.生产日期截图

 

2.修改生产日期

 

 

结论:不能修改,在8086中,地址0-9ffff为主存,地址A0000-BFFFF内存为显存,显存输入的数据会显示在显示器上,C0000-FFFFF为rom的地址空间,rom是只读内存,不可以修改.

 

实验任务三

1命令及效果如图

 

2命令及效果如图

 

3命令及效果如图

 

用e修改显存中的数据,显存与屏幕是同步的,显存填写内容,同时也会显示在屏幕上,修改主存的内容屏幕不会显示出来;

 

实验任务四

mov ax, 20 mov ds, ax mov ss, ax mov sp, 30

push [0] ; 执行后,寄存器(sp) = _002e___

push [2] ; 执行后,寄存器(sp) = __002c__

 push [4] ; 执行后,寄存器(sp) = __002a__

push [6] ; 执行后,寄存器(sp) = __0028_

 pop [6] ; 执行后,寄存器(sp) = ___002a_

pop [4] ; 执行后,寄存器(sp) = __002c__

pop [2] ; 执行后,寄存器(sp) = ___002e_

pop [0] ; 执行后,寄存器(sp) = ___0030_

问题1:逻辑:0020:0030 物理:00230

问题2:

 

 问题3:

 

问题4:

 

 

实验任务五

 

问题1:不是,单步执行完这条指令后接着执行下一条指令mov sp,30

问题2:该栈空间内存单元值的变化随着cs,ip的变化而变化。因为t命令的终断,用该空间记录关键信息

 

实验任务六

 源代码:

 

assume cs:code
code segment
start:
mov cx,10
mov dl,'0'
s:mov ah,2
int 21h
add dl,1
loop s
mov ah, 4ch
int 21h
code ends
end start

 

汇编链接截图:

 

 运行结果:

 

 debug观察psp截图:

 

 前两个字为cd 20

 

实验任务七

补全代码如下图

 

因为cs:ip表示程序的首地址,cs存储代码的段地址,ip又为0,所以将cs赋值给ds,又通过观察该程序从头到mov ax,4c00h长度为23个字,所以将17h赋值给cx,反复执行23次

最终效果如图

 

posted @ 2021-10-23 13:28  1171021785  阅读(49)  评论(3)    收藏  举报