首页 理论教育 微机原理及接口技术-数值表达式与汇编结果探讨

微机原理及接口技术-数值表达式与汇编结果探讨

时间:2023-11-16 理论教育 版权反馈
【摘要】:常量一般直接以数值形式出现,称为数值常量。例4-2 求下列指令汇编的结果。汇编的结果是:3.变量变量是一个数据存储单元的名字,即数据存放单元地址的符号表示。变量由4.3节介绍的数据定义伪指令来定义,也可以用LABEL或EQU伪指令来定义,一般在除代码段以外的其他段中定义。

微机原理及接口技术-数值表达式与汇编结果探讨

1.常量

常量是指那些在汇编源程序翻译成目标程序期间已经有确定数值的量。常量主要用于伪指令语句中给变量赋初值,或者用作机器指令语句中的立即操作数、变址寻址和基址加变址寻址中的位移量。常量一般直接以数值形式出现,称为数值常量。也可以给常量事先定义一个名字,则称为符号常量。

2.数值表达式

数值表达式由常量、符号常量以及运算等组成,其运算结果为一数值常量。汇编语言允许对常量进行三种类型的运算:

(1)算术运算

算术运算包括:加(+)、减(-)、乘(*)、除(/)、模除(MOD)。其中,模除(MOD)表示两整数相除后取余数。

例4-1 已知符号常量NUM=51,求下列指令的汇编结果(表达式的值):

汇编的结果是:

(2)逻辑运算符和移位运算符

逻辑运算包括:逻辑乘(AND)、逻辑或(OR)、逻辑异或(XOR)和逻辑非(NOT)。逻辑运算是按位进行的。

移位运算包括:右移(SHR)和左移(SHL),表示将二进制常量右移或左移运算符右边所规定的位数,所空出的位均补0。

例4-2 求下列指令汇编的结果。

汇编的结果是:

从例题中可以看出,逻辑运算指令助记符和逻辑运算符虽然写法相同,但出现的位置不同,前者在操作码的位置,后者在操作数的位置。

(3)关系运算

关系运算包括:相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)和大于等于(GE)。它们的运算结果是两个特殊的常量,若关系不成立,结果为0H;否则结果为0FFH或0FFFFH。

例4-3 求下列指令汇编的结果。

汇编的结果是:(www.xing528.com)

3.变量

变量是一个数据存储单元的名字,即数据存放单元地址的符号表示。变量由4.3节介绍的数据定义伪指令来定义,也可以用LABEL或EQU伪指令来定义,一般在除代码段以外的其他段中定义。由于主存是分段使用的,所定义的变量体现出以下三种属性:

(1)段属性

定义变量的所在段的起始地址(段地址),此值必须在一个段寄存器中。

(2)偏移属性

变量的偏移地址是16位无符号数,它代表从段的起始地址到定义变量的位置之间的字节数。在当前段内给出变量的偏移值等于当前地址计数器的值,当前地址计数器的值可以用$来表示。

(3)类型属性

变量的类型属性定义该变量所占用存储单元的字节数。它可以是字节类型(l个字节长),字类型(2个字节长),双字类型(4个字节长),四字类型(8个字节长),十字节类型(10个字节长)。

4.标号

标号是机器指令语句存放单元地址的符号表示,也可以是过程名。标号在代码段中定义,用于机器指令之前,并用冒号“:”作为分隔符,它也可以用LABEL或EQU伪指令来义。由于标号代表了指令的符号地址,因此它也有三个属性:

(1)段属性

定义了标号所在段的起始地址(段首址)。该值总是存放在CS中。

(2)偏移属性

标号的偏移地址是16位无符号数,它代表从所在段的段首址到标号定义语句之间的字节数。

(3)类型属性

用来指出该标号是在本段内引用还是在其他段中引用。如果在段内引用,则称为NEAR型;如果在段外引用,则称为FAR型。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈