一、立即尋址方式
操作數(shù)作為指令的一部分而直接寫在指令中,這種操作數(shù)稱為立即數(shù),這種尋址方式也就稱為立即數(shù)尋址方式。
立即數(shù)可以是8位、16位或32位,該數(shù)值緊跟在操作碼之后。如果立即數(shù)為16位或32位,那么,它將按“高高低低”的原則進行存儲。例如:
MOV AH, 80H ADD AX, 1234H MOV ECX, 123456H
MOV B1, 12H MOV W1, 3456H ADD D1, 32123456H
其中:B1、W1和D1分別是字節(jié)、字和雙字單元。
以上指令中的第二操作數(shù)都是立即數(shù),在匯編語言中,規(guī)定:立即數(shù)不能作為指令中的第二操作數(shù)。該規(guī)定與高級語言中“賦值語句的左邊不能是常量”的規(guī)定相一致。
立即數(shù)尋址方式通常用于對通用寄存器或內(nèi)存單元賦初值。圖是指令“MOV AX, 4576H”存儲形式和執(zhí)行示意圖。
二、寄存器尋址方式
指令所要的操作數(shù)已存儲在某寄存器中,或把目標(biāo)操作數(shù)存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助憶符)的尋址方式稱為寄存器尋址方式。
指令中可以引用的寄存器及其符號名稱如下:
8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等;
16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等;
32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。
寄存器尋址方式是一種簡單快捷的尋址方式,源和目的操作數(shù)都可以是寄存器。
1、源操作數(shù)是寄存器尋址方式
如:ADD VARD, EAX ADD VARW, AX MOV VARB, BH等。
其中:VARD、VARW和VARB是雙字,字和字節(jié)類型的內(nèi)存變量。在第4章將會學(xué)到如何定義它們。
2、目的操作數(shù)是寄存器尋址方式
如:ADD BH, 78h ADD AX, 1234h MOV EBX, 12345678H等。
3、源和目的操作數(shù)都是寄存器尋址方式
如:MOV EAX, EBX MOV AX, BX MOV DH, BL等。
由于指令所需的操作數(shù)已存儲在寄存器中,或操作的結(jié)果存入寄存器,這樣,在指令執(zhí)行過程中,會減少讀/寫存儲器單元的次數(shù),所以,使用寄存器尋址方式的指令具有較快的執(zhí)行速度。通常情況下,我們提倡在編寫匯編語言程序時,應(yīng)盡可能地使用寄存器尋址方式,但也不要把它絕對化。