簡介
變址絕對定址,也稱絕對變址定址。可分為絕對X變址定址和絕對Y變址定址,指的是一種分別使用X或Y暫存器進行變址的一種定址方式,運算元的地址由絕對地址分別再加上X或Y暫存器中的數值構成。
說明
1.絕對X變址定址方式和絕對Y變址定址方式的指令均為三位元組;
2.同一條X變址指令或Y變址指令,將因X或Y的取值不同而改變了運算元的地址(這就是把X或Y稱為稱為變址暫存器的原因)。
舉例
彙編格式: 操作碼 Adr 16, X
操作碼 Adr 16, Y
例子: LDA $E500,X
相關
6527CPU屬於65系列,它共有12種定址方式,絕對變址定址就是其中的一種。 除去絕對X、Y變址定址,其他10種包括:
① 立即定址
在指令的操作對象部分直接給出了運算元本身的定址方式稱為立即定址方式,這時的運算元稱為立即數。
說明:
•立即定址方式的指令,常用於設定程式所需要的各種固定初值、累加器中的內容與某一個立即數相加減、邏輯運算以及A、X、Y暫存器中的內容與立即數比較。
•立即定址方式的指令長度均為兩個位元組。
•立即定址方式指令的運算元部分是運算元本身,不是地址。
•立即數為兩位16進制數,取值範圍為00~FFH。
②絕對定址
運算元部分的內容,直接給出運算元在記憶體中實際地址的定址方式,稱為絕對定址。
說明:
•絕對定址方式的指令的長度都為三個位元組。
•絕對定址方式使用兩個位元組存放運算元的地址,取值範圍為0000~FFFFH,故可以訪問64K存儲器中的任何一個地址。
•絕對定址方式指令中地址的表示順序如下:在機器嗎指令中,地址的低位在前、高位在後;但在彙編指令中地址的高位在前、低位在後。
③零頁定址
一般把64K存儲器的空間以256個位元組為單位劃分為若干段,每段稱為一頁。頁號從0頁開始。零頁存儲器的地址範圍就是$0000~$00FF,對於零頁單元來說,由於高位地址恆等於0,故零頁單元的存儲器地址一般由一個位元組表示。
說明:
•零頁定址方式均為兩位元組指令,寫成機器碼時,第一個位元組是操作碼,第二個位元組為運算元的零頁地址。
•由於零頁中運算元的地址僅限於零頁範圍(0000~00FF),故在表示運算元的地址碼時,不必給出地址碼的高位,因而指令長度可以減少一個位元組。
•零頁操作指令占用位元組少,執行速度快,在節省記憶體和縮短運行時間方面具有無比的優越性。
④隱含定址
運算元為操作碼隱含,不需要在指令中指出運算元的一種定址方式。
說明:
•隱含定址方式的指令均為單位元組指令,運算元已隱含在操作碼中。
•隱含定址方式的操作僅在累加器A、變址暫存器XY、堆疊暫存器S、標誌暫存器P中進行,不能對存儲器進行操作。
•隱含定址方式除對暫存器操作外還有三條指令用於中斷返回、子程式調用返回和空操作。
•因隱含定址方式指令為一個位元組,故占用記憶體少、執行速度快,編程效率高。
⑤累加器定址
運算元在累加器A中的定址方式稱為累加器定址
說明:
•累加器定址方式指令均為單位元組指令
•由於累加器指令定址方式指令的操作約定在累加器中,不需要單獨指出運算元的地址,即運算元地址隱含在操作碼中。
•指令占用空間少、執行速度快、編程效率高
⑥零頁變址定址
使用變址暫存器對零頁進行變址定址的方式稱為零頁變址定址。零頁變址定址有兩種方式:以變址暫存器X變址的稱為零頁X變址定址;以變址暫存器Y變址的稱為零頁Y變址定址。
說明:
•零頁變址定址方式的指令均為兩個位元組。
•零頁變址定址與絕對變址定址的含義基本相同,僅在定址範圍上有差異。前者僅限於零頁定址,後者可達64K位元組。
•零頁變址定址只能產生零頁地址,超過十六進制兩位數的部分應丟掉。
•零頁變址定址方式指令操作後,對標誌暫存器各位的影響情況與絕對變址定址方式相同。
⑦間接定址
在指令運算元部分,若給出的是運算元的間接地址,那么這種定址方式就稱為間接定址。在間接定址指令中,運算元部分給出的是運算元所在地址的地址的低位。也就是說,在操作碼後面兩個位元組中的地址,並不是有效地址,而是有效地址的低位存儲單元,有效地址的高位則在低位單元的下一個單元。因此,間接定址的有效地址必須經過兩次定址才能找到。間接定址方式的指令只有1條,即無條件轉移指令。
⑧相對定址
以指令當前的地址為參照點,向前、向後跨越一定偏移量的定址方式稱為相對定址。
說明:
•相對定址指令均為兩個位元組。
•相對定址只適用於條件轉移指令。
•相對定址指令的運算元部分是轉移指令的跳轉步長。
•相對定址指令中,運算元的實際地址是取出本指令後的PC值和偏移量之和。
•偏移量為負數時,要用補碼錶示。
•簡化實際編程操作,書寫相對定址指令的助記符時,用轉移後的目標地址代替偏移量。
⑨先變址間接定址
先變址間接定址方式,是先以變址暫存器X變址,然後再進行間接定址的,實際上它是零頁X變址和間接定址兩種方式的結合,因此一般稱為先變址間接定址。簡稱:X變間定址。首先它對零頁基地址進行X變址,求得零頁地址IND+X;然後,再以IND+X作為間接地址,經兩次間接定址找到運算元的有效地址。其中第一次對IND+X間址得到的是運算元有效地址的低八位,第二次對IND+X+1間址得到運算元有效地址的高八位。
說明:
•X變間定址方式的指令均為兩位元組指令。
•變址暫存器只能使用X暫存器。
•先做X零頁變址,再兩次間接定址,才能得到運算元的有效地址。
⑩後變址間接定址
後變址間接定址方式,先在零頁間接定址,然後用Y變址定址,實際上它是零頁間接定址和絕對Y變址相結合的一種定址方式。一般稱為後變址Y間接定址方式,簡稱Y間變定址。Y間變定址方式的操作是:首先,在零頁進行間接定址,取得一個16位的基地址(IND),然後再進行絕對Y變址定址。即以基地址加上Y變址暫存器中的內容,得到運算元的實際存放地址。所以這種定址方式稱為先間接定址後絕對Y變址。
說明:
•Y間接定址方式的指令均為兩位元組指令。
•變址暫存器只能使用Y暫存器
•定址方式是先在零頁中作間接定址,然後再進行絕對Y變址定址。