計(jì)算機(jī)組成指令系統(tǒng)匯編語言PPT課件_第1頁
計(jì)算機(jī)組成指令系統(tǒng)匯編語言PPT課件_第2頁
計(jì)算機(jī)組成指令系統(tǒng)匯編語言PPT課件_第3頁
計(jì)算機(jī)組成指令系統(tǒng)匯編語言PPT課件_第4頁
計(jì)算機(jī)組成指令系統(tǒng)匯編語言PPT課件_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 指令:指令:是計(jì)算機(jī)運(yùn)行的最小的功能單元,是指揮是計(jì)算機(jī)運(yùn)行的最小的功能單元,是指揮計(jì)算機(jī)硬件運(yùn)行的命令,是由二進(jìn)制位組成的位串,是計(jì)算機(jī)硬件運(yùn)行的命令,是由二進(jìn)制位組成的位串,是計(jì)算機(jī)硬件可以直接識(shí)別和執(zhí)行的一個(gè)信息體。指令用計(jì)算機(jī)硬件可以直接識(shí)別和執(zhí)行的一個(gè)信息體。指令用于程序設(shè)計(jì)人員告知計(jì)算機(jī)執(zhí)行一個(gè)最基本運(yùn)算、處理于程序設(shè)計(jì)人員告知計(jì)算機(jī)執(zhí)行一個(gè)最基本運(yùn)算、處理功能。功能。 指令系統(tǒng):指令系統(tǒng):一臺(tái)計(jì)算機(jī)提供的全部指令構(gòu)成該計(jì)算一臺(tái)計(jì)算機(jī)提供的全部指令構(gòu)成該計(jì)算機(jī)的機(jī)的指令系統(tǒng)指令系統(tǒng)。多條指令可以組成一個(gè)程序,完成一項(xiàng)。多條指令可以組成一個(gè)程序,完成一項(xiàng)預(yù)期的任務(wù)。預(yù)期的任務(wù)。5

2、.1 指令系統(tǒng)概述指令系統(tǒng)概述 第1頁/共75頁2匯編語言層匯編語言層操作系統(tǒng)層操作系統(tǒng)層指令系統(tǒng)層指令系統(tǒng)層微體系結(jié)構(gòu)層微體系結(jié)構(gòu)層數(shù)字邏輯層數(shù)字邏輯層高級(jí)語言層高級(jí)語言層應(yīng)用層 計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu) 指令系統(tǒng)層指令系統(tǒng)層處在硬件系統(tǒng)和軟件處在硬件系統(tǒng)和軟件系統(tǒng)之間,是硬、軟件之間的接口系統(tǒng)之間,是硬、軟件之間的接口部分。部分。 硬件系統(tǒng)硬件系統(tǒng)負(fù)責(zé)用于實(shí)現(xiàn)每條指令負(fù)責(zé)用于實(shí)現(xiàn)每條指令的功能,解決指令之間的連接關(guān)系;的功能,解決指令之間的連接關(guān)系; 軟件軟件由按一定規(guī)則組織起來的許由按一定規(guī)則組織起來的許多條指令組成,完成一定的數(shù)據(jù)運(yùn)多條指令組成,完成一定的數(shù)據(jù)運(yùn)算或者事

3、務(wù)處理功能。算或者事務(wù)處理功能。 指令系統(tǒng)優(yōu)劣是一個(gè)計(jì)算機(jī)指令系統(tǒng)優(yōu)劣是一個(gè)計(jì)算機(jī)系統(tǒng)是否成功的關(guān)鍵因素,同系統(tǒng)是否成功的關(guān)鍵因素,同時(shí)也是設(shè)計(jì)一臺(tái)計(jì)算機(jī)的起點(diǎn)時(shí)也是設(shè)計(jì)一臺(tái)計(jì)算機(jī)的起點(diǎn)和基本依據(jù)。和基本依據(jù)。微體系結(jié)構(gòu)層微體系結(jié)構(gòu)層軟軟 件件 系系 統(tǒng)統(tǒng)硬硬 件件 系系 統(tǒng)統(tǒng)回顧:指令系統(tǒng)在計(jì)算機(jī)中的地位回顧:指令系統(tǒng)在計(jì)算機(jī)中的地位第2頁/共75頁3 設(shè)計(jì)指令系統(tǒng)的四點(diǎn)要求:設(shè)計(jì)指令系統(tǒng)的四點(diǎn)要求:完備性完備性: :指令齊全指令齊全, ,編程方便。編程方便。 規(guī)整性規(guī)整性: :指令和數(shù)據(jù)的使用規(guī)則統(tǒng)一簡(jiǎn)單,易學(xué)易記指令和數(shù)據(jù)的使用規(guī)則統(tǒng)一簡(jiǎn)單,易學(xué)易記高效性高效性: :占內(nèi)存少占內(nèi)存少,

4、,運(yùn)行省時(shí)。運(yùn)行省時(shí)。兼容性兼容性: :同一系列機(jī)軟件兼容同一系列機(jī)軟件兼容對(duì)設(shè)計(jì)指令系統(tǒng)的要求對(duì)設(shè)計(jì)指令系統(tǒng)的要求 對(duì)指令系統(tǒng)的要求很嚴(yán)格,既要支持程序設(shè)計(jì)人對(duì)指令系統(tǒng)的要求很嚴(yán)格,既要支持程序設(shè)計(jì)人員員用它設(shè)計(jì)各種程序用它設(shè)計(jì)各種程序,越簡(jiǎn)單、方便越好越簡(jiǎn)單、方便越好(相同算法實(shí)現(xiàn)相同算法實(shí)現(xiàn)所需的指令少所需的指令少 ),又要容易在計(jì)算機(jī)中,又要容易在計(jì)算機(jī)中用硬件實(shí)現(xiàn)這些用硬件實(shí)現(xiàn)這些指令的處理功能指令的處理功能,越節(jié)省、高效越好越節(jié)省、高效越好,但這兩個(gè)方面,但這兩個(gè)方面的要求經(jīng)常是有矛盾的。的要求經(jīng)常是有矛盾的。第3頁/共75頁43 個(gè)層次的程序設(shè)計(jì)語言 機(jī)器語言是計(jì)算機(jī)硬件能直接識(shí)

5、別和運(yùn)行的指令的集合,是二進(jìn)制碼組成的指令,用機(jī)器語言設(shè)計(jì)程序基本不可行。 匯編語言是對(duì)計(jì)算機(jī)機(jī)器語言進(jìn)行符號(hào)化處理的結(jié)果,再增加一些為方便程序設(shè)計(jì)而實(shí)現(xiàn)的擴(kuò)展功能。依賴編譯器但效率很高。 高級(jí)語言又稱算法語言,它的實(shí)現(xiàn)思路,不再是過分地“靠攏”計(jì)算機(jī)硬件的指令系統(tǒng),而是著重面向解決實(shí)際問題所用的算法,瞄準(zhǔn)的是如何使程序設(shè)計(jì)人員能夠方便地寫出處理問題和解題過程的程序,力爭(zhēng)使程序設(shè)計(jì)工作的效率更高。對(duì)編譯器的效率要求很高。 第4頁/共75頁5確定指令系統(tǒng)的兩種思路 從降低硬件系統(tǒng)構(gòu)成的復(fù)雜程度、提高指令執(zhí)行的速度和并行性考慮,確定指令系統(tǒng)時(shí)有兩種思路:CISC(Complex Instructi

6、on Set Computer)(intel x86) 通常稱為復(fù)雜指令系統(tǒng)的計(jì)算機(jī)。其核心思想是:為了提高效率,讓硬件做更多的事情。 其特點(diǎn)是:指令條數(shù)多,格式多樣,尋址方式復(fù)雜,每條指令的功能強(qiáng),優(yōu)點(diǎn)是匯編程序設(shè)計(jì)容易些,但計(jì)算機(jī)控制器的實(shí)現(xiàn)困難多(Intel 4G 處理器的流產(chǎn)/Power PC),很多指令被使用的機(jī)會(huì)比較少。指令并行度差。RISC(Reduced Instruction Set Computer)(MIPS/POWER PC) 通常稱為精簡(jiǎn)指令系統(tǒng)的計(jì)算機(jī)。約翰. .科克( John Cocke ) ( John Cocke ) 提出了著名的“20%-80%20%-80

7、%定律”( (即只有20%20%簡(jiǎn)單的指令是經(jīng)常使用的, , 而其余80%80%的復(fù)雜指令卻很少使用), ), 這是RISCRISC技術(shù)的設(shè)計(jì)基礎(chǔ)。其核心思想是:讓軟件做更多的事情,提高簡(jiǎn)單指令的執(zhí)行效率。(Alpha 處理器) 提供數(shù)目較少、格式與功能簡(jiǎn)單、運(yùn)行高效的指令,追求的是計(jì)算機(jī)控制器實(shí)現(xiàn)簡(jiǎn)單,運(yùn)行高速,更容易在單塊超大規(guī)模集成電路的芯片內(nèi)制做出來。指令并行性好(多發(fā)射技術(shù))。融合趨勢(shì) :CISC和RISC融合的趨勢(shì)第5頁/共75頁6CISC指令和RISC指令舉例 CISC架構(gòu)乘法指令:MUL ADDRA, ADDRB 可以將內(nèi)存地址為ADDRA和ADDRB中的數(shù)相乘并將結(jié)果儲(chǔ)存在A

8、DDRA中。它完成的操作首先將ADDRA, ADDRB中的數(shù)據(jù)讀入寄存器,相乘和將結(jié)果寫回內(nèi)存的操作全部依賴于CPU中設(shè)計(jì)的邏輯來實(shí)現(xiàn)。 這種架構(gòu)會(huì)增加CPU結(jié)構(gòu)的復(fù)雜性和對(duì)CPU工藝的要求,但對(duì)于編譯器的開發(fā)十分有利。比如上面的例子,C程序中的a*=b就可以直接編譯為一條乘法指令。 RISC架構(gòu)只支持簡(jiǎn)單寄存器乘法指令MUL A, B 。 RISC上實(shí)現(xiàn)相同的功能:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。共需要4條指令。 這種架構(gòu)可以降低CPU的復(fù)雜性以及允許在同樣的工藝水平下生產(chǎn)出功能更強(qiáng)大的CPU,但對(duì)于編譯器的設(shè)計(jì)有更高的要

9、求。第6頁/共75頁7指令格式-指令表示 指令字:代表指令的一組二進(jìn)制代碼信息; 指令字長:指令字中二進(jìn)制代碼的位數(shù)。 位數(shù)越多,所能表示的操作信息和地址信息也就越多,使指令功能豐富。但會(huì)占用存儲(chǔ)空間多,讀取指令的時(shí)間可能增加。 指令基本格式:一般由操作碼和操作對(duì)象兩部分組成 操作對(duì)象指一個(gè)或多個(gè)地址碼。 OP A 0 A 1 第7頁/共75頁8指令表示 操作碼:用來指明該指令所要完成的操作,如加法、減法、傳送、移位、轉(zhuǎn)移等等。 位數(shù)反映了機(jī)器的操作種類,也即機(jī)器允許的指令條數(shù),如果操作碼有n位二進(jìn)制數(shù),則最多可表示2n種指令。 地址碼:用來尋找運(yùn)算所需要的操作數(shù)(源操作數(shù)和目的操作數(shù))。 地

10、址碼包括:源操作數(shù)地址、目的操作數(shù)地址和下一條指令的地址。 地址含義:主存的地址、寄存器地址或者I/O設(shè)備地址。第8頁/共75頁9指令字長與機(jī)器字長的關(guān)系 機(jī)器字長是指計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它與計(jì)算機(jī)的功能和用途有很大的關(guān)系,是計(jì)算機(jī)的一個(gè)重要技術(shù)指標(biāo)。首先,字長決定了計(jì)算機(jī)的運(yùn)算精度,字長越長計(jì)算機(jī)的運(yùn)算精度越高,因此高性能的計(jì)算機(jī)字長較長。 指令的長度與機(jī)器的字長沒有固定的關(guān)系,它既可以小于或等于機(jī)器的字長,也可以大于機(jī)器的字長(增加取指時(shí)間)。前者稱為短格式指令,后者稱為長格式指令。一條指令存放在地址連續(xù)的存儲(chǔ)單元中。同一臺(tái)計(jì)算機(jī)中可能既有短格式指令又有長格式指令,但通常是

11、把最常用的指令(如算術(shù)邏輯運(yùn)算指令、數(shù)據(jù)傳送指令)設(shè)計(jì)成短格式指令,以便節(jié)省存儲(chǔ)空間和提高指令的執(zhí)行速度。第9頁/共75頁10 指令的長度主要取決于操作碼的長度、操作數(shù)地址的長度和操作數(shù)地址的個(gè)數(shù)。由于操作碼的長度、操作數(shù)地址的長度及指令格式不同,各指令的長度不是固定的,指令的長度通常為字節(jié)的整數(shù)倍。 地址碼長度決定了指令直接尋址能力,若為n位,則給出的n位直接地址尋址2n字節(jié)。這對(duì)于字長較短(8位或16位)的微型機(jī)來說遠(yuǎn)遠(yuǎn)滿足不了實(shí)際需要,擴(kuò)大尋址能力的方法,一是通過增加機(jī)器字長來增加地址碼的長度;二是采用地址擴(kuò)展技術(shù),把存儲(chǔ)空間分成若干個(gè)段,用基地址加位移量的方法來增加地址碼的長度。 在P

12、entium系列機(jī)中,指令格式也是可變的:由8位、16位、32位、64位不等。第10頁/共75頁115.1.1 操作碼組織與編碼定長的操作碼的組織方案 在指令字最高位部分分配固定若干位用于表示操作碼。 這種格式便于硬件設(shè)計(jì),指令譯碼時(shí)間短,廣泛應(yīng)用于字長較長的、大中型計(jì)算機(jī)和超級(jí)小型計(jì)算機(jī)以及RISC(Reduced Instruction Set Computer)中。如IBM370和VAX-11系列機(jī),操作碼長度均為8位。變長的操作碼的組織方案(擴(kuò)展操作碼) 不同的指令操作碼的位數(shù)可以變化,稱可變長操作碼。 使用頻度高的指令,采用較短的操作碼,使用頻度低的指令,采用較長的操作碼,使得指令系

13、統(tǒng)的操作碼平均長度得到壓縮。 由于這種格式可有效地壓縮操作碼的平均長度,在字長較短的微機(jī)中被廣泛采用。如PDP-11,Intel8086/80386等。第11頁/共75頁12 假設(shè)某機(jī)器的指令長度為16位,包括 4位基本操作碼和三個(gè) 4位地址碼段。 15 12 118 7 4 30 OP A1 A2 A3 4 位基本操作碼可表示位基本操作碼可表示 16個(gè)狀態(tài),個(gè)狀態(tài),如用如用 4 位操作碼,則能表示位操作碼,則能表示 16 條條三地址三地址指令,指令,若用若用 8 位操作碼,則可表示位操作碼,則可表示 256 條條二地址二地址指令,指令,而用而用12位操作碼,則可表示位操作碼,則可表示 409

14、6條條一地址一地址指令,指令,若若16位全用作操作碼,則可表示位全用作操作碼,則可表示 65536條條零地址零地址指令指令指令操作碼的擴(kuò)展技術(shù)第12頁/共75頁13操作碼擴(kuò)展:指令字長操作碼擴(kuò)展:指令字長1616位,可含有位,可含有3 3、2 2、1 1或或0 0個(gè)地址,每個(gè)地址占個(gè)地址,每個(gè)地址占4 4位。位。操作碼操作碼 地址碼地址碼 15 12 11 8 7 4 3 00000 0000 X X Y Y Z Z 1110 1110 X X Y Y Z Z.11111111 0000 0000 Y ZY Z 1111 1111 1110 1110 Y ZY Z.三地址指令三地址指令 151

15、5條條二地址指令二地址指令 1515條條11111111 11111111 0000 0000 Z Z 1111 11111111 1111 1110 1110 Z Z.一地址指令一地址指令 1515條條11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111.零地址指令零地址指令 1616條條第13頁/共75頁14 前面介紹的操作碼擴(kuò)展方案中,每次擴(kuò)展4位并僅保留了一個(gè)編碼用于接下來的擴(kuò)展過程,當(dāng)每次擴(kuò)展的位數(shù)和保留的位數(shù)變化時(shí),后面可擴(kuò)展的指令條數(shù)就可以變化。例如在16位字中的指令字中,可以選用如下

16、方案支持三地址指令、二地址指令、一地址指令和零地址指令14、30、31、16條:16條零地址為:條零地址為:11111111111100001111111111111111 14條三地址為:條三地址為:0000 1101 (保留保留1110、1111 兩個(gè)碼兩個(gè)碼)30條二地址為:條二地址為:11100000 11111101 (保留(保留 2個(gè)碼)個(gè)碼)31條一地址為:條一地址為:111111100000 111111111110 (保留保留 1個(gè)碼個(gè)碼)指令操作碼的擴(kuò)展技術(shù)第14頁/共75頁155.1.2 操作數(shù)個(gè)數(shù)(1)三地址指令:(A1)OP(A2)A3OPA1A2A3(2)二地址指令

17、:(A1)OP(A2)A1A1:目的操作數(shù)A2:源操作數(shù)(3)單地址指令:(ACC)OP(A)ACCOP(A)A單目操作:如NEG、INC等指令OPA1A2OPA第15頁/共75頁165.1.2 操作數(shù)個(gè)數(shù)(4)零地址指令不涉及操作數(shù):如NOP、HLT指令操作數(shù)隱含:如PUSH、POP指令對(duì)于寄存器類型的操作數(shù),地址A指寄存器編號(hào)。OP第16頁/共75頁17 指令操作數(shù)來源和去向1 1、CPUCPU內(nèi)部的通用寄存器:操作數(shù)存放在CPU的通用寄存器中,地址碼A為寄存器號(hào)。2 2、輸入輸出設(shè)備(接口)的一個(gè)寄存器。操作數(shù)存放在外設(shè)中,地址碼A為其地址信息。(IO統(tǒng)一編址: MIPS IO單獨(dú)編址:

18、x86)3 3、主存儲(chǔ)器的一個(gè)存儲(chǔ)單元。操作數(shù)存放在主存中,地址碼A為其地址信息4 4、立即數(shù)。操作數(shù)直接存放在指令中5.1.2 指令操作數(shù)來源和去向第17頁/共75頁18例:例: X、Y、Z是存放三個(gè)操作數(shù)的存儲(chǔ)單元地址。分別用三地是存放三個(gè)操作數(shù)的存儲(chǔ)單元地址。分別用三地址、二地址、一地址結(jié)構(gòu)的指令實(shí)現(xiàn)址、二地址、一地址結(jié)構(gòu)的指令實(shí)現(xiàn) (X)+(Y) - Z 的程的程序段,并分析比較,序段,并分析比較, 見下圖:見下圖:指令格式指令格式 程序程序 特點(diǎn)特點(diǎn)一地址結(jié)構(gòu)一地址結(jié)構(gòu)ADD X,Y,Z只需一條指令,但指令長只需一條指令,但指令長度較長度較長二地址結(jié)構(gòu)二地址結(jié)構(gòu)MOV Z,YADD

19、Z,X需兩條指令,但指令長度需兩條指令,但指令長度變短變短三地址結(jié)構(gòu)三地址結(jié)構(gòu)LOAD XADD YSTORE Z需三條指令,指令長度最需三條指令,指令長度最短短第18頁/共75頁19操作數(shù)類型與數(shù)據(jù)存儲(chǔ)方式(1) 操作數(shù)類型操作數(shù)類型地址地址數(shù)字?jǐn)?shù)字字符字符邏輯數(shù)邏輯數(shù)無符號(hào)整數(shù)無符號(hào)整數(shù)定點(diǎn)數(shù)、浮點(diǎn)數(shù)、二定點(diǎn)數(shù)、浮點(diǎn)數(shù)、二_十進(jìn)制數(shù)十進(jìn)制數(shù)ASCII邏輯運(yùn)算,邏輯運(yùn)算,bit(2) 數(shù)據(jù)在存儲(chǔ)器中的存放方式數(shù)據(jù)在存儲(chǔ)器中的存放方式字地址字地址 為為 低字節(jié)低字節(jié) 地址地址Intel字地址字地址 為為 高字節(jié)高字節(jié) 地址地址Motorola37621540字地址字地址04低字節(jié)低字節(jié)0451

20、2673字地址字地址04低字節(jié)低字節(jié)第19頁/共75頁20存儲(chǔ)器中的數(shù)據(jù)存放存儲(chǔ)器中的數(shù)據(jù)存放 (存儲(chǔ)字長為存儲(chǔ)字長為 32 位位)地址地址(十進(jìn)制十進(jìn)制) 0 4 812162024283236雙字雙字(地址32)雙字雙字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字節(jié)(地址8)字節(jié)(地址9)字節(jié)(地址10)字節(jié)(地址11)字(地址 4)字(地址 0)字節(jié)(地址14) 字節(jié)(地址15)字節(jié)(地址13)字節(jié)(地址12)邊界對(duì)準(zhǔn)邊界對(duì)準(zhǔn) 第20頁/共75頁21 指令指令是用戶使用計(jì)算機(jī)和計(jì)算機(jī)本身運(yùn)行的最小是用戶使用計(jì)算機(jī)和計(jì)算機(jī)本身運(yùn)行的最小的功能單元:的功能單

21、元: 用于設(shè)計(jì)程序用于設(shè)計(jì)程序, , 指令是由多個(gè)二進(jìn)制指令是由多個(gè)二進(jìn)制位組成的數(shù)串位組成的數(shù)串, , 計(jì)算機(jī)硬件可直接識(shí)別和執(zhí)行。通計(jì)算機(jī)硬件可直接識(shí)別和執(zhí)行。通常情況下一臺(tái)計(jì)算機(jī)需要提供哪些指令呢?常情況下一臺(tái)計(jì)算機(jī)需要提供哪些指令呢? 計(jì)算機(jī)用于計(jì)算和處理數(shù)據(jù),為此,要在計(jì)算機(jī)硬計(jì)算機(jī)用于計(jì)算和處理數(shù)據(jù),為此,要在計(jì)算機(jī)硬件系統(tǒng)中設(shè)置件系統(tǒng)中設(shè)置 5 5 種類型的部件:種類型的部件:運(yùn)算器部件運(yùn)算器部件、控制器控制器部件部件、存儲(chǔ)器部件存儲(chǔ)器部件、輸入設(shè)備輸入設(shè)備、輸出設(shè)備輸出設(shè)備,各自承擔(dān),各自承擔(dān)數(shù)據(jù)運(yùn)算數(shù)據(jù)運(yùn)算、系統(tǒng)指揮控制系統(tǒng)指揮控制、保存當(dāng)前程序和數(shù)據(jù)保存當(dāng)前程序和數(shù)據(jù)、執(zhí)、

22、執(zhí)行行輸入輸入和執(zhí)行和執(zhí)行輸出輸出的功能。需要在計(jì)算機(jī)中設(shè)置為使的功能。需要在計(jì)算機(jī)中設(shè)置為使用和控制這幾個(gè)部件運(yùn)行的相應(yīng)指令。用和控制這幾個(gè)部件運(yùn)行的相應(yīng)指令。 也可換一個(gè)角度說,寫程序要使用哪些類型的指也可換一個(gè)角度說,寫程序要使用哪些類型的指令呢?令呢?5.1.3 指令分類指令分類第21頁/共75頁22輸入設(shè)備輸入設(shè)備輸出設(shè)備輸出設(shè)備入出接口和總線入出接口和總線外存設(shè)備外存設(shè)備主存儲(chǔ)器主存儲(chǔ)器高速緩存高速緩存控控 制制 器器運(yùn)運(yùn) 算算 器器使用硬件系統(tǒng)用到的基本指令使用硬件系統(tǒng)用到的基本指令A(yù)DDSUBANDORMVRRSHRRCLOUTSTORE PUSHJUMPJRCJRNCJRZJ

23、RNZCALLRETLOAD POPIN第22頁/共75頁23指令的功能和分類 指令用于設(shè)計(jì)程序,指令系統(tǒng)構(gòu)成最低級(jí)別的程序設(shè)計(jì)語言,程序設(shè)計(jì)人員通過指令直接指揮計(jì)算機(jī)的硬件完成某一個(gè)基本的運(yùn)算、處理功能,例如: 對(duì)數(shù)值數(shù)據(jù)的算術(shù)運(yùn)算,對(duì)邏輯數(shù)據(jù)的邏輯運(yùn)算, 在計(jì)算機(jī)部件之間傳送、保存數(shù)據(jù), 從外部向計(jì)算機(jī)內(nèi)輸入數(shù)據(jù), 把計(jì)算機(jī)內(nèi)部計(jì)算結(jié)果輸出出來, 按照某種條件控制計(jì)算機(jī)選擇執(zhí)行某段程序, 當(dāng)然還有另外一些方面的更深層次的要求 等; 可以按照指令執(zhí)行的功能對(duì)它們們進(jìn)行分類。第23頁/共75頁24指令的功能分類-1 算術(shù)與邏輯運(yùn)算指令 加、減、乘、除、變符號(hào) 等算術(shù)運(yùn)算 與、或、非、異或 等邏

24、輯運(yùn)算 移位操作指令 算術(shù)移位(一般只右移)、邏輯移位、循環(huán)移位 數(shù)據(jù)傳送指令 通用寄存器之間傳送 通用寄存器與主存儲(chǔ)器存儲(chǔ)單元之間傳送 主存儲(chǔ)器不同存儲(chǔ)單元之間傳送 輸入輸出指令 通用寄存器與輸入輸出設(shè)備(接口)之間傳送第24頁/共75頁25指令的功能分類-2轉(zhuǎn)移指令 變動(dòng)程序中指令執(zhí)行次序的指令,分為無條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令子程序調(diào)用與返回指令 子程序調(diào)用與返回指令要配合使用,子程序的最后一條指令一定是返回指令,執(zhí)行結(jié)束后返回主程序斷點(diǎn)堆棧操作指令 堆棧(stack)是由若干個(gè)連續(xù)存儲(chǔ)單元組成的先進(jìn)后出的存儲(chǔ)區(qū),有壓入(即進(jìn)棧)和彈出(即退棧)操作其他指令 置條件碼指令、開中斷指令、關(guān)

25、中斷指令 停機(jī)指令、空操作指令、特權(quán)指令第25頁/共75頁265.2 尋址方式 什么叫尋址方式? 尋址方式(又稱編址方式)指的是確定本條指令的操作數(shù)地址及下一條要執(zhí)行的指令地址的方法。 一個(gè)指令系統(tǒng)采用什么樣的尋址方式與存儲(chǔ)結(jié)構(gòu)及其存取方式有關(guān)。 通常在指令中為每一個(gè)操作數(shù)專設(shè)一個(gè)地址字段,用來表示數(shù)據(jù)的來源或去向的地址。 在指令中給出的操作數(shù)(或指令)的地址被稱為形式地址,使用形式地址信息并按一定規(guī)則計(jì)算出來或讀操作得到的一個(gè)數(shù)值才是數(shù)據(jù)(或指令)的實(shí)際地址(有效地址、物理地址)。第26頁/共75頁27指令尋址 1、順序?qū)ぶ贩绞?控制器中使用程序計(jì)數(shù)器PC來指示指令在內(nèi)存中的地址。在程序順序

26、執(zhí)行時(shí),指令的地址碼由PC自加1得出。 指令在內(nèi)存中按順序存放,當(dāng)順序執(zhí)行一段程序時(shí),根據(jù)PC從存儲(chǔ)器取出當(dāng)前指令, PC自動(dòng)1,然后執(zhí)行這條指令;接著又根據(jù)PC指示從存儲(chǔ)器取出下一條指令, PC自動(dòng)1, 執(zhí)行。 2、跳躍尋址方式 當(dāng)程序執(zhí)行轉(zhuǎn)移指令時(shí),程序不再順序執(zhí)行,而是跳轉(zhuǎn)到另一個(gè)地址去執(zhí)行,此時(shí),由該條轉(zhuǎn)移指令的地址碼字段可以得到新指令地址,然后將其置入PC中。第27頁/共75頁28數(shù)據(jù)尋址 指令的地址碼字段,通常都不代表操作數(shù)的真實(shí)地址,把它稱作形式地址,記為A。操作數(shù)的真實(shí)地址稱為有效地址,記作EA,它是由尋址方式和形式地址共同來確定的。 第28頁/共75頁295.2.1 存儲(chǔ)結(jié)構(gòu)

27、與存取方式 一個(gè)指令系統(tǒng)采用什么樣的尋址方式與存儲(chǔ)結(jié)構(gòu)及其存取方式有關(guān)。1. CPU1. CPU中的寄存器 訪問時(shí)只需給出寄存器號(hào)或隱含約定(根據(jù)操作碼)。稱為可編址寄存器。2. 2. 主存 訪問時(shí)應(yīng)給出相應(yīng)的存儲(chǔ)單元號(hào)3. 3. 堆棧 堆棧的操作在棧頂實(shí)現(xiàn),棧頂?shù)刂酚卸褩V羔樇拇嫫鱏PSP給出,用隱地址訪問。第29頁/共75頁305.2.1 存儲(chǔ)結(jié)構(gòu)與存取方式4. 4. 外存 訪問時(shí),用戶給出文件名,系統(tǒng)給出外存的尋址信息。通常不由指令直接給出,而由主機(jī)以命令字形式給出。5. 5. 外設(shè) 訪問時(shí),主機(jī)通過外設(shè)中的相關(guān)寄存器實(shí)現(xiàn)與外設(shè)的I/OI/O傳送??蓪⑦@些寄存器與主存統(tǒng)一編址,或?yàn)槠浞峙?/p>

28、專門的I/OI/O端口地址。 第30頁/共75頁315.2.1 基本尋址方式1.立即尋址方式由指令直接給出操作數(shù)。操作碼操作碼OP OP 立即數(shù)立即數(shù)S S定長格式:定長格式:變長格式變長格式:基本指令基本指令 立即數(shù)立即數(shù)S S數(shù)在指令中,數(shù)在指令中,其長度固定、其長度固定、位數(shù)有限。位數(shù)有限。數(shù)在基本指令之?dāng)?shù)在基本指令之后,其長度可變。后,其長度可變。用來提供常數(shù)、設(shè)置初值等。用來提供常數(shù)、設(shè)置初值等。例如:例如:MOV R0,AAAA(教學(xué)機(jī)教學(xué)機(jī)) MOV AL,5 MOV AX,3406H (x86)操作碼操作碼OP OP 立即數(shù)立即數(shù)S S定長格式:定長格式:變長格式變長格式:基本

29、指令基本指令 立即數(shù)立即數(shù)S S數(shù)在指令中,數(shù)在指令中,其長度固定、其長度固定、位數(shù)有限。位數(shù)有限。數(shù)在基本指令之?dāng)?shù)在基本指令之后,其長度可變。后,其長度可變。操作碼操作碼OP OP 立即數(shù)立即數(shù)S S定長格式:定長格式:變長格式變長格式:基本指令基本指令 立即數(shù)立即數(shù)S S操作碼操作碼OP OP 立即數(shù)立即數(shù)S S定長格式:定長格式:變長格式變長格式:基本指令基本指令 立即數(shù)立即數(shù)S S數(shù)在指令中,數(shù)在指令中,其長度固定、其長度固定、位數(shù)有限。位數(shù)有限。第31頁/共75頁322、直接尋址方式 指令直接給出操作數(shù)地址.操作數(shù)地址為寄存器地址則稱為寄存器直接尋址,操作數(shù)地址為存儲(chǔ)器地址則稱為存儲(chǔ)

30、器直接尋址。存儲(chǔ)單元號(hào)存儲(chǔ)單元號(hào)寄存器號(hào)寄存器號(hào)( (數(shù)在數(shù)在M M中中) )( (數(shù)在數(shù)在R R中中) )操作碼操作碼OP OP 寄存器號(hào)寄存器號(hào)R R (1 1)寄存器直接尋址)寄存器直接尋址(寄存器尋址)(寄存器尋址)格式格式R R所占位數(shù)少;所占位數(shù)少;訪問訪問R R比訪問比訪問M M快快但但R R數(shù)量有限數(shù)量有限S =S =(R R)第32頁/共75頁33直接尋址方式例. 指令:INC R1 1000HR02000HR13A00HR23C00HR3第33頁/共75頁34直接尋址方式(2 2)存儲(chǔ)器直接尋址操作碼操作碼OP OP 有效地址有效地址D D (直接尋址)(直接尋址)定長格式

31、定長格式變長格式變長格式 基本指令基本指令 D DL L D DH HD D的位數(shù)可覆蓋的位數(shù)可覆蓋整個(gè)存儲(chǔ)空間整個(gè)存儲(chǔ)空間S =S =(D D)用于訪問固定的存儲(chǔ)單元。指令中能給出的直用于訪問固定的存儲(chǔ)單元。指令中能給出的直接地址空間范圍有限。(受指令長度限制)接地址空間范圍有限。(受指令長度限制)第34頁/共75頁35例. 指令:INC 2000H1000H1000H1A00H1A00H2000H2000H 1B00H 1B00H. M第35頁/共75頁363、間接尋址方式間接尋址方式 指令給出操作數(shù)的間接地址。目的:相對(duì)直接尋址,擴(kuò)大尋址范圍。存儲(chǔ)單元號(hào)存儲(chǔ)單元號(hào)寄存器號(hào)寄存器號(hào)( (數(shù)

32、在數(shù)在M M中中) )( (數(shù)在數(shù)在M M中中) )格式格式(1 1)存儲(chǔ)器間址)存儲(chǔ)器間址操作碼操作碼OP OP 間接地址間接地址D D D=0030D=003000600060.00600060 S S.S =(D)S =(D) M間址單元間址單元地址指針地址指針間址單元地址間址單元地址操作數(shù)地址操作數(shù)地址操作數(shù)操作數(shù)MM第36頁/共75頁37間接尋址方式(2 2)寄存器間址操作碼操作碼OP OP 寄存器號(hào)寄存器號(hào)R R 格式格式R R所占位數(shù)少;所占位數(shù)少;R R可提供全字長地可提供全字長地址碼;修改址碼;修改R R內(nèi)容比修改內(nèi)容比修改M M內(nèi)容快。內(nèi)容快。S =(R)S =(R)R=0

33、2R=02 M00400040 S S. .地址指針地址指針0040寄存器號(hào)寄存器號(hào)操作數(shù)地址操作數(shù)地址操作數(shù)操作數(shù)RM第37頁/共75頁384、堆棧尋址堆棧尋址格式格式 操作碼操作碼OP OP 堆棧指針堆棧指針S SP P SPSPS =(SP)S =(SP)00700070棧頂棧頂SPSP既可出現(xiàn)在指令中,也可隱含約定。既可出現(xiàn)在指令中,也可隱含約定。 M低低高高堆棧向上生成堆棧向上生成壓棧:壓棧:SPSP自動(dòng)減自動(dòng)減1 1,再存數(shù)。,再存數(shù)。-(SP)-(SP),自減型間址自減型間址。先取數(shù),先取數(shù),SPSP再自動(dòng)加再自動(dòng)加1 1。(SP)+(SP)+,自增型間址自增型間址。出棧出棧:

34、S S. .第38頁/共75頁395、變址尋址方式變址尋址方式 指令給出一個(gè)寄存器號(hào)和一個(gè)地址量,寄存器內(nèi)容與地址量之和為有效地址。變址寄存器號(hào)變址寄存器號(hào)S =(S =(R(RX X) )+ + D D) )格式格式操作碼操作碼OP OP R RX X D D 形式地址形式地址變址量變址量基準(zhǔn)地址(數(shù)值)基準(zhǔn)地址(數(shù)值)第39頁/共75頁40變址尋址方式例. . 用變址方式訪問一組連續(xù)區(qū)間內(nèi)的數(shù)組元素。D=D=首址首址D D為存儲(chǔ)區(qū)首址;為存儲(chǔ)區(qū)首址;(RX)(RX)為所訪單元距離為所訪單元距離首址的長度;首址的長度;RXRX初值為初值為0 0,每訪問一,每訪問一個(gè)單元,個(gè)單元,(RX)+1

35、(RX)+1。n-1n-1.0 01 12 2.D+1D+1D+2D+2D+n-1D+n-1 .第40頁/共75頁416、基址尋址方式基址尋址方式 指令給出一個(gè)寄存器號(hào)和一個(gè)地址量,寄存器內(nèi)容與地址量之和為有效地址。格式格式基址寄存器號(hào)基址寄存器號(hào)R Rb b 4K 4K操作碼操作碼OP OP R Rb b D D 位移量位移量S =(S =(R(Rb b) )+ + D D) )基準(zhǔn)地址基準(zhǔn)地址 相對(duì)于基址的位移相對(duì)于基址的位移 M.R Rb b 4K 4KD=2D=2D=2D=2第41頁/共75頁42基址尋址方式便于訪問兩維數(shù)組中某類指定的元素。比如: 4K 4K 4K 4KR Rb b

36、M.R Rb bD=2D=2D=2D=2學(xué)生姓名學(xué)生姓名性別性別性別性別年齡年齡年齡年齡學(xué)生姓名學(xué)生姓名第42頁/共75頁43變址與基址的區(qū)別: 變址與基址的區(qū)別:變址變址:指令提供:指令提供基準(zhǔn)量基準(zhǔn)量( (不變不變) ),R R提供提供修改量修改量( (可變可變) );適于處理一維數(shù)組。;適于處理一維數(shù)組?;坊罚褐噶钐峁褐噶钐峁┪灰屏课灰屏? (不變不變) ),R R提供提供基準(zhǔn)量基準(zhǔn)量( (可變可變) );用于擴(kuò)大有限字長指令的訪存空間。;用于擴(kuò)大有限字長指令的訪存空間。第43頁/共75頁447、相對(duì)尋址方式相對(duì)尋址方式 指令給出位移量,PCPC內(nèi)容與位移量之和為有效地址。格式格式

37、位移量位移量操作碼操作碼OP OP PCPC D D 程序計(jì)數(shù)器,由寄存器號(hào)選定或隱含指定程序計(jì)數(shù)器,由寄存器號(hào)選定或隱含指定S =(PC)S =(PC)D)D)有效地址相對(duì)有效地址相對(duì)PCPC上下浮動(dòng)上下浮動(dòng), ,給編程帶來方便給編程帶來方便。第44頁/共75頁45尋址特征:尋址方式的編碼 尋址特征 R-R指令編碼例子 OP: 4bit Ms: 源操作數(shù)尋址特征 3bit Rs: 源寄存器地址 3bit Md: 目的操作數(shù)尋址特征 3bit Rs: 目的寄存器地址 3bit Ms/Md: 000 寄存器直接 操作數(shù)=(Rn) 001 寄存器間接 操作數(shù)=(Rn) 010 寄存器間接、自增 操

38、作數(shù)= (Rn),Rn=Rn+1 011 相對(duì) 轉(zhuǎn)移目標(biāo)地址=(PC)+(Rn) 尋址特征 單地址編碼例子操作碼操作碼OP OP MsMs Rs Rs Md Rd Md Rd第45頁/共75頁465.2 指令格式舉例指令格式舉例OPR1R2 RR格式格式8 4 4OPR1XBD RX格式格式8 4 4 4 12OPR1R3BD RS格式格式8 4 4 4 12OPBDI SI格式格式8 8 4 12OPB1D1LB2D2 SS格式格式8 8 4 12 4 12二地址二地址 R R基址加變址尋址基址加變址尋址二地址二地址 R M三地址三地址 R M基址尋址基址尋址二地址二地址 M M 基址尋址基

39、址尋址基址尋址基址尋址立即數(shù)立即數(shù) M(1) IBM 360指令格式指令格式寄存器尋址寄存器尋址第46頁/共75頁47(2) MIPS計(jì)算機(jī)系統(tǒng) MIPS是上個(gè)世紀(jì)八十年代中推出的RISC結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng),獲得了很大的成功。 MIPS32是32位字長、典型RISC結(jié)構(gòu)的計(jì)算機(jī),其指令格式規(guī)范,只有種,用到的尋址方式和指令條數(shù)少。 第1種指令稱為R型指令型指令,完成寄存器之間數(shù)據(jù)運(yùn)算功能,例如,rd rs op rt,rd (rs rt),即 rs的內(nèi)容比rt的內(nèi)容小則置1rd,否則清0; 第2種指令稱為I型指令型指令,完成寄存器內(nèi)容和立即數(shù)之間的運(yùn)算功能,例如, rt rs op immedi

40、ate ,存儲(chǔ)器讀寫功能,rt memorybase+offset ,memorybase +offset rt,相對(duì)轉(zhuǎn)移功能,若rt = rs 轉(zhuǎn)移到地址 PC+offset *4 ;否則順序執(zhí)行,若rt rs 轉(zhuǎn)移到地址 PC+offset*4 ;否則順序執(zhí)行。 第3種指令稱為J型指令型指令,完成無條件跳轉(zhuǎn)的操作功能。第47頁/共75頁48 MIPS指令格式 rs,rt,rd: rs,rt,rd:源和目的寄存器 shamt:shamt:移位次數(shù)(立即數(shù))funct:funct:運(yùn)算類型 所有的指令都是3232位長度。有 3 3種指令格式,即寄存器型、立即數(shù)型和轉(zhuǎn)移型。 操作數(shù)尋址方式有寄存

41、器尋址、變址尋址、立即數(shù)尋址3 3 種,指令地址支持相對(duì)尋址、偽直接地址 2 2種方式。 特點(diǎn):指令規(guī)整,尋址方式簡(jiǎn)單。方便流水實(shí)現(xiàn)。 op rs rt rd shamt funct 寄存器型寄存器型立即數(shù)型立即數(shù)型轉(zhuǎn)移型轉(zhuǎn)移型 op rs rt address / immediate op target例如:例如: add $1, $2, $3 R3R1+R2例如:例如:lw $1, $2, 100 R2MR1+100 addi $1, $2, 100 R2R1+100例如:例如: j 8000 轉(zhuǎn)移到轉(zhuǎn)移到 PC31.28 800046 5 5 5 5 6第48頁/共75頁49 MIPS指

42、令集具有以下特點(diǎn): (1) 指令系統(tǒng)設(shè)計(jì)時(shí)選擇一些使用頻率較高的簡(jiǎn)單指令,且選擇一些很有用但不復(fù)雜的指令。 (2) 指令長度固定,指令格式種類少,尋址方式種類少。 (3) 只有取數(shù)/存數(shù)指令訪問存儲(chǔ)器,其余指令的操作都在寄存器之間進(jìn)行。設(shè)計(jì)特點(diǎn)(RISC的特點(diǎn))第49頁/共75頁50 (4) 采用流水線技術(shù)。超級(jí)標(biāo)量及超級(jí)流水線技術(shù),增加了指令執(zhí)行的并行度,使得一條指令的平均指令執(zhí)行時(shí)間小于一個(gè)機(jī)器周期。 (5) CPU中通用寄存器數(shù)量相當(dāng)多,可以減少訪存次數(shù)。 (6) 以硬布線控制邏輯為主,不用或少用微碼控制。 (7) 采用優(yōu)化的編譯程序,力求有效地支持高級(jí)語言程序。 設(shè)計(jì)特點(diǎn)(RISC的特

43、點(diǎn))第50頁/共75頁51典型指令系統(tǒng)-intel Pentium CISC代表 指令表示:主要由兩部分組成:指令前綴,指令本身。指令前綴為可選。具體含義件P129第51頁/共75頁52特點(diǎn)主要在以下方面來對(duì)增強(qiáng)指令的功能1.面向目標(biāo)程序增強(qiáng)指令功能具體方法有:提高運(yùn)算類指令的功能提高傳送類指令的功能增強(qiáng)程序控制指令功能2.面向編譯程序目標(biāo)代碼生成優(yōu)化的改進(jìn)3.提供面向操作系統(tǒng)優(yōu)化的指令 主要特點(diǎn)1.指令系統(tǒng)復(fù)雜。具體表現(xiàn)為指令條數(shù)多、尋址方式多、指令格式多。指令串行執(zhí)行,大多數(shù)指令需要多個(gè)時(shí)鐘周期完成。2.采用微程序控制,因?yàn)槲⒊绦蚩刂破鬟m合于實(shí)現(xiàn)CISC指令執(zhí)行過程的控制。3.有較多的專用

44、寄存器,大部分運(yùn)算所需的數(shù)據(jù)均需訪問存儲(chǔ)器獲取。4.編譯程序難以用優(yōu)化措施生成高效的目標(biāo)代碼程序。第52頁/共75頁53習(xí)題-鞏固概念 1 指令系統(tǒng)中采用不同尋址方式的目的是() A.實(shí)現(xiàn)存儲(chǔ)程序和程序控制 B.縮短指令長度,擴(kuò)大尋址空間,提高編程靈活性 C.可以直接訪問外存 D.提供擴(kuò)展操作碼的可能并降低譯碼難度第53頁/共75頁54 2 為了縮短指令中某個(gè)地址段的位數(shù),有效的方法是采取() A. 立即尋址 B. 變址尋址 C. 間接尋址 D. 寄存器尋址第54頁/共75頁55 3 假定指令中地址碼給出的是操作數(shù)的有效地址,則該指令采用的尋址方式是() A. 立即 B. 直接 C. 基址 D

45、. 相對(duì)第55頁/共75頁56 4 設(shè)指令中的地址碼為A,變址寄存器為X,程序計(jì)數(shù)器為PC,則變址尋址方式的操作數(shù)地址為() A . (PC)+A B. (A)+(X) C. (A+X ) D. A+(X)第56頁/共75頁57 5 設(shè)指令中的地址碼為A,變址寄存器為X,基址寄存器為B,程序計(jì)數(shù)器為PC,則變址間接尋址方式的操作數(shù)地址為() A. (X)+(A) B. (X+B) C. (X)+A) D. (A)+(PC)第57頁/共75頁58 6 某機(jī)器字長為16位,主存按字節(jié)編址,轉(zhuǎn)移指令采用相對(duì)尋址,由兩個(gè)字節(jié)組成,第一字節(jié)為操作碼字段,第二字節(jié)為相對(duì)位移量字段,假設(shè)取指令時(shí),每取一個(gè)字

46、節(jié)PC 自動(dòng)加1,若某轉(zhuǎn)移指令所在主存地址為2000H,相對(duì)位移量字段的內(nèi)容為06H,則該轉(zhuǎn)移指令成功轉(zhuǎn)移后的目標(biāo)地址是() A 2006H B 2007H C 2008H D 2009H第58頁/共75頁59 7 采用相對(duì)尋址方式的轉(zhuǎn)移指令占兩個(gè)字節(jié),第一字節(jié)為操作碼字段,第二字節(jié)為相對(duì)位移量字段(補(bǔ)碼表示),假設(shè)取指令時(shí),每取一個(gè)字節(jié)PC 自動(dòng)加1,假設(shè)執(zhí)行到該轉(zhuǎn)移指令時(shí)PC的內(nèi)容為2003H,要求轉(zhuǎn)移到200AH,則該轉(zhuǎn)移指令第二字節(jié)的內(nèi)容應(yīng)該為() A 05H B 08H C F8H D F5H第59頁/共75頁60 8 假設(shè)某條指令的一個(gè)操作數(shù)采用一次間接尋址方式,指令中給出的地址碼

47、為1200H,地址為1200H的內(nèi)存單元中的內(nèi)容為12FCH,地址為12FC的內(nèi)存單元的內(nèi)容為38B8H,而38B8H單元的內(nèi)容為88F9H,則該操作數(shù)的有效地址為() A 1200H B 12FCH C 38B8H D 88F9H第60頁/共75頁61 9 假設(shè)某條指令的一個(gè)操作數(shù)采用兩次間接尋址方式,指令中給出的地址碼為1200H,地址為1200H的內(nèi)存單元中的內(nèi)容為12FCH,地址為12FC的內(nèi)存單元的內(nèi)容為38B8H,而38B8H單元的內(nèi)容為88F9H,則該操作數(shù)的有效地址為() A 1200H B 12FCH C 38B8H D 88F9H第61頁/共75頁62 10假設(shè)某條指令的一

48、個(gè)操作數(shù)采用寄存器間接尋址方式,指令中給出的寄存器編號(hào)為8,8號(hào)寄存器的內(nèi)容為1200H,地址為1200H的內(nèi)存單元中的內(nèi)容為12FCH,地址為12FC的內(nèi)存單元的內(nèi)容為38B8H,而38B8H單元的內(nèi)容為88F9H,則該操作數(shù)的有效地址為() A 1200H B 12FCH C 38B8H D 88F9H第62頁/共75頁63教學(xué)機(jī)的匯編語言程序設(shè)計(jì) 要設(shè)計(jì)匯編程序必須首先知道有哪些匯編語句可用(指令),每個(gè)語句實(shí)現(xiàn)的功能和具體使用方法,可能用到的數(shù)據(jù)或主存地址的書寫方式; 最常用的程序流程控制,包括順序執(zhí)行,必轉(zhuǎn)或者條件轉(zhuǎn)移執(zhí)行,循環(huán)執(zhí)行,子程序調(diào)用與返回執(zhí)行等,這些程序的流程結(jié)構(gòu)對(duì)任何程

49、序設(shè)計(jì)語言都是類似的。 程序設(shè)計(jì)的主導(dǎo)思想是如何用一種語言寫出解決問題的過程和具體算法,切不可變成試用各種語句的一個(gè)操作過程。第63頁/共75頁64TEC-2機(jī)的基本指令(實(shí)驗(yàn)手冊(cè)新)數(shù)據(jù)移動(dòng)指令 MOV DR,SR MOV DR,DATA MOV DR,DATASR MOV DR,SR MOV DR,ADR MOV DATASR,DR MOVDR,SR MOVADR,SR堆棧操作指令 PSHF PUSH DR POPF POP DR輸入輸出指令 IN、OUT算術(shù)邏輯運(yùn)算指令 NOT DR INC DR DEC DR ADD DR,SR AND DR,SR SUB DR,SR ADC DR,S

50、R OR DR,SR SBB DR,SR CMP DR,SR XOR DR,SR TEST DR,SR ASR DR SHL DR RCL DR SHR SR RCR DR MUL SR DIV SR控制、轉(zhuǎn)移指令 JR ADR JP SR JP ADR JR CND,ADR JP CND,SR JP CND,ADR IRET EI DI STC CLS CALL SR CALL ADR RET其它指令: NOP LDMC HALT第64頁/共75頁65典型的匯編程序執(zhí)行流程分支執(zhí)行分支執(zhí)行JR NZ,ADR指令指令指令指令 i指令指令 i 2指令指令 i 3指令指令 j指令指令 i指令指令

51、i 1指令指令 i 2循環(huán)執(zhí)行循環(huán)執(zhí)行JR NZ,ADR指令指令指令 i4指令指令 i指令指令 i 1指令指令 i 2順序執(zhí)行順序執(zhí)行(Z=1)(Z=1)第65頁/共75頁66典型的匯編程序執(zhí)行流程指令指令 j指令指令 j 1子程序調(diào)用子程序調(diào)用與返回執(zhí)行與返回執(zhí)行指令指令 i指令指令 i 2指令指令 i 3CALL指令指令RET指令指令 iJP/JR指令指令指令指令 i 2轉(zhuǎn)移執(zhí)行轉(zhuǎn)移執(zhí)行指令指令 i 3指令指令 j(i+1)第66頁/共75頁67教學(xué)計(jì)算機(jī)中的匯編程序的例子例1 1:設(shè)計(jì)一個(gè)程序,完成 1616進(jìn)制的 22+120 22+120 的計(jì)算。A800A800 ; ; 從內(nèi)存RAMRAM區(qū)的起始地址 1616進(jìn)制的800800 開始800: MOV R0, 0022 ;800: MOV R0, 0022 ;把被加數(shù)送入R0R0802: MOV R1, 0120 ;802: MOV R1, 0120 ;把加數(shù)送入R1R1804: ADD R0, R1 ;804: ADD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論