三、指令系統(tǒng)
(一)指令和指令系統(tǒng)
指令主要由兩個(gè)部分組成:
操作碼———用來指出計(jì)算機(jī)應(yīng)執(zhí)行何種操作的一個(gè)二進(jìn)制代碼。例如:加法、減法、乘法、除法、取數(shù)、存數(shù)等各種基本操作,它們均有各自相應(yīng)的操作碼。
操作數(shù)地址———指出該指令所操作(處理)的對(duì)象(稱為操作數(shù))所在的存儲(chǔ)單元的地址。計(jì)算機(jī)中操作數(shù)可以相當(dāng)靈活地指定,它可以直接包含在指令中,可以在CPU的某個(gè)寄存器中,一般情況是在存儲(chǔ)器的某個(gè)(些)存儲(chǔ)單元中。指定操作數(shù)所在位置的方法稱為尋址方式。不同的計(jì)算機(jī)具有各自不同的指令,對(duì)某種特定的計(jì)算機(jī)而言,其所有指令的集合,稱為該計(jì)算機(jī)的指令系統(tǒng)。
(二)指令的特征和功能
一般而言,指令系統(tǒng)應(yīng)該具備下述特性:
(1)指令的完備性。是指一個(gè)指令系統(tǒng)應(yīng)滿足給定的算法,可編出程序并實(shí)現(xiàn)之。
(2)指令的有效性。指令系統(tǒng)中所包含的指令必須是有效的,從而可用相當(dāng)少的指令編出實(shí)現(xiàn)某種算法的程序。
(3)指令的簡(jiǎn)明性。它指一個(gè)指令系統(tǒng)能簡(jiǎn)化指令處理機(jī)的操作,又能簡(jiǎn)化編程。
(4)指令的效率。它指系統(tǒng)中指令的執(zhí)行時(shí)間。
另外,尚要求指令系統(tǒng)應(yīng)便于記憶和理解,占用內(nèi)存少,盡量縮短邏輯延遲等。
(三)尋址方式
1.立即尋址
立即尋址又稱立即數(shù)尋址。操作數(shù)緊跟在操作碼之后,直接放在指令中,這種操作數(shù)稱為立即數(shù)。立即數(shù)規(guī)定只能為整數(shù)。立即數(shù)可以是8位或16位,要求低字節(jié)數(shù)放在低位地址中,高字節(jié)數(shù)放在高位地址中。
2.寄存器尋址
操作數(shù)在CPU的內(nèi)部寄存器中,寄存器名由指令指出,這種尋址方式稱之為寄存器尋址方式。對(duì)8位操作數(shù),寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH中的任意一個(gè),對(duì)16位操作數(shù),寄存器可以是AX,BX,CX,DX,SI,DI,SP或BP之一。
3.直接尋址
直接尋址方式的操作數(shù)地址的16位偏移量(又稱有效地址EA)直接包含在指令中,它緊跟在操作碼之后,存放在代碼段區(qū)域。如果指令前面無前綴指明在哪一段,則默認(rèn)操作數(shù)存放在數(shù)據(jù)段寄存器DS中。它的地址為數(shù)據(jù)段寄存器DS加上這16位地址偏移量。
4.寄存器間接尋址
寄存器間接尋址方式的操作數(shù)在存儲(chǔ)器中,操作數(shù)地址的16位偏移量包含在寄存器BX、BP、SI和DI之一中。如果指令中未具體用前綴指明是哪個(gè)段寄存器,則尋址時(shí),對(duì)BX、SI、DI寄存器,默認(rèn)操作數(shù)在數(shù)據(jù)段寄存器DS中,即數(shù)據(jù)段寄存器DS加上SI、DI、BX中的偏移量為操作數(shù)的地址。
5.寄存器相對(duì)尋址(或稱變址尋址)
采用寄存器間接尋址時(shí),允許在指令中指定一個(gè)8位或16位的偏移量,這樣,有效地址由一個(gè)基址或變址寄存器的內(nèi)容加上一個(gè)偏移量來得到。即
[BX]
[BP]
有效地址EA=[SI] +(8位偏移量或16位偏移量)
[DI]
6.基址加變址尋址
將一個(gè)基址寄存器的內(nèi)容加上一個(gè)變址寄存器的內(nèi)容形成操作數(shù)的有效地址,這種尋址稱為基址加變址尋址方式。這種尋址方式中,基址寄存器名和變址寄存器名均由指令指出。如無段跨越前綴,對(duì)BX寄存器默認(rèn)的段寄存器為DS。只要用上寄存器BP,則默認(rèn)的段寄存器為SS。
7.相對(duì)的基址加變址尋址
與寄存器相對(duì)尋址類擬,基址加變址尋址也允許帶一個(gè)8位或16位的位移量。因此,操作數(shù)的有效地址是一個(gè)基礎(chǔ)寄存器的內(nèi)容加上一個(gè)變域寄存器的內(nèi)容,再加一個(gè)8位或16位的偏移量。
8.比例變址尋址
比例變址尋址只能在80386到Pentium微處理器中使用。比例變址是指一對(duì)寄存器中的第二個(gè)用比例因子2、4或8來乘,產(chǎn)生操作數(shù)的內(nèi)存地址。
(四)指令格式1.8086指令格式
8086/8088指令長(zhǎng)度是比較靈活的,可在1~6個(gè)字節(jié)之間變化,組成如下表所示。
8086CPU指令形式
操作碼 MOD字節(jié)
偏移量
操作碼 MOD字節(jié) DATA/DISP
操作碼 MOD字節(jié) DATA/DISPL DATA/DISPH
操作碼 MOD字節(jié) DATA/DISPL DATA/DISPH
DATA
操作碼 MOD字節(jié) DATA/DISPL DATA/DISPH DATAL DATAH
2.Pentium指令的一般格式
Pentium微處理器指令的一般格式如下圖所示。從圖中可看到,一條指令是由可任選的指令前綴(可以以任何的次序)、一個(gè)或兩個(gè)源操作碼字節(jié)、有可能要用的地址說明符(由ModR/M字節(jié)和按比例變址基址SIB字節(jié)構(gòu)成)、一個(gè)位移量(根據(jù)需要)和一個(gè)立即操作數(shù)數(shù)據(jù)字段(如果需要的話)等元素組成的。
指令前綴 地址大小 前綴操作數(shù) 大小前綴 段超前前綴
0或1 0或1 0或1 0或1
………………………………………………………………
字節(jié)數(shù)
操作碼 Mod R/m SIB 位移量 立即數(shù)
1或2 0或1 0或1 0或10,1,2或4
………………………………………………………………
字節(jié)數(shù)
Pentium指令的一般格式
(五)指令周期
微處理器的工作過程,不外乎取出指令、執(zhí)行指令,再取出指令、執(zhí)行指令……這樣一個(gè)循環(huán)過程。一條指令的取出和執(zhí)行所必需的時(shí)間,稱為指令周期。指令周期依取出指令的時(shí)間不同而不同。
(六)指令的流水線和并行控制
為了提高計(jì)算機(jī)訪問存儲(chǔ)器和執(zhí)行指令的處理速度,可以讓一些需要計(jì)算機(jī)處理的多項(xiàng)操作在時(shí)間上重疊進(jìn)行,甚至設(shè)計(jì)出多個(gè)功能相同或相近的部件同時(shí)對(duì)其進(jìn)行處理,這種技術(shù)就是流水線與并行執(zhí)行技術(shù)。
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試三級(jí)PC技術(shù)常見系統(tǒng)命令行北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |