- 掌握主程序和子程序之间的调用关系及其调用方法.
- 掌握子程序调用过程中近程调用与远程调用的区别。
- 掌握子程序设计方法,能合理划分子程序.
- 掌握汇编子程序的定义/调用/返回/参数传递等有关问题的实现,以及运行过程中的堆栈和标志位变化情况.
用堆栈传送参数和参数表地址方式,编制键入 8-bit非压缩 BCD 码 加法并显示的程序.
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE
. - 编译程序:
MASM.EXE
. - 连接程序:
LINK.EXE
.
- 检查并修改原程序
- 编译和连接
- 用单步方式运行程序
debug 5-1.exe
-t
JMP
指令永久地改变程序计数器,不在堆栈中留下信息.
CALL
指令在堆栈中留下信息,这样可以恢复原来的程序执行顺序. CALL
是一条将程序控制权转移到子程序的指令,目的是回到主程序中.
JMP
常用于形成循环和直接跳转.
CMP
常用于函数的调用.
进一步掌握主程序和子程序之间的调用关系及其调用方法.
编写程序求数据区中 MAX
和 MIN
单元中,要求最大值和最小值分别用子程序完成计算,主程序和子程序之间通过寄存器传递参数.
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE
. - 编译程序:
MASM.EXE
. - 连接程序:
LINK.EXE
.
debug 5-2.exe
-t
- 强化主程序和子程序之间的调用关系及其调用方法.
- 掌握嵌套子程序的设计以及调用方法.
- 掌握递归调用子程序的方法.
试编制在 ARRAY1
无符号数组中,选出最大值及其所在的位置,然后以 CRT
上的源程序.
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE
. - 编译程序:
MASM.EXE
. - 连接程序:
LINK.EXE
.
debug 6-1.exe
-t
进一步掌握主程序和子程序之间的调用关系及其调用方法.
用子程序结构编程计算:
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE
. - 编译程序:
MASM.EXE
. - 连接程序:
LINK.EXE
.
debug 6-2.exe
-t