实验1 8086汇编指令编码和调试

实验任务2

实验1 8086汇编指令编码和调试

实验1 8086汇编指令编码和调试 

实验1 8086汇编指令编码和调试

 

生产日期为92年一月一日。
不能被修改。原因:该段地址为ROM只读存储器,不能被修改。

 

实验任务3

在debug中,使用e命令,向内存单元填写数据。

实验1 8086汇编指令编码和调试

在debug中,使用f命令,向内存单元批量填写数据。

实验1 8086汇编指令编码和调试

实验1 8086汇编指令编码和调试

实验1 8086汇编指令编码和调试

 

 实验任务4

实验1 8086汇编指令编码和调试

SP:002E  002C  002A  0028  002A  002C  002E  0030

问题一:栈顶逻辑地址:0020:0030  物理地址:00230

问题二:DEBUG是用CPU的陷阱中断实现单步中断的,中断会把CS和IP的值弄到栈里

单步调试到汇编指令 push [6] 执行结束, pop [6] 执行之前

实验1 8086汇编指令编码和调试

问题三:

汇编指令 pop [0] 执行结束后

实验1 8086汇编指令编码和调试

无变化

问题四:

最后四条指令改成截图中的顺序, pop [6] 指令执行结束后

实验1 8086汇编指令编码和调试

发生变化

实验任务5

实验1 8086汇编指令编码和调试

问题一:单步执行mov ss,ax后并没有暂停。由于此指令修改了段寄存器,之后的一条指令mov sp,30也紧随着执行了。

问题二:

 

实验任务6

 

使用masm、link对程序汇编链接过程截图,以及,运行可执行程序task5.exe的运行结果截图

 

实验1 8086汇编指令编码和调试

 

debug中查看task5.exe的程序段前缀PSP的截图

实验1 8086汇编指令编码和调试

 

实验任务7

实验1 8086汇编指令编码和调试

cs为代码段寄存器,能让ds定位到程序开始地址

cx为程序代码长度,将其传递给cx为loop循环次数

 

在debug中调试,使用g命令将程序执行到 loop s 之后、 mov ax, 4c00h 之前

实验1 8086汇编指令编码和调试

 

u命令反汇编0:200到复制代码长度

实验1 8086汇编指令编码和调试

 

 

 

 

 

 

 

上一篇:实验1 用汇编指令编码和调试


下一篇:B1. Social Network (easy version)【1000 / 队列模拟】