0480868088汇编语言程序设计_1.pptVIP

  • 5
  • 0
  • 约8.04千字
  • 约 53页
  • 2017-06-12 发布于浙江
  • 举报
0480868088汇编语言程序设计_1

4.1 程序设计语言概述;4.1 程序设计语言概述;4.2 8086/8088汇编语言的基本语法;CODE;汇编源程序一般由若干段组成,每个段都有一个名字(叫段名),以SEGMENT作为段的开始,以ENDS作为段的结束,这两者(伪指令)前面都要冠以相同的名字。 段可以从性质上分为代码段、堆栈段、数据段和附加段4种。;每一行只有一条语句,且不能超过128个字符(从MASM 6.0开始可以是512个字符);但一条语句允许有后续行,最后均以回车作结束。 每一条汇编语句最多由4个字段组成,它们均按照一定的规则分别写在一个语句的4个区域内 ,各区域之间用空格或制表符(TAB键)隔开。 整个源程序必须以END语句来结束,它通知汇编程序停止汇编。END后面的标号START表示该程序执行时的起始地址。 汇编语言程序中至少要有一启动标号,作为程序开始时目标代码的入口地址。启动标号常用START、 BEGIN、MAIN等命名。; (一)汇编语言语句的种类和格式 1.语句的种类 在8086/8088汇编语言中,有3种基本语句: 指令语句 伪指令语句 宏指令语句 (1)指令语句:是一种执行性语句,它在汇编时,汇编程序将为之产生一一对应的机器目标代码。 例: 汇编指令 机器码 MOV DS,AX 8E D8 ADD AX,BX 03 C3 ; (2)伪指令语句:是一种说明性语句,它在汇编时只为汇编程序提供进行汇编所需要的有关信息,如定义符号,分配存储单元,初始化存储器等,而本身并不代表生成目标代码。 例: DATA SEGMENT AA DW 20H,-30H DATA ENDS (3)宏指令:是以某个宏名字定义的一段指令序列,在汇编时,凡有宏指令出现的地方都将用相应的指令序列的目标代码插入。 宏指令语句是一般性指令语句的扩展。;1.指令语句; 2)前缀 8086/8088中有些特殊指令,它们常作为前缀同其他指令配合使用,例如和“串操作指令”连用的5条“重复指令”(REP、REPE/REPZ、REPNE/REPNZ), 以及总线封锁指令LOOK等 3)指令助记符 4)操作数表 操作数表可以是一个或两个操作数;对宏指令来说,可能有多个操作数。操作数之间用逗号分隔。 5)注释 以“;”开始,用来简要说明该指令在程序中的作用;伪指令语句的格式 [名字]伪指令[参数表][;注释];1)标号的属性 标号表示指令地址,是指令的符号地址,它具有3种属性——段地址、段内偏移量(或相对地址)以及类型。 段值(SEG):标号所在段的起始地址 偏移量(OFFSET):段起点距离标号所指存储单元位置的字节数 类型(TYPE): NEAR , FAR 2)在指令的助记符之前,使用标号并紧跟一个冒号“:”, 表示该标号被定义为一个类型为NEAR的标号。 当然,标号也可单列一行 例如: subrout: mov ax,3000h 3)使用过程定义,为过程取的名字也是一个标号 Right PROC NEAR Right ENDP 4) 通常,“标号”只在循环、转移和调用指令中使用。; 表达式是操作数的一种,由常量、变量、标号、寄存器与相关运算符组成,包括数值表达式和地址表达式。它的求值是由汇编程序完成的。;(1)常量是指那些在汇编过程中已经有确定数值的量,分“数值常量“与“符号常量”两种 (2)符号常量的定义需用伪操作命令(伪指令)“EQU”或“=” (3)一个能被计算并产生数值的表达式称为数值表达式 一个数值表达式可由常量、字符串常量以及代表常量或串常量的名字等以算术、逻辑和关系运算符连接而成。; 例1:ONE  EQU 1 DATA1=2*12H MOV AX,DATA1+ONE 即把25H送AX。 ;(1)变量 变量是内存中的一个数据区的名字,即数据所存放地址的符号地址。一方面代表所表示的值,另一方面代表相应存储空间地址。它可以作为指令中的存储器操作数,直接寻址。 变量一般都是在数据段或附加段中使用伪指令(即伪操作命令)DB、DW、DD和DT 来进行定义 [变量名] 数据区定义伪指令 表达式 变量具有段、偏移、

文档评论(0)

1亿VIP精品文档

相关文档