汇编语言程序设计教案ppt课件.ppt
关于程序设计语言关于程序设计语言程序设计语言分为三类程序设计语言分为三类:F 机器语言机器语言F 汇编语言汇编语言F 高级语言高级语言.机器语言 汇编语言机器机器语言言汇编 汇编语言言 高级语言高高级语言言机器机器语言言编译解释唯一能被唯一能被计算机能直接算机能直接识别的的语言言.汇编语言程序设计第七讲.内容安排内容安排课题一课题一 汇编语言语法和程序格式汇编语言语法和程序格式伪指令程序的段结构课题二课题二 基本程序结构基本程序结构 程序流程图 顺序程序设计 分支程序设计 循环程序设计 子程序设计.课题一课题一 汇编语言语法和程序格式汇编语言语法和程序格式伪指令程序的段结构.一汇编语言的语句种类及格式一汇编语言的语句种类及格式1指令语句格式:标号标号:指令助记符指令助记符 操作数操作数,;注释注释 例:.2伪指令语句伪指令语句 伪指令不是真正的CPU指令,它的作用只是告诉汇编程序,对后面的指令语句和伪指令语句的操作数应该如何产生机器目标代码。格式:符号名符号名 伪指令伪指令 操作数操作数,.;注释注释与指令语句中的标号不同,符号名后面不得使用冒号。注:我们把指令语句中的标号和伪指令语句中的符号名统称为 标识符.二程序的段结构二程序的段结构 8086808680888088CPU 在在访问存存储器器时,是把存是把存储器分若干段,通器分若干段,通过四个段寄存器四个段寄存器 对各段各段进行行访问的。因此,我的。因此,我们在在编制程制程 序序时,也必,也必须按段来构造程序。按段来构造程序。一个程序通常按用途划分成几个段一个程序通常按用途划分成几个段(至少要有一个段),如数据段,程序段,(至少要有一个段),如数据段,程序段,堆堆栈段,子程序段等。段,子程序段等。每种用途的段可每种用途的段可 以有多个。以有多个。例子:.1 1、段定义伪指令、段定义伪指令 要在程序中设置段,必须使用段定义伪指令。格式:段名 SEGMENT 定位类型组合类型类别名 段名 ENDS本段语句序列(程序或 数据)参数说明:段名定位类型组合类型类别名 例子.2 2段寻址伪指令段寻址伪指令格式ASSUME 段寄存器名:段名段寄存器名:段名,段寄存器名:段名段寄存器名:段名,作用 告诉汇编程序:已定义的段与段寄存器的对应关系。说明 ASSUME只是建立了当前段与段寄存器的联系,但不能把各段的段基值装入相应段寄存器中。.3段寄存器的装入段寄存器的装入 段寄存器的装入要用程序的办法,且四个段寄存器的装入略有不同。.DS 和 ES 的装入 由于段寄存器不能用立即数寻址方式直接传送,所以一个段的段基值要经过通用寄存器才能传送给DS,ES。.例如:DATA1 SEGMENT DBYTE1 DB 12H DATA1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA1 START:MOV AX,DATA1 MOV DS,AX .SS的装入的装入方法1:在段定义伪指令的组合类型项选择“STACK”参数,且在段寻址伪指令中将这个段指定给段寄存器SS。例:STACK1 SEGMENT PAPA STACK DB 40H DUP(?)STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK1 .方法2:如果在段定义伪指令的组合类型中,没有选用“STACK”参数项,或者在程序中要调换另一个堆栈段,这时要用类似于DS,ES的装入办法来实现。SS的装入的装入.CS CS 的装入的装入用结束伪指令END指定地址装入CS和IP。伪指令的格式:END 起始地址.三一些常用的伪指令三一些常用的伪指令1数据定义伪指令变量名DBDWDD表达式1,表达式2,说明:DB 申请一个数据项为字节的数据区 DW 申请数据项为字的数据区 DD 申请数据项为双字的数据区 表达式.2 2赋值伪指令赋值伪指令格式:名字名字 EQU 表达式表达式作用:给表达式赋予一个名字,其后程序的各条指令中凡需用到该表达式的地方均可以用此名字来代替。.四一般程序格式四一般程序格式 STACK1 SEGMENT PARA STACK STACK1 ENDS DATA SEGMENT DATA ENDS COSEG SEGMENT ASSUME MAIN:COSEG ENDS END MAIN.