实验1 8086汇编指令编码和调试
实验一:练习使用masm、link得到8086汇编可执行程序及运行程序方法
答:略
实验二:
(1)在debug中,使用d命令查看生产日期

(2)使用e命令修改生产时期所在的内存单元,修改后,再次使用d命令查看

结果:发现e命令无法修改生产时期所在的内存单元
实验三:
写入数据后使用d命令查看结果,发现写入成功
(2)在debug中,使用f命令,向内存单元批量填写数据
-f b800:0f00 0f9f 03 04
使用f命令批量写入数据后使用d命令查看结果,发现写入成功
实验四:
已知内存单元00201H ~ 00207H分别存放数据(如下图所示),00220H ~ 0022fH用作栈空间。
在debug环境中,按顺序录入以下内容,单步跟踪调试,观察寄存器和内存空间00200H~00207H,以
(1) 单步执行,在执行push指令和pop指令时,观察并记录栈顶偏移地址的寄存器sp值的变化情况。
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___处
答:

答:数据空间内的数据发生了变化。
实验五:在debug环境中,实践以下内容。

问题1:使用t命令单步执行 mov ss, ax 时,是单步执行完这一条指令就暂停了吗?后面的指令 movsp, 30 是什么时候执行的? 、
答:mov ss,ax 命令被执行后,mov sp,30命令紧接着就执行了。
使用dosbox进行编译后:
答:验证成功,前两个字节为CD:20
答:(1) 补全程序。说明这样填写的依据。
第一空:cs 将cs的代码通过寄存器ax赋值给ds
第二空:总的代码段为001CH字节,而mov ax, 4c00h命令占2H个字节 int 21h命令占3H个字节 ,所以line3-line12 代码段为0017H字节


浙公网安备 33010602011771号