概述
以M6800微型计算机为例来解释地址常数这一概念。
地址常数用来表示指示字数据项。地址常数是一个在括号里的有效的M6800宏汇编程程序表述式,以一个予定字ADDR开始,表达式不可以包含任何单引号或感叹号,不过,为了读起来清楚,可以使用空格或分号。表达式指明内存地址为指示字数据项。
一个地址常数表面上值A根据括号里的M6800宏汇编表达成确定,表达式可由一个非限定性的无下标变量构成(后面可随意加一个加号,加号后有一常数)。A等于该变量加上这个常数的表面值(如果有的话),所指示的数据项的内存地址。
地址常数的表达式最多可以包括30个字符,空格和分号不算在内,右图是一个例子。2
地址常数通常分为A型常数、V型常数、Y型常数和S型常数四类。使用Y型常数一般限于存贮器容量不超过32 K的机器,因为半字不可能再容纳更大的地址。V型常数在编写子程序时使用,这时它就包含程序入口的地址。1
地址常数的种类很多,地址常数不同于行号常数,行号常数就是一个地址,而地址数被引用时,实际上是取该地址中的数据。
C:代码地址常数,如C:0X0012。
D:内部直接寻址地址常数,如D:0x0068。
I:内部间接寻址地址常数,如I:0X0010。
x:外部数据空间地址常数,如x:0X0028。
B:位地址常数,如B:0X20(注意比较位常量)。
EB:扩展的位地址常数(MCS251专有)。
ED:扩展的数据空间地址常数(McS251专有)。
CO:常数空间地址常数(MCS251专有)。
HC:正常数空问地址常数(MCS251专有)。3
分类A型常数A型常数的表示形式为:ALn(表达式)。计算表达式的值,将它作为二进制整数存起来.如果没有指明长度,则常数象置于字的边界的字一样寄存。表达式可以是绝对的,也可以是移动的,但是在后一种情形,长度必须为3或4个字节。如果给定长度修正因子,边界就不遵守。如果表达式中用星号,这星号就表示分给常数用的字节中的第一个字节。一个操作分量可以定义几个常数,此时,各表达式之间要用逗号分隔.如果在表达式中有一个使用星号,则星号是该常数最左边的一个字节.因而,如果认为常数从0000 0600和0000 0604排起,则
DC A(*+4,*+20)
定义两个常数0000 0604和000 0618。
V型常数V型常数类似于A型常数,差别仅在于表达式必须为移动的。V型常数同A型常数结合,并且象外部名一样隐含地确定字符名,就可使一道程序按V型常数给定的地址转到另一道程序。
Y型常数Y型常数类似于A型常数,差别在于其隐含长度为2个字节,并将常数置于半字的边界.如果表达式是移动的,则长度必须是2个字节,而在一般的情形,对于A型常数,长度可以是从1到4个字节,对于Y型常数,长度可以是从1到2个字节。
S型常数S型常数的长度总是2个字节,而常数本身是一个地址,其形式为基本地址一形式地址.表达式的形式为:S(形式地址(基本地址)),例如8(12(1))表示,作为基本地址寄存器取1号寄存器,而形式地址等于12。这个常数就翻译成100C。如果常数本身未指明基本地址,则汇编程序选取基本地址寄存器的方法同地址在指令内的情形是一样的。S型常数可以是绝对的,也可以是移动的。
●在8K中,S型常数的重复系数必须是1。
●在8K中,地址常数内不允许定义几个常数。1
相关名词行号常数行号常数是指用户程序中的行号,实际上是地址。行号由编译器或汇编产生,将允许源码级调试。行号指定了相关程序代码的源码模块的物理地址。3
在计算机指令中,地址部分指明操作数或者运算结果在内存贮器中的存放地点,以便计算机按地址从内存贮器或外存贮器 中取出或放进相应的数据。分为绝对地址、相对地址、符号地址。绝对地址即机器地址。在主存贮器中,绝对地址是机器字或字节编号;在磁盘中,是设备号、柱面号、磁道号、块号。相对地址是文件中记录的某种顺序编号或磁盘组(带、鼓)中块的顺序编号,可转换为机器地址。符号地址是对每个块或记录分配的唯一标识的符号名,通过查表或程序转换可转换为绝对地址。
地址地址是一串二进制数或一串字符,它是网络设备、用户或应用的唯一的识别符,有了地址,网上通信才能正常进行。一般而言在进行通信时,一个分组或者一帧数据中,既要包括源地址,也要包括目的地址。在通信中,地址是由呼叫方输入,以说明被叫方是谁;在计算机中,内存地址则是用来存储和读取数据的识别符。4
地址是单元的编号。因为电子计算机中用来存贮代码的存贮器是由成千上万个编了号的单元所组成,每个单元存贮一个或多个代码。当给出存贮器的单元地址时,就可以在这个单元内存入或读出代码。