实验2 汇编源程序编写与汇编、调试

实验结论

  • 实验任务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

汇编:

实验2 汇编源程序编写与汇编、调试

链接:

实验2 汇编源程序编写与汇编、调试

运行:

实验2 汇编源程序编写与汇编、调试

 

使用debug加载可执行文件ex1.exe后,使用d命令查看程序段前缀PSP所占的256个字节: 

实验2 汇编源程序编写与汇编、调试

结合可执行文件中寄存器CX的值,使用u命令对ex1.exe进行精确反汇编: 

实验2 汇编源程序编写与汇编、调试

使用g命令执行到line16退出执行之前:

实验2 汇编源程序编写与汇编、调试

  • 实验任务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

汇编:

实验2 汇编源程序编写与汇编、调试

链接:

实验2 汇编源程序编写与汇编、调试

运行:

实验2 汇编源程序编写与汇编、调试

结合可执行文件中寄存器CX的值,使用u命令对ex2.exe进行精确反汇编:

实验2 汇编源程序编写与汇编、调试

使用t命令对ex2.exe进行调试:

实验2 汇编源程序编写与汇编、调试实验2 汇编源程序编写与汇编、调试实验2 汇编源程序编写与汇编、调试实验2 汇编源程序编写与汇编、调试实验2 汇编源程序编写与汇编、调试实验2 汇编源程序编写与汇编、调试

使用p命令调试:

实验2 汇编源程序编写与汇编、调试

可见,p命令可以跳过loop循环

 使用g命令调试:

实验2 汇编源程序编写与汇编、调试

把ex2.asm中line9 mov cx, 4 改成 mov cx, 8

汇编:

实验2 汇编源程序编写与汇编、调试

链接:

实验2 汇编源程序编写与汇编、调试

运行:

实验2 汇编源程序编写与汇编、调试

⭐结合上述实验和观察,分析、对比ex2.asm和ex1.asm,它们实现的是否是相同的功能和效 果?在具体实现上有什么不同?

上一篇:linux-3.14.13 看到mpls gso支持


下一篇:使用linux shell读取yaml文件