三九宝宝网宝宝百科宝宝知识

汇编语言标识符和表达式

11月22日 编辑 39baobao.com

[IBMPC汇编语言指令集]数据传送指令集MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,dataXCHG功能: 交换两个操作数的数据语法:...+阅读

标识符和表达式是程序设计经常用到的两个基本概念。在用高级语言进行程序设计时,如果程序要对某个变化的量进行处理时,通常都要对该变化量定义一个具有某种数据类型的符号名,用该符号名也就等于使用了该变化量。在汇编语言中,也是如此,所不同的是它们的说明和引用方式不同。

4.1 标识符

在汇编语言中,标号、内存变量名、子程序名和宏名等都是标识符,它一般最多由31个字母、数字及规定的特殊字符(?、#、_、$)等组成,并且不能用数字开头。通常情况下,汇编语言不区分标识符中字母的大小写。

和高级语言的变量名一样,一般要求标识符尽可能取得有点含义,这会大大改善程序的可读性,并有助于对程序的理解。但标识符不能是汇编语言的保留字,汇编语言的保留字主要是指:指令助忆符、伪指令定义符、寄存器名以及一些具有特殊含义的字符串等。

例如:MSG

1、ERRMSG

2、ASC

1、asc2等是合法的标识符,而1a、ah、mov等就不是合法的标识符。

试比较ABCDH和0ABCDH之间的差异。前者是标识符,而后者是十六位进制数值。

4.2 简单内存变量的定义

在编程序时,我们往往要根据程序的需要定义一些内存单元。在高级语言程序中,要给存储单元取一个符号名,然后通过引用该符号名来访问其所对应的存储单元,而在汇编语言程序中要灵活一些,它可以给存储单元取符号名,也可以不取符号名。当给存储单元取符号名时,则可通过该符号 名来访问其对应的存储单元;当不给存储单元取符号名时,则可通过存储单元的偏移量(有效地址)来访问它。

汇编语言中,常见的数据类型有字节、字和双字等。下面介绍如何定义各种整型类型的内存变量,有关浮点类型变量的定义方式将在第11章中介绍。

4.2.1 内存变量定义的一般形式

定义数据变量语句是在程序中经常使用的伪指令语句,其一般格式如下:

[变量名] 数据定义符 表达式1[, 表达式2, …, 表达式n] ;注释

该定义格式的主要解释如下:

、变量名必须是一个合法的标识符,它可以写,也可以不写;

、数据定义符用于确定内存单元的数据类型,常用的定义符有:DB、DW和DD等;

、表达式是定义内存单元时的初值表达式,一个定义语句可以有多个初值表达式,各表达式之间必须用逗号‘,’分开;如果某个存储单元没有初值表达式,则必须用一个问号‘?’来表示;

、在定义语句的后面可以书写注释内容,也可以不写。

在定义变量时,虽然可以不写变量名,但我们建议还是要写,因为不写变量名,就意味着只能用内存单元的偏移量来访问它。这时,一旦内存单元的偏移量发生变化,那么,程序中的所有引用都要修改,这不仅增加了程序维护的工作量,而且也容易因遗漏修改而出错。

以下为关联文档:

汇编语言的准备知识给初次接触汇编者1汇编语言和CPU以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86及其兼容机)x86汇编语言的指令,其操作对...

汇编语言的准备知识给初次接触汇编者2汇编指令的操作数可以是内存中的数据, 如何让程序从内存中正确取得所需要的数据就是对内存的寻址。INTEL 的CPU 可以工作在两种寻址模式:实模式和保护模式。 前者已经过时,就...

汇编语言的准备知识给初次接触汇编者3汇编语言”作为一门语言,对应于高级语言的编译器,我们需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM, TASM等等为我们写汇编程序提供了...

汇编语言算术运算指令ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的ASCII码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEC 求反(以 0 减之).CMP 比较.(两操作数作减...

汇编语言教程之五3.4 串操作我们前面已经提到,内存可以和寄存器交换数据,也可以被赋予立即数。问题是,如果我们需要把内存的某部分内容复制到另一个地址,又怎么做呢?设想将DS:SI处的连续512字节...

推荐阅读
图文推荐