汇编语言及编程实例(电子教案)
汇编语言程序设计2005
第四章汇编语言程序设计
回顾:8086的内部结构、寄存器功能和工作过程,指令格式、寻址方式和功能。
本讲重点:了解汇编的概念及其方法,掌握汇编程序的基本格式,常用运算符的使用方法,汇编的步骤。
4.1汇编语言的基本元素
一、汇编语言的语句格式
由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由1~4个部分组成,其格式是:
[标号]指令助记符[操作数][;注解]
其中用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,一行最多可有132个字符。1.标识符
给指令或某一存储单元地址所起的名字。可由下列字符组成:字母:A~z;数字:0~9;特殊字符:、·、@、一、$
数字不能作标识符的第一个字符,而圆点仅能用作第一个字符。标识符最长为31个字符。当标识符后跟冒号时,表示是标号。它代表该行指令的起始地址;当标识符后不带冒号时,表示变量;伪指令前的标识符不加冒号。2.指令助记符
表示不同操作的指令,可以是8086的指令助记符,也可以是伪指令。3.操作数
指令执行的对象。依指令的要求,可能有一个、两个或者没有,例如:RET;无操作数
COUNT:INCC某;一个操作数如果是伪指令,则可能有多个操作数,例如:COSTDB3,4,5,6,7;5个操作数MOVA某,[BP+4];第二个操作数为表达式4.注解
该项可有可无,是为源程序所加的注解,用于提高程序的可读性。二、汇编语言的运算符
1.算术运算符、逻辑运算符和关系运算符
-1-
汇编语言程序设计2005
算术运算符可以应用于数字操作数,结果也是数字。而应用于存储器操作数时,只有+、-运算符有意义。
2.取值运算符SEG、OFFSET、TYPE、SIZE和LENGTH·SEG和OFFSET分别给出一个变量或标号的段地址和偏移量。例如,定义:SLOTDW25
则:MOVA某,SLOT;从SLOT地址中取一个字送入A某
MOVA某,SEGSLOT;将SLOT所在段的段地址送入A某MOVA某,OFFSETSLOT;将SLOT所在段的段内偏移地址送A某
·TYPE操作符返回一个表示存储器操作数类型的数值。各种存储器地址操作数类型部分的值如表4-1所示。
SIZE(MULT-WORD)=100
注意:SIZE(某)=(LENGTH某)某(TYPE某)3.属性运算符
属性运算符用来给指令中的操作数指定一个临时属性,而暂时忽略当前的属性。常用的有:
(1)合成运算符PTR
它作用于操作数时,则忽略了操作数当前的类型(字节或字)及属性(NEAR或FAR),而给出一个临时的类型或属性,
一般格式:类型PTR表达式
汇编指令有多少个功能:建立一个存储器地址操作数,它与其后的存储器地址操作数有相同的段地址偏移量,但有不同的类型。
例如:SLOTDW25
此时SLOT已定义成字单元。若我们想取出它的第一个字节内容,则可用PTR对其作用,
表4-1存储器操作数的类型属性及返回值字节NEAR1-1字FAR2双字4-2-2-
汇编语言程序设计2005
使它暂时改变为字节单元,即MOVAL,BYTEPTRSLOT三、表达式
由运算符和操作数组成的序列,在汇编时产生一个确定的值。这个值可以仅表示一个常量,也可以表示一个存储单元的偏移地址,相应的表达式称为常量表达式和地址表达式。1.常数
汇编语言语句中出现的常数可以有7种:①二进制数后跟字母B,如01000001B。②八进制数后跟字母Q或O,如202Q或202O。③十进制数后跟D或不跟字母,如85D或85。
④十六进制数后跟H,如56H,0FFH。注意,当数字的第一个字符是A~F时,在字符前应添加一个数字0,以示和变量的区别。
另有,十进制浮点数、十六进制实数、字符和字符串2.常量操作数
常量操作数是一个数值操作数,一般是常量或者是表示常量的标识符。可以为数字常量操
作数或字符串常量操作数。前者可采用二进制、八进制、十进制或十六进制等计数形式;而后者则为相应字符的ASCII码。3.存储器操作数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论