实验一

四、实验结果

1、试验任务2

(1)使用d命令查看生产时期的截图

  

(2)使用e命令修改生产日期所在内存单元的截图

  

(3)再次使用d命令查看的截图

  

 

 

(4)结论:不能修改,因为内存中C0000H到FFFFFH为各类ROM地址空间,即只读存储器地址空间,因此无法修改。

 

2、实验任务3

(1)使用e命令修改内存单元的命令及效果截图 

  -e b800:0 03 04 03 04 03 04 03 04 03 04 
  

(2)使用f命令批量填充内存单元的命令及效果截图

  -f b800:0f00 0f9f 03 04 

  

(3)尝试修改内存单元的效果截图

  -e b800:0 03

  

 

 

3、实验任务4

  

 

问题1:

  栈顶的逻辑地址为20:30;物理地址为00230H。

问题2:

  

 

问题3:
  数据空间内的数据没有变化:

  

 

问题4:

  数据空间内的数据有变化:

  

 

 

4、实验任务5

问题1:

  单步执行完 mov ss,ax 这一条指令时没有暂停,后面的指令 mov sp,30 是紧接着执行的。

问题2:

  在执行完mov ss,ax 这一条指令后,将该指令的下一条指令的物理地址保存在栈段的末尾。

 

5、实验任务6

(1)程序源码:
  

 

(2)使用masm、link对程序汇编链接过程截图:

  

  运行结果截图:

  

(3)task6.exe的程序段前缀截图:
  

 

 

6、实验任务7

(1)完整源码:

  

 

  第一空:由于在程序中,段名就相当于一个标号,它代表了该程序段的段地址;因此根据题目要求,先把该程序段的段地址code保存在段址寄存器内。

  第二空:由于对程序汇编链接完成后,寄存器CX中保存着该程序段的字节长度;又因为CX在程序段中控制着循环次数,而该程序每次循环即复制该程序段中一个字节到内存0:200开始的连续内存单元中;              因此将CX中存储的该程序段字节长度赋值给CX来实现循环次数的控制。

(2)使用g命令运行到指定点的截图:

  

  使用u命令反汇编0:200到复制代码长度这一段内存空间的截图:

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-10-30 12:07  brilliant_blue  阅读(51)  评论(5编辑  收藏  举报