匯編語言的源程序的每個語句都有下面的格式
[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