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

微机原理 第五章汇编语言程序的设计

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 ;整个源程序结束 标号和名字称为标识符,汇编语言中标识符的组成规则如下: 标识符由字母、数字及规定的特殊符号(如 _、$、?、@)组成; 标识符必须以字母打头; 标识符字符长度不得超过31; 默认情况下,汇编程序不区别标识符中字母的大小写; 用户定义标识符必须是唯一的,且不能与汇编语言专用的保留字重名。 标号用来指向一条指令或宏指令,表示后面的指令第一个字节存放的内 存地址,标号常作为转移指令的操作数,确定程序转移的目标地址;名字用 来指向一条伪指令,用作变量名时,表示变量存放在内存中首字节的地址。 指令的操作数可以是立即数、寄存器和存储单元;伪指令的操作数可以 是常数、变量名、表达式等;若有多个操作数时,操作数之间用逗号间隔。 由分号“;”后的部分为注释内容,用以增加源程序的可读性,汇编程序 在翻译源程序时将跳过该部分,对它们不做任何处理。 名字和标号都具有3种属性: 段属性:表示标号或变量所在段基址,标号的段基址在CS 段寄存器中,变量的段基址在DS或ES中。 偏移属性:表示标号或变量所在的段内偏移地址,它代表 从段的起始地址到定义标号或变量的位置之间的字节数,段基址 和偏移地址组成标号或变量的逻辑地址。 类型属性:当标号作为转移类指令的操作数时,可在段内或 段间转移,其属性有NEAR(段内转移)和FAR(段间转移)2 种,若没有对标号进行类型说明,就默认为NEAR属性;对于变 量,类型属性说明变量在内存中占多少个字节,其属性有BYTE (字节)、WORD(字)、DOUBLE WORD(双字)3种。 汇编语言中的常量与变量 常量:汇编中允许的常量有整数常量和字符串常量两种。 变量:汇编语言中的变量用来表示存放在内存中操作数,它 的值是可以改变的,变量的值就是操作数在内存中首字节的地 址,变量要事先定义才能使用。对于变量,类型属性说明变量在 内存中占多少个字节,其属性有BYTE(字节)、WORD(字)、 DOUBLE WORD(双字)3种。 汇编语言中的运算符与表达式 数据定义伪指令 功能:用来为变量申请固定长度的存储空间,并可同时 将相应的存储单元初始化。 格式:[变量名] 伪指令助记符 初值表 DB:定义字节变量,即其后的每个操作数均占1个字节; DW:定义字变量,即其后的每个操作数均占2个字节; DD:定义双字变量,即其后的每个操作数均占4个字节; DQ:定义4字变量,即其后的每个操作数均占8个字节; DT:定义10字节变量,即其后的每个操作数均占10个字节。 注意: 存放多字节数据时,数据高字节存放在高地址单元,低字 节存放在低地址单元。 初值表给出变量的初始化值,有多个值时用逗号分隔。 初始化值可以是数值常数,也可以是表达式、?,还可以 由$、重复操作符DUP组成。其中: ?表示未赋初值; $ 表示将要分配的内存单元的偏移地址; DUP表示重复初值。 格式为:重复次数 DUP(重复参数) 说明:重复参数可以是多个,之间用逗号间隔。 举例:2 DUP(1,2) ;等价于1,2,1,2 起始位置定位伪指令ORG 功能:在数据段内一般从偏移地址为0的存储单元开 始,依次按顺序分配内存单元;使用ORG可以指定从某一 个偏移地址开始分配内存单元。 格式1:ORG ****H 格式2:ORG 表达式 ;从表达式的值指定的偏移地址,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档