汇编语言程序格式小剖析

作者: 未来科技工作室 | 来源:发表于2016-12-26 21:50 被阅读0次

    汇编语言的源程序的每个语句都有下面的格式

    [name] operation operand [;comment]

    []中的内容需要时可加入,属可有可无项,其余两项必须设置,下面就来说一下每一项的具体情况;

    1、名字项(name)

    源程序中的名字项由下列字符组成:

    字母:A~Z

    数字:0~9

    专用字符:?,·,@,-,¥

    另外命名时第一个字符不能是数字,当使用·时必须是第一个字符;在语句中名字项有两种作用,标号和变量;

    标号在代码段中定义,后面跟冒号:,也可以用LABEL或者EQU伪操作符定义;标号可以作过程名,在call指令和转移指令中出现用来表示转向地址;标号有三个属性:段、偏移和类型属性;段属性是指定义标号的段的起始地址,这个段的起始地址总是在CS段中,偏移属性是指定义标号的位置与段的起始地址之间的字节数,类型属性是指是否在本段内部引用还是在其它段中引用的,在本段内引用的属性为NEAR,在其它段内引用的属性为FAR;

    变量是在数据段或者代码段中定义的,后面不需要加冒号,也可以用LABEL或者EQU符号定义,它也有三个属性段属性、偏移属性和类型属性;段属性是指定义变量的段地址,在一个段寄存器中;偏移属性是指定义标号的地址和段地址之间的字节数;类型属性是指定义变量的数据类型,如BYTE为类型为1,WORD类型为2;

    2、操作项

    这一项可以是指令、 伪指令和宏指令;对于指令,汇编程序把源程序把该部分翻译成机器指令;对于伪指令,翻译程序将根据要求进行处理,比如给数据分派存储空间等;对于宏指令,汇编程序将对其进行展开;

    3、操作数

    操作数可以是一个或者多个表达式组成,每个表达式之间以,隔开;

    算术操作符

    算术操作符有+、-、*、/和MOD(取余)操作;

    逻辑与移位操作符

    逻辑操作符如AND,OR,NOT,XOR;移位操作符如SHL,SHR等;

    关系操作符

    有六个EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于等于)、GE(大于等于)六种,比较的项为数字或者同一段内的偏移地址,结果为逻辑值,用0FFFFH表示真,用0表示假;

    数值回送操作符

    TYPE

    格式:type expression

    该指令返回expression的类型属性,如near返回-1,far返回-2,byte返回1等;

    LENGTH

    格式:length expression

    该指令对于dup重复指令返回重复次数,其他情况返回1;

    SIZE

    格式:size expression

    该指令返回LENGTH和TYPE的乘积;

    OFFSET

    该指令回送偏移地址值;

    SEG

    该指令返回段地址值;

    属性操作符

    PTR

    格式:type ptr expression

    该指令给expression赋予type属性

    段操作符

    格式:expression1:expression2

    该指令用来表示expression2所在段是expression1

    相关文章

      网友评论

        本文标题:汇编语言程序格式小剖析

        本文链接:https://www.haomeiwen.com/subject/ksxsvttx.html