一臺(tái)計(jì)算機(jī)的指令系統(tǒng)通常有幾十條至幾百條指令府寒,按其所完成的功能可分為:
(1)算術(shù)邏輯運(yùn)算指令
一般計(jì)算機(jī)都具有這類指令。
通常根據(jù)算數(shù)運(yùn)算的結(jié)果置狀態(tài)位,一般有Z(結(jié)果為0)喜庞、N(結(jié)果為負(fù))诀浪、V(結(jié)果溢出)、C(產(chǎn)生進(jìn)位或借位)4個(gè)狀態(tài)位延都。當(dāng)滿足括號(hào)內(nèi)所提出的條件時(shí)雷猪,相應(yīng)位置成1,否則為0晰房。例如求摇,結(jié)果為0時(shí),Z = 1殊者,否則Z=0与境。
(2)移位操作指令
移位操作指令分為算術(shù)移位、邏輯移位和循環(huán)移位3種猖吴,可以將操作數(shù)左移或右移若干位摔刁。
算術(shù)移位與邏輯移位很類似,但由于操作對(duì)象不同(前者的操作數(shù)帶符號(hào)海蔽,后者的操作數(shù)為無符號(hào))而移位操作有所不同共屈。它們的主要差別在于右移時(shí)填入最高位的數(shù)據(jù)不同。算術(shù)右移保持最高位(符號(hào)位)不變准潭,而邏輯右移最高位補(bǔ)零趁俊。
(3)浮點(diǎn)運(yùn)算指令
主要用于科學(xué)計(jì)算的計(jì)算機(jī)應(yīng)該設(shè)置浮點(diǎn)運(yùn)算指令,一般能對(duì)單精度(32位)和雙精度(64位)數(shù)據(jù)進(jìn)行處理刑然。
(4)十進(jìn)制運(yùn)算指令
在人機(jī)交互作用時(shí)寺擂,輸入輸出的數(shù)據(jù)都是以十進(jìn)制表示的。在不具有十進(jìn)制運(yùn)算指令的計(jì)算機(jī)中泼掠,首先將十進(jìn)制數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制數(shù)怔软,再在機(jī)器內(nèi)運(yùn)算;后又轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)輸出择镇。因此挡逼,在輸入輸出數(shù)據(jù)頻繁的計(jì)算機(jī)系統(tǒng)中,設(shè)置十進(jìn)制運(yùn)算指令能提高數(shù)據(jù)處理的速度腻豌。
(5)字符串處理指令
是一種非數(shù)值處理指令家坎,一般包括字符串傳送、字符串比較吝梅、字符串查詢和字符串轉(zhuǎn)換等指令虱疏。
(6)數(shù)據(jù)傳送指令
用以實(shí)現(xiàn)寄存器與寄存器、寄存器與存儲(chǔ)器(主存)單元苏携、存儲(chǔ)器單元與存儲(chǔ)器單元之間的數(shù)據(jù)傳送做瞪。一次可以傳送一個(gè)數(shù)據(jù)或一批數(shù)據(jù)。
數(shù)據(jù)傳送時(shí),數(shù)據(jù)從源地址傳送到目的地址装蓬,而源地址中的數(shù)據(jù)保持不變著拭,因此實(shí)際上是數(shù)據(jù)復(fù)制。
有些機(jī)器設(shè)置了數(shù)據(jù)交換指令牍帚,完成源操作數(shù)與目的操作數(shù)交換,實(shí)現(xiàn)了雙向數(shù)據(jù)傳送峦萎。
(7)轉(zhuǎn)移指令
用以控制程序流的轉(zhuǎn)移忆首。
a. 無條件轉(zhuǎn)移指令(jump)與條件轉(zhuǎn)移指令
無條件轉(zhuǎn)移指令不受任何條件約束糙及,直接把程序轉(zhuǎn)移到指令所規(guī)定的目的地筛欢,在那里繼續(xù)執(zhí)行。
條件轉(zhuǎn)移指令則根據(jù)計(jì)算機(jī)處理結(jié)果來決定程序如何執(zhí)行柱搜。
標(biāo)志:
b. 調(diào)用指令(call)與返回(return)指令
c. 陷阱(trap)與陷阱指令
(8)堆棧(stack)及堆棧操作指令
壓入指令(PUSH)聪蘸,彈出指令(POP)
(9)輸入輸出(I/O)指令
(10)特權(quán)指令
(11)其他指令
向量指令(對(duì)向量或矩陣數(shù)據(jù)求和表制、求積的指令)
多處理機(jī)指令
控制指令(停機(jī)指令等)