尋址方式(或編址方式)指的是確定本條指令的數(shù)據(jù)地址及下一條要執(zhí)行的指令地址的方法龙优。
(1)立即數(shù)尋址
所需的操作數(shù)由指令的地址碼部分直接給出女揭,就稱(chēng)為立即數(shù)(直接數(shù))尋址方式显沈。
特點(diǎn):
取指時(shí)锹杈,操作碼和一個(gè)操作數(shù)同時(shí)被取出院崇,減少了訪問(wèn)存儲(chǔ)器次數(shù),提高了指令的執(zhí)行速度闲询。但只適用于操作數(shù)固定的情況久免。
(2)寄存器尋址
計(jì)算機(jī)的中央處理器一般設(shè)置有一定數(shù)量的通用寄存器,用以存放操作數(shù)扭弧,操作數(shù)的地址或中間結(jié)果阎姥。通用寄存器的數(shù)量一般在幾個(gè)至幾十個(gè)之間,比存儲(chǔ)單元少很多鸽捻,因此地址碼短呼巴,節(jié)省存儲(chǔ)空間,提高指令的執(zhí)行速度御蒲,而且從寄存器中存取數(shù)據(jù)比從存儲(chǔ)器中存取快的多衣赶。
(3)直接尋址
是最直觀的一種方式,指令的地址碼部分給出操作數(shù)在存儲(chǔ)器中的地址厚满,而該指令的尋址方式由操作碼表示府瞄。
(4)間接尋址
有時(shí)根據(jù)指令的地址碼所取出的既不是操作數(shù),也不是下一條要執(zhí)行的指令碘箍,而是操作數(shù)的地址或指令的地址遵馆,這種方式稱(chēng)為間接尋址(間址)(第一次讀出操作數(shù)地址,第二次讀出操作數(shù))丰榴。大多數(shù)計(jì)算機(jī)只允許一次間址团搞。
間接尋址又可分為寄存器間接尋址和存儲(chǔ)器間接尋址兩種。
(5)基址尋址
在計(jì)算機(jī)中設(shè)置一個(gè)專(zhuān)用的基址寄存器多艇,或由指令指定一個(gè)通用寄存器為基址寄存器。操作數(shù)的地址由基址寄存器的內(nèi)容和指令的地址碼A相加得到像吻,地址碼A通常被稱(chēng)為位移量(disp)峻黍。
(6)變址尋址
操作數(shù)的地址由指令地址碼部分給出的地址碼A和指定的變址寄存器的內(nèi)容通過(guò)加法器相加得到复隆。這是幾乎所有計(jì)算機(jī)都采用的一種尋址方式。
當(dāng)計(jì)算機(jī)中還有基址寄存器時(shí)姆涩,也要加上基址寄存器內(nèi)容挽拂。
(7)相對(duì)尋址
把程序計(jì)數(shù)器PC的內(nèi)容(即當(dāng)前執(zhí)行指令的地址)與指令的地址碼部分給出的位移量(Disp)之和作為操作數(shù)的地址或轉(zhuǎn)移地址。
相對(duì)尋址主要用于轉(zhuǎn)移指令骨饿,執(zhí)行本條指令后亏栈,將轉(zhuǎn)移到(PC)+ Disp。
特點(diǎn):
轉(zhuǎn)移地址不固定宏赘。
位移量可正可負(fù)绒北,通常用補(bǔ)碼表示。
(8)堆棧尋址