实验结论
- 实验任务1
1 ;ex1.asm 2 assume cs:code 3 code segment 4 mov ax, 0b810h 5 mov ds, ax 6 mov byte ptr ds:[0], 1 7 mov byte ptr ds:[1], 1 8 mov byte ptr ds:[2], 2 9 mov byte ptr ds:[3], 2 10 mov byte ptr ds:[4], 3 11 mov byte ptr ds:[5], 3 12 mov byte ptr ds:[6], 4 13 mov byte ptr ds:[7], 4 14 15 mov ah, 4ch 16 int 21h 17 code ends 18 end
汇编:
链接:
运行:
使用debug加载可执行文件ex1.exe后,使用d命令查看程序段前缀PSP所占的256个字节:
结合可执行文件中寄存器CX的值,使用u命令对ex1.exe进行精确反汇编:
使用g命令执行到line16退出执行之前:
- 实验任务2
1 ; ex2.asm 2 assume cs:code 3 code segment 4 mov ax, 0b810h 5 mov ds, ax 6 7 mov bx, 0 8 mov ax, 101H 9 mov cx, 8 10 s: mov [bx], ax 11 add bx, 2 12 add ax, 101H 13 loop s 14 15 mov ah, 4ch 16 int 21h 17 code ends 18 end
汇编:
链接:
运行:
结合可执行文件中寄存器CX的值,使用u命令对ex2.exe进行精确反汇编:
使用t命令对ex2.exe进行调试:
使用p命令调试:
可见,p命令可以跳过loop循环
使用g命令调试:
把ex2.asm中line9 mov cx, 4 改成 mov cx, 8
汇编:
链接:
运行:
⭐结合上述实验和观察,分析、对比ex2.asm和ex1.asm,它们实现的是否是相同的功能和效 果?在具体实现上有什么不同?