文档详情

微机原理 第五章-汇编语言程序设计.ppt

发布:2016-07-24约9.56千字共104页下载文档
文本预览下载声明
《微机原理与接口技术》;第5章 汇编语言程序设计;§5.1 汇编语言的特点;§5.2 汇编语言程序结构和基本语法;DATA SEGMENT ;定义段DATA A DB 12H ;定义变量A,其值为12H B DB 34H ;定义变量B,其值为34H C DB ? ;定义变量C,但没有赋值 DATA ENDS ;DATA段定义结束 CODE SEGMENT ;定义段CODE ASSUME CS:CODE, DS:DATA ;规定DATA、CODE为数据段和代码段 START: MOV AX,DATA ;用标号START指明程序执行的起始点 MOV DS,AX ;给数据段寄存器DS赋值 MOV AL,A ;将变量A的值送入寄存器AL ADD AL,B ;将AL的值与变量B的值相加,和存入AL MOV C,AL ;将AL的值送给变量C MOV AH,4CH INT 21H ;调用DOS中断,退出程序并返回DOS状态 CODE ENDS ;CODE段定义结束 END START ;整个源程序结束; 汇编语言源程序由若干个段组成(完整的汇编语言源程序由 数据段、代码段、附加段、堆栈段组成,其中代码段是不可缺少 的),在代码段中用ASSUME伪指令将段地址与段寄存器的对应 关系告诉汇编程序,每个段以SEGMENT语句开始,以ENDS语 句结束,整个源程序以END结束。 段由若干语句组成,一条语句一般写在一行上,书写时语 句的各部分应尽量对齐。 汇编语言程序中至少要有一个启动标号,作为程序开始执 行时目标代码的入口地址。启动标号常用START、BEGIN等命 名。 为增加程序的可读性,可在汇编语言语句“;”后加上注释。 为保证在执行过程中数据段地址的正确性,在源程序中需要 对DS寄存器进行初始化。 为了在程序结束时返回DOS,一般通过调用DOS中断的4CH 子功能来实现。;§5.2 汇编语言程序结构和基本语法; 即可执行语句(即第4章中介绍的处理器指令系统),在汇编后要产生对应的目标代码,CPU根据这些代码执行相应的操作。 格式: [标号:] 指令助记符 [操作数] [;注释] 举例: START: MOV AX,DATA ;用标号START指明程 ;序执行的起始点; 即不可执行语句,在汇编中不产生目标代码,用于指示汇编程序如何汇编源程序,利用它定义和说明常量和变量的属性及存储器单元的分配等。 格式: [名字] 伪指令助记符 [操作数] [;注释] 举例: A DB 12H ;定义变量A,其值为12H; 即以一个宏名定义的一段指令序列,在汇编中凡是出现宏指令语句的地方,都会有相应的指令语句序列的目标代码插入。 格式: [标号:] 宏名 [实参表] [;注释];标号和名字称为标识符,汇编语言中标识符的组成规则如下: 标识符由字母、数字及规定的特殊符号(如 _、$、?、@)组成; 标识符必须以字母打头; 标识符字符长度不得超过31; 默认情况下,汇编程序不区别标识符中字母的大小写; 用户定义标识符必须是唯一的,且不能与汇编语言专用的保留字重名。 标号用来指向一条指令或宏指令,表示后面的指令第一个字节存放的内 存地址,标号常作为转移指令的操作数,确定程序转移的目标地址;名字用 来指向一条伪指令,用作变量名时,表示变量存放在内存中首字节的地址。 指令的操作数可以是立即数、寄存器和存储单元;伪指令的操作数可以 是常数、变量名、表达式等;若有多个操作数时,操作数之间用逗号间隔。 由分号“;”后的部分为注释内容,用以增加源程序的可读性,汇编程序 在翻译源程序时将跳过该部分,对它们不做任何处理。 ; 名字和标号都具有3种属性: 段属性:表示标号或变量所在段基址,标号的段基址在CS 段寄存器中,变量的段基址在DS或ES中。 偏移属性:表示标号或变量所在的段内偏移地址,它代表 从段的起始地址到定义标号或变量的位置之间的字节数,段基址
显示全部
相似文档