第三章汇编语言程序设计 第一节汇编语言上机过程 第二节汇编语言程序结构 程序结构 语句结构 第三节指示性语句 一、程序开始和结束 段定义 三、变量定义 四、过程定义 五、 ASSUME语句 六、等值定义 七、表达式中的操作符 第四节汇编语言程序举例 例一、数据传送 例二、查找关键字 ▲DOS的装入和返回功能 第五节BIOS和DOS功能调用 概述 BIOS功能调用 DOS系统功能调用 第六节汇编语言程序设计 概述 汇编语言程序设计举例
第三章 汇编语言程序设计 第一节 汇编语言上机过程 第二节 汇编语言程序结构 一、程序结构 二、语句结构 第三节 指示性语句 一、程序开始和结束 二、段定义 三、变量定义 四、过程定义 五、ASSUME语句 六、等值定义 七、表达式中的操作符 第四节 汇编语言程序举例 例一、数据传送 例二、查找关键字 ▲ DOS的装入和返回功能 第五节 BIOS和DOS功能调用 一、概述 二、BIOS功能调用 三、DOS系统功能调用 第六节 汇编语言程序设计 一、概述 二、汇编语言程序设计举例
第三章汇编语言程序设计 第一节汇编语言上机过程 第二节汇编语言程序结构 第三节指示性语句 第四节汇编语言程序举例 第五节BIOS和DOS功能调用 第六节汇编语言程序设计
第三章 汇编语言程序设计 第一节 汇编语言上机过程 第二节 汇编语言程序结构 第三节 指示性语句 第四节 汇编语言程序举例 第五节 BIOS和DOS功能调用 第六节 汇编语言程序设计
第一节汇编语言上机过程 编辑源程序 EDIT ABC.ASM 汇编源程序 MASM ABC.ASM D: >EDIT ABC. asm 有汇编错误信息? D: >MASM ABC: 有语法错,回EDI下改该程序 形成目标程序ABC.OBJ D: >LINK ABC; 连接目标程序 LINK ABC.OBJ 有错,回在EDI下改程序 有连接错误信息? D: >ABC 形成可执行程序 ABCEXE 运行结果错,回EDI下改程序 装入可执行程序到内存,并执行 或在 DEBUG下调试,找原因。 D: sub>abC D: >DEBUG ABC.exe 运行结果正确?→下一程序 用 DEBUG调试程序查找原因?N 用 DEBUG调试可执行程序 D:>>DEBUG ABC.EXEI|+找到原因
第一节 汇编语言上机过程 D:>EDIT ABC.asm D:>MASM ABC; 有语法错,回EDIT下改该程序 D:>LINK ABC; 有错,回在EDIT下改程序 D:>ABC 运行结果错,回EDIT下改程序 或在DEBUG下调试,找原因。 D:>DEBUG ABC.exe 编辑源程序 EDIT ABC.ASM 汇编源程序 MASM ABC.ASM 形成目标程序 ABC.OBJ 连接目标程序 LINK ABC.OBJ 有连接错误信息? 形成可执行程序 ABC.EXE 装入可执行程序到内存,并执行 D:\>sub>ABC 下一程序 用 DEBUG 调试可执行程序 D:\>sub>DEBUG ABC.EXE 找到原因 Y N Y N N Y N 有汇编错误信息? Y 运行结果正确? 用 DEBUG 调试程序查找原因?
第二节汇编语言程序结构 、程序结构 二、语句结构
第二节 汇编语言程序结构 一 、程序结构 二、语句结构
程序结构 汇编语言程序结构例一movs.asm 实现数据传送功能 ●程序由数条语句构成,每条语句占一行。 aa SEgment 数据段1 指令性语句(指令语句) strl dB Hellon' aa ends 指示性语句(伪指令语句) bb SEgment 数据段2 ●分段结构 str2 DB 6 dup() bb ENDs 程序按段编写,与8088内存分段编址相对应。 CC SEGMENT;代码段 每段由伪操作 SEGMENT开始、由ENDS结束。 ASSUME CS:c,s:a,ES:b ●程序最后为END结束语句,后跟一启动地址 start: CLD MOV AX. aa 启动地址指示程序开始执行的第一条语句。 MOV DS, AX LEA SI strl 程序中设有返回DOS的功能 MOV AX SEG str2 MOV ES AX 使程序执行完后返回DOS系统的命令接受状态。 MOV DI OFFSET str2 ●程序中用到内存操作数时, MOV CX. 6 REP MOVSB 应按操作数的寻址方式给相应的駿寄存器赋值 MOV AH, 4CH INT21H;返回DOS cc ENDS END start;指示程序结束
一、程序结构 ⚫ 程序由数条语句构成,每条语句占一行。 指令性语句(指令语句) 指示性语句(伪指令语句) ⚫ 分段结构 程序按段编写,与8088内存分段编址相对应。 每段由伪操作SEGMENT开始、由ENDS结束。 ⚫ 程序最后为END结束语句,后跟一启动地址。 启动地址指示程序开始执行的第一条语句。 ⚫ 程序中设有返回DOS的功能。 使程序执行完后返回DOS系统的命令接受状态。 ⚫ 程序中用到内存操作数时, 应按操作数的寻址方式,给相应的段寄存器赋值 ;汇编语言程序结构例一 movs.asm ;实现数据传送功能 aa SEGMENT ;数据段1 str1 DB 'Hello!’ aa ENDS bb SEGMENT ;数据段2 str2 DB 6 dup (?) bb ENDS cc SEGMENT ;代码段 ASSUME CS:cc, DS:aa, ES:bb start: CLD MOV AX , aa MOV DS , AX LEA SI , str1 MOV AX , SEG str2 MOV ES , AX MOV DI ,OFFSET str2 MOV CX , 6 REP MOVSB MOV AH , 4CH INT 21H ;返回DOS cc ENDS END start ;指示程序结束