实验一
作者:互联网
四、实验结果
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到复制代码长度这一段内存空间的截图:
标签:03,截图,04,命令,实验,内存,程序段 来源: https://www.cnblogs.com/djl-assembly/p/15437894.html