- 7
- 0
- 约5.27千字
- 约 48页
- 2018-07-05 发布于湖北
- 举报
第4章? 汇编语言程序设计 本教案内容 第4章? 汇编语言程序设计 汇编语言程序设计基础 源程序的汇编、连接与调试 分支程序设计技术 循环程序设计技术 子程序设计技术 综合程序设计示例 由于堆栈指针SP初始化后要指向栈底+1单元,所以上述程序段中有: MOV AX , STACK MOV SS , AX MOV SP , OFFSET TOP …… …… 此段程序完成对 SS、SP的初始化 汇编语言程序设计基础 又由于前面介绍组合类型时,介绍了若某段定义时,其组合类型选为STACK型,系统默认该段为堆栈段。所以,在可执行文件装入内存后,段寄存器SS中已是该段的段基址,堆栈指针SP已指向堆栈底+1单元的偏移地址。因此,在程序设计时,程序段就不用给SS、SP 初始化了。 汇编语言程序设计基础 MOV AX , STACK MOV SS , AX MOV SP , OFFSET TOP 这段程序可以缺省。 即: 汇编语言程序设计基础 LABEL伪指令的功能是定义某变量名或标号的类型的。它虽具有段地址与偏移地址的属性,但它不占内存单元。 例如: BARRAY LABEL BYTE AARRAY DW 100 DUP(?) 汇编语言程序设计基础 上面定义了两种类型的变量,BARRAY为字节类型,AARRAY为字类型,它们的段和偏移地址属性完全相同,都是下面保留的100个字空间的首地址,其目的是为了程序中可以对这100个字空间作两种不同类型的操作。这一点上,LABEL的作用与前面介绍的PTR操作符的作用相类似。 汇编语言程序设计基础 BARRAY 100个字空间 AARRAY …… 汇编语言程序设计基础 当需要对该100个字空间进行字操作时,可利用AARRAY字变量。如下面指令格式是正确的。 MOV AX,ARRAY 汇编语言程序设计基础 当需要对该100个字空间进行字节操作时,可利用BRRAY字节变量。如下面指令格式是正确的。 MOV AL,BRRAY MOV AL ,BYTE PTR ARRAY 等效于 汇编语言程序设计基础 4.ASSUME伪指令 ASSUME伪指令告诉汇编程序(MASM.EXE)在对源程序汇编时,源程序中的段名与哪个段寄存器建立关系。这种关系只是一种承诺关系,汇编程序对源程序汇编时,承认这种关系,但段寄存器的值并未确定,用户必须在代码段一开始用MOV指令对DS、ES、SS初始化。 汇编语言程序设计基础 START:MOV AX,DATA1 MOV DS,AX ;对DS初始化 MOV AX,DATA2 MOV ES,AX ;对ES初始化 MOV AX,STACK MOV SS,AX ;对SS初始化 如前面完整结构程序中的下段程序: 汇编语言程序设计基础 因为CS不能做DST,所以用户不能对CS初始化,CS和IP的初始化是系统赋给的,其方法见下面的END伪指令介绍。 汇编语言程序设计基础 5.END伪指令 格式: END 表达式 该伪指令标志整个源程序的结束。它告诉汇编程序汇编到此结束。所以,每个单独汇编的源程序的结尾必须有END伪指令。格式中的表达式是该程序运行时的启动地址,它通常是可执行语句的标号。 汇编语言程序设计基础 如前面完整结构程序中的最后有: MOV AH,4CH INT 21H CODE ENDS END START …… 总汇编结束 起始地址表达式 汇编语言程序设计基础 * * 本章要点: 汇编语言程序设计基础 源程序的汇编、连接与调试 分支程序设计技术 循环程序设计技术 子程序设计技术 综合程序设计示例 汇编语言程序设计 算法 所谓算法,简单地说就是计算机能够实现的有限的解题步骤。我们知道,计算机只能进行最基本的算术运算和逻辑运算,要完成较为复杂的运算和控制操作,必须选择合适的算法,这是正确编程的基础。 若题目涉及到某种运算,则必须写出适合程序设计的正确算法,若题目要完成的功能未涉及到运算,也要写出编程思想。 汇编语言程序设计 设计流程 将提出的算法或编程思想用流程图的方式画出来。图4.1给出了流程图中较为通用的几种符号。 汇编语言程序设计 起始和终止框
原创力文档

文档评论(0)