東北大學計算機組成原理課程設計Word版_第1頁
東北大學計算機組成原理課程設計Word版_第2頁
東北大學計算機組成原理課程設計Word版_第3頁
東北大學計算機組成原理課程設計Word版_第4頁
東北大學計算機組成原理課程設計Word版_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、傳播優(yōu)秀Word版文檔 ,希望對您有幫助,可雙擊去除!計算機組成原理課程設計報告班級: 班 姓名: 學號: 完成時間: 一、課程設計目的1在實驗機上設計實現(xiàn)機器指令及對應的微指令(微程序)并驗證,從而進一步掌握微程序設計控制器的基本方法并了解指令系統(tǒng)與硬件結構的對應關系;2通過控制器的微程序設計,綜合理解計算機組成原理課程的核心知識并進一步建立整機系統(tǒng)的概念;3培養(yǎng)綜合實踐及獨立分析、解決問題的能力。二、課程設計的任務針對COP2000實驗儀,從詳細了解該模型機的指令/微指令系統(tǒng)入手,以實現(xiàn)乘法和除法運算功能為應用目標,在COP2000的集成開發(fā)環(huán)境下,設計全新的指令系統(tǒng)并編寫對應的微程序;之

2、后編寫實現(xiàn)乘法和除法的程序進行設計的驗證。三、 課程設計使用的設備(環(huán)境)1硬件l COP2000實驗儀l PC機2軟件l COP2000仿真軟件四、課程設計的具體內容(步驟)1詳細了解并掌握COP 2000模型機的微程序控制器原理,通過綜合實驗來實現(xiàn)該模型機指令系統(tǒng)的特點: 總體概述:COP2000模型機包括了一個標準CPU所具備所有部件,這些部件包括:運算器ALU、累加器A、工作寄存器W、左移門L、直通門D、右移門R、寄存器組R0-R3、程序計數(shù)器PC、地址寄存器MAR、堆棧寄存器ST、中斷向量寄存器IA、輸入端口IN、輸出端口寄存器OUT、程序存儲器EM、指令寄存器IR、微程序計數(shù)器uP

3、C、微程序存儲器uM,以及中斷控制電路、跳轉控制電路。其中運算器和中斷控制電路以及跳轉控制電路用CPLD來實現(xiàn),其它電路都是用離散的數(shù)字電路組成。微程序控制部分也可以用組合邏輯控制來代替。模型機為8位機,數(shù)據(jù)總線、地址總線都為8位,模型機的指令碼為8位,根據(jù)指令類型的不同,可以有0到2個操作數(shù)。指令碼的最低兩位用來選擇R0-R3寄存器,在微程序控制方式中,用指令碼做為微地址來尋址微程序存儲器,找到執(zhí)行該指令的微程序。而在組合邏輯控制方式中,按時序用指令碼產生相應的控制位。在本模型機中,一條指令最多分四個狀態(tài)周期,一個狀態(tài)周期為一個時鐘脈沖,每個狀態(tài)周期產生不同的控制邏輯,實現(xiàn)模型機的各種功能。

4、模型機有24位控制位以控制寄存器的輸入、輸出,選擇運算器的運算功能,存儲器的讀寫。模型機的缺省的指令集分幾大類: 算術運算指令、邏輯運算指令、移位指令、數(shù)據(jù)傳輸指令、跳轉指令、中斷返回指令、輸入/輸出指令。 模型機的尋址方式表1 模型機的尋址方式模型機的尋址方式尋址方式說明指令舉例指令說明累加器尋址操作數(shù)為累加器ACPL A將累加器A的值取反隱含尋址累加器AOUT將累加器A的值輸出到輸出端口寄存器OUT寄存器尋址參與運算的數(shù)據(jù)在R0-R3的寄存器中ADD A,R0將寄存器R0的值加上累加器A的值,再存入累加器A中寄存器間接尋址參與運算的數(shù)據(jù)在存儲器EM中,數(shù)據(jù)的地址在寄存器R0-R3中MOV

5、A,R0將寄存器R0的值作為地址,把存儲器EM中該地址的內容送入累加器A中存儲器直接尋址參與運算的數(shù)據(jù)在存儲器EM中,數(shù)據(jù)的地址為指令的操作數(shù)。AND A,40H將存儲器EM中40H單元的數(shù)據(jù)與累加器A的值做邏輯與運算,結果存入累加器A立即數(shù)尋址參與運算的數(shù)據(jù)為指令的操作數(shù)。SUB A,#10H從累加器A中減去立即數(shù)10H,結果存入累加器ACOP2000模型機指令的最低兩位(IR0和IR1)用來尋址R0R3四個寄存器;IR2和IR3與ELP微控制信號,Cy和Z兩個程序狀態(tài)信號配合,控制PC的置數(shù)即程序的轉移。各種轉移的條件判斷邏輯如下所示:PC 置數(shù)邏輯 當ELP=1時,不允許PC被預置 當E

6、LP=0時 當IR3=1時,無論Cy和Z什么狀態(tài),PC被預置 當IR3=0時 若IR2=0,則當Cy=1時PC被預置 若IR2=1,則當Z=1時PC被預置本模型機時序控制采用不定長機器周期的同步控制方式,一條指令最多分四個節(jié)拍。系統(tǒng)提供的默認指令系統(tǒng)包括以下7類指令:算術運算指令:邏輯運算指令:數(shù)據(jù)傳輸指令:跳轉指令:ADD A, R? ADD A, R? ADD A, MM ADD A, #II ADDC A, R? ADDC A, R? ADDC A, MM ADDC A, #II SUB A, R?SUB A, R? SUB A, MM SUB A, #II SUBC A, R? SUB

7、C A, R? SUBC A, MM SUBC A, #IIAND A, R? AND A, R? AND A, MM AND A, #II OR A, R?OR A, R? OR A, MM OR A, #IICPL AMOV A, R? MOV A, R? MOV A, MM MOV A, #II MOV R?, A MOV R?, AMOV MM, A MOV R?, #IIJC MM JZ MM JMP MMCALL MM RET移位指令:中斷返回指令:輸入/輸出指令:RR A RL A RRC A RLC ARETIREAD MMWRITE MM INOUT該模型機微指令系統(tǒng)的特點(

8、包括其微指令格式的說明等): 總體概述微命令是用直接表示法表示的,其特點是操作控制字段中的每一位代表一個微命令。這種方法的優(yōu)點是簡單直觀,其輸出直接用于控制。缺點是微指令字較長,因而使控制存儲器容量較大。 微指令格式的說明模型機有24位控制位以控制寄存器的輸入、輸出,選擇運算器的運算功能,存儲器的讀寫。微程序控制器由微程序給出24位控制信號,而微程序的地址又是由指令碼提供的,也就是說24位控制信號是由指令碼確定的。該模型機的微指令的長度為24位,其中微指令中只含有微命令字段,沒有微地址字段。其中微命令字段采用直接按位的表示法,哪位為0,表示選中該微操作,而微程序的地址則由指令碼指定。這24位操

9、作控制信號的功能如表2所示:(按控制信號從左到右的順序依次說明)表2 微指令控制信號的功能操作控制信號控 制 信 號 的 說 明XRD外部設備讀信號,當給出了外設的地址后,輸出此信號,從指定外設讀數(shù)據(jù)。EMWR程序存儲器EM寫信號。EMRD程序存儲器EM讀信號。PCOE將程序計數(shù)器PC的值送到地址總線ABUS上。EMEN將程序存儲器EM與數(shù)據(jù)總線DBUS接通,由EMWR和EMRD決定是將DBUS數(shù)據(jù)寫到EM中,還是從EM讀出數(shù)據(jù)送到DBUS。IREN將程序存儲器EM讀出的數(shù)據(jù)打入指令寄存器IR和微指令計數(shù)器PC。EINT中斷返回時清除中斷響應和中斷請求標志,便于下次中斷。ELPPC打入允許,與

10、指令寄存器的IR3、IR2位結合,控制程序跳轉。MAREN將數(shù)據(jù)總線DBUS上數(shù)據(jù)打入地址寄存器MAR。MAROE將地址寄存器MAR的值送到地址總線ABUS上。OUTEN將數(shù)據(jù)總線DBUS上數(shù)據(jù)送到輸出端口寄存器OUT里。STEN將數(shù)據(jù)總線DBUS上數(shù)據(jù)存入堆棧寄存器ST中。RRD讀寄存器組R0R3,寄存器R?的選擇由指令的最低兩位決定。RWR寫寄存器組R0R3,寄存器R?的選擇由指令的最低兩位決定。CN決定運算器是否帶進位移位,CN=1帶進位,CN=0不帶進位。FEN將標志位存入ALU內部的標志寄存器。X2X2、X1、X0三位組合來譯碼選擇將數(shù)據(jù)送到DBUS上的寄存器。X1X0WEN將數(shù)據(jù)總

11、線DBUS的值打入工作寄存器W中。AEN將數(shù)據(jù)總線DBUS的值打入累加器A中。S2S2、S1、S0三位組合決定ALU做何種運算。S1S0COP2000中有7個寄存器可以向數(shù)據(jù)總線輸出數(shù)據(jù), 但在某一特定時刻只能有一個寄存器輸出數(shù)據(jù). 由X2,X1,X0決定那一個寄存器輸出數(shù)據(jù)。X2 X1 X0輸出寄存器0 0 0IN_OE 外部輸入門0 0 1IA_OE 中斷向量0 1 0ST_OE 堆棧寄存器0 1 1PC_OE PC寄存器1 0 0D_OE 直通門1 0 1R_OE 右移門1 1 0L_OE 左移門1 1 1沒有輸出COP2000中的運算器由一片EPLD實現(xiàn). 有8種運算, 通過S2,S1

12、,S0來選擇。運算數(shù)據(jù)由寄存器A及寄存器W給出, 運算結果輸出到直通門D。S2 S1 S0功能0 0 0A+W 加0 0 1A-W 減0 1 0A|W 或0 1 1A&W 與1 0 0A+W+C 帶進位加1 0 1A-W-C 帶進位減1 1 0A A取反1 1 1A 輸出A2. 計算機中實現(xiàn)乘法和除法的原理(1)無符號乘法算法流程圖: 圖1 無符號乘法流程圖 硬件原理框圖:圖2 硬件原理框圖(2)無符號除法算法流程圖:硬件原理框圖:3對應于以上算法如何分配使用COP2000實驗儀中的硬件(初步分配,設計完成后再將準確的使用情況填寫在此處)(1) 無符號乘法表3 無符號乘法的硬件分配情況硬件名稱

13、實現(xiàn)算法功能描述寄存器R0計算時用來存放部分積和最后的積寄存器R11.初始化時,用來存放被乘數(shù);2.在程序執(zhí)行的過程中,用來存放向左移位后的被乘數(shù)。寄存器R21.初始化時,用來存放乘數(shù);2.在程序執(zhí)行的過程中,用來存放向右移位后的乘數(shù)。累加器A執(zhí)行ADD A,R?(加法)、SHL R?(左移一位)、SHR R?(右移一位)等命令時所必須使用的寄存器。寄存器W執(zhí)行ADD A,R?(加法)、TEST R?,#II(測試R2的末位)等雙操作數(shù)命令時所必須使用的寄存器。左移門L用來實現(xiàn)相應數(shù)據(jù)左移一位的運算,并能夠控制該運算后的結果是否輸出到數(shù)據(jù)總線。直通門D用來控制ALU的執(zhí)行結果是否輸出到數(shù)據(jù)總線

14、。右移門R用來實現(xiàn)相應數(shù)據(jù)右移一位的運算,并能夠控制該運算后的結果是否輸出到數(shù)據(jù)總線。程序計數(shù)器PC1.控制程序按順序正常執(zhí)行;2.當執(zhí)行轉移指令時,從數(shù)據(jù)線接收要跳轉的地址,使程序能夠按需要自動執(zhí)行。3.當要從EM中讀取數(shù)據(jù)時,由PC提供地址。存儲器EM存儲指令和數(shù)據(jù)。微程序計數(shù)器PC向微程序存儲器M提供相應微指令的地址。微程序存儲器M存儲相應指令的微指令。(2) 無符號除法表4 無符號除法的硬件分配情況寄存器R0用來存放被除數(shù);寄存器R11.初始化時,用來存放除數(shù);2.在程序執(zhí)行的過程中,用來存放向移位后的除數(shù)。寄存器R2用來存放商累加器A執(zhí)行ADD A,R?(加法)、SHL R?(左移一

15、位)、SHR R?(右移一位)等命令時所必須使用的寄存器。寄存器W執(zhí)行ADD A,R?(加法)、TEST R?,#II等雙操作數(shù)命令時所必須使用的寄存器。左移門L用來實現(xiàn)相應數(shù)據(jù)左移一位的運算,并能夠控制該運算后的結果是否輸出到數(shù)據(jù)總線。直通門D用來控制ALU的執(zhí)行結果是否輸出到數(shù)據(jù)總線。右移門R用來實現(xiàn)相應數(shù)據(jù)右移一位的運算,并能夠控制該運算后的結果是否輸出到數(shù)據(jù)總線。程序計數(shù)器PC 控制程序按順序正常執(zhí)行; 當執(zhí)行轉移指令時,從數(shù)據(jù)線接收要跳轉的地址,使程序能夠按需要自動執(zhí)行。 當要從EM中讀取數(shù)據(jù)時,由PC提供地址。存儲器EM存儲指令和數(shù)據(jù)。微程序計數(shù)器PC向微程序存儲器M提供相應微指令

16、的地址。微程序存儲器M存儲相應指令的微指令。4在COP2000集成開發(fā)環(huán)境下設計全新的指令/微指令系統(tǒng)設計結果如表所示(可按需要增刪表項)(1) 新的指令集(如果針對乘除法設計了兩個不同指令集要分別列表)助記符機器碼1機器碼2指令說明_FATCH_ 000000xx00-03實驗機占用,不可修改。復位后,所有寄存器清0,首先執(zhí)行 _FATCH_ 指令取指。JZ000001xx04-07MM若零標志位置1,跳轉到MM地址。JMP000011xx0C-0FMM跳轉到MM地址。MOV R?,#II000100xx10-13II將立即數(shù)II存放到寄存器R?中。MOV A,R?000101xx14-17

17、將寄存器R?中的數(shù)加入累加器A中ADD R?,A000110xx18-1B將累加器A中的數(shù)加入到寄存器R?中,并影響標志位。SHL R?000111xx1C-1F寄存器R?中的數(shù)不帶進位向左移一位,并不影響標志位。SHR001000xx寄存器R?中的數(shù)不帶進位向右移一位,并不影響標志位。20-23OVER001001xx24-27程序結束。TEST R?,#II001010xx28-2BII寄存器R? “與” 立即數(shù)II,只改變標志位,并不改變R?中的數(shù)值。ADD R?,#II001011xx2C-2FII將立即數(shù)II加入到寄存器R?中,并影響標志位。SUB R?,A001100xx30-33

18、從寄存器R?中減去累加器A中的數(shù),并影響標志位。SUB R?,#II001101xx34-37II從寄存器R?中減去立即數(shù)II,并影響標志位。(2) 新的微指令集助記符狀態(tài)微地址微程序數(shù)據(jù)輸出數(shù)據(jù)打入地址輸出運算器移位控制mPCPC_FATCH_T000CBFFFF指令寄存器IRPC輸出A輸出寫入+101FFFFFFA輸出+102FFFFFFA輸出+103FFFFFFA輸出+1JZ MMT104C6FFFF存儲器值EM寄存器PCPC輸出A輸出+1寫入T005CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+106FFFFFF浮空浮空A輸出+107FFFFFF浮空浮空A輸出+1JMP MMT10

19、CC6FFFF存儲器值EM寄存器PCPC輸出A輸出+1寫入T00DCBFFFF浮空指令寄存器IRPC輸出A輸出寫入+10EFFFFFF浮空浮空A輸出+10FFFFFFF浮空浮空A輸出+1MOV R?,#IIT110C7FBFF存儲器值EM寄存器R? PC輸出A輸出+1+1 T011CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+112FFFFFF浮空浮空A輸出+113FFFFFF浮空浮空A輸出+1MOV A,R?T114FFF7F7寄存器值R?寄存器A浮空A輸出+1T015CBFFFF浮空指令寄存器IRPC輸出A輸出+116FFFFFF浮空浮空A輸出+117FFFFFF浮空浮空A輸出+1AD

20、D R?,AT318FFF7EF寄存器值R?寄存器W浮空A輸出+1T219FFFE90ALU直通寄存器A標志位C、Z浮空加運算+1T11AFFFB9FALU直通寄存器R?浮空A輸出+1T01BCBFFFF浮空指令寄存器IRPC輸出A輸出+1SHL R?T21CFFF7F7寄存器值R?寄存器A浮空A輸出+1T11DFFF8DFALU左移寄存器R?標志位C、Z浮空A輸出左移+1T01ECBFFFF浮空指令寄存器IRPC輸出A輸出寫入+11FFFFFFF浮空浮空A輸出+1SHR R?T220FFF7F7寄存器值R?寄存器A 浮空A輸出+1T121FFF8BFALU右移寄存器R?標志位C、Z浮空A輸出

21、右移+1T0 22CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+123FFFFFF浮空浮空A輸出+1OVERT024CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+125FFFFFF浮空浮空A輸出+126FFFFFF浮空浮空A輸出+127FFFFFF浮空浮空A輸出+1TEST R?,#IIT328C7FFEF存儲器值EM寄存器WPC輸出A輸出+1+1T229FFF7F7寄存器值R?寄存器A浮空A輸出+1+1T12AFFFE93ALU 直通寄存器A 標志位C、Z浮空與運算+1T02BCBFFFF浮空指令寄存器IRPC輸出A輸出寫入+1ADD R?,#IIT32CFFF7F7寄存器值R?寄存

22、器A浮空A輸出+1T22DC7FFEF存儲器值EM寄存器WPC輸出A輸出+1+1T12EFFFA98ALU直通寄存器R?標志位C、Z浮空加運算+1T02FCBFFFF浮空指令寄存器IRPC輸出A輸出寫入+1SUB R?,AT330FFFF8FALU直通寄存器W浮空A輸出+1T231FFF7F7寄存器值R?寄存器A浮空A輸出+1T132FFFA99ALU直通寄存器R?標志位C、Z浮空減運算+1T033CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+1SUB R?,#IIT334FFF7F7寄存器值R?寄存器A浮空A輸出+1T235C7FFEF存儲器值EM寄存器WPC輸出A輸出+1+1T136F

23、FFA99ALU直通寄存器R?標志位C、Z浮空減運算+1T037CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+15用設計完成的新指令集編寫實現(xiàn)無符號二進制乘法、除法功能的匯編語言程序(1)乘法4位乘法的算法流程圖與匯編語言程序清單:流程圖:程序清單:MOV R0,#00HMOV R1,#03hMOV R2,#05HLOOP:TEST R2,#0FHJZ LASTTEST R2,#01HJZ NEXTMOV A,R1ADD R0,ANEXT:SHL R1SHR R2JMP LOOPLAST:OVER(2)除法 4位除法的算法流程圖與匯編語言程序清單:流程圖:程序清單:MOV R0,#28H

24、;被除數(shù)MOV R1,#05h ;除數(shù)MOV R2,#00H ;商MOV R3,#00HMOVE:ADD R3,#01HSHL R1TEST R1,#80HJZ MOVEADD R3,#01HSTART:TEST R3,#0FHJZ LASTMOV A,R1SUB R0,ATEST R0,#80HJZ NEXTADD R2,#00HSUB R3,#01HJZ LASTSHL R2MOV A,R1ADD R0,ASHR R1JMP STARTNEXT:ADD R2,#01HSUB R3,#01HJZ LASTSHL R2SHR R1JMP STARTLAST:OVER6上述程序的運行情況(跟蹤結

25、果)按下表填寫描述以上各程序運行情況的內容。按每個程序一張表進行。程序運行的過程乘法運行情況匯 編 指 令程序地址機器碼指令說明微程序PC mPC運行時寄存器或存儲器的值_FATCH_0000實驗機占用,不可修改。復位后,所有寄存器清0,首先執(zhí)行 _FATCH_ 指令取指。CBFFFF+1寫入EM:10MOV R0,#0000011000將立即數(shù)00H存放到寄存器R0中。C7FBFFCBFFFF01021011EM 10 EM 00 R0 00MOV R1,#0302031103將立即數(shù)03H存放到寄存器R1中。C7FBFFCBFFFF03041011EM 11EM 03 R1 03MOV R

26、2,#0504051205將立即數(shù)05H存放到寄存器R2中。C7FBFFCBFFFF05061011EM 12EM 05 R3 05TEST R2,#0FH060606072A0F寄存器R2 與 立即數(shù)0FH,只改變標志位,并不改變R2中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF0708080828292A2BEM 2AEM 0F W 0FA 05D 05 A 05JZ 1408090414若零標志位置1,跳轉到14H地址。C6FFFFCBFFFF090A0405EM 04EM 14TEST R2,#010A0B0B0B2A01寄存器R2與立即數(shù)01H,只改變標志位,并不改變R2

27、中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF0B0C0C0C28292A2BEM 2A EM 01 W 01A 05A 01 D 01JZ 100C0D0410若零標志位置1,跳轉到10H地址。C6FFFFCBFFFF0D0E0405EM 04EM 10MOV A,R10E0E15將寄存器R1中的數(shù)放入累加器A中。FFF7F7CBFFFF0F0F1415EM 15A 03ADD R0,A0F0F0F0F18將累加器A中的數(shù)加入到寄存器R0中,并影響標志位。FFF7EFFFFE90FFFB9FCBFFFF1010101018191A1BEM 18W 00A 03R0 03SHL R

28、1101010101D寄存器R1中的數(shù)不帶進位向左移一位,并不影響標志位。FFF7F7FFFCD7FFFB9FCBFFFF111111111C1D1E1FEM 1DA 06R1 06SHR R21111111122寄存器R2中的數(shù)不帶進位向右移一位,并不影響標志位。FFF7F7FFFCB7FFFB9FCBFFFF1212121220212223EM 22A 02R2 02JMP 06120C06跳轉到06H地址。C6FFFFCBFFFF13060C0DEM 0CEM 06TEST R2,#0FH060606072A0F寄存器R2與立即數(shù)0FH,只改變標志位,并不改變R2中的數(shù)值。C7FFEFF

29、FF7F7FFFE93CBFFFF0708080828292A2BEM 2AEM 0F W 0FA 02D 02 A 02JZ 1408090414若零標志位置1,跳轉到14H地址。C6FFFFCBFFFF090A0405EM 04EM 14TEST R2,#010A0B0B0B2A01寄存器R2與立即數(shù)01H,只改變標志位,并不改變R2中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF0B0C0C0C28292A2BEM 2AEM 01 W 01A 02 A 00 D 00JZ 100C0D0410若零標志位置1,跳轉到10H地址。C6FFFFCBFFFF0D0E0405EM 04E

30、M 10SHL R1101010101D寄存器R1中的數(shù)不帶進位向左移一位,并不影響標志位。FFF7F7FFFCD7FFFB9FCBFFFF111111111C1D1E1FEM 1DA 0CR1 0CSHR R21111111122寄存器R2中的數(shù)不帶進位向右移一位,并不影響標志位。FFF7F7FFFCB7FFFB9FCBFFFF1212121220212223EM 22A 01R2 01JMP 06120C06跳轉到06H地址。C6FFFFCBFFFF13060C0DEM 0CEM 06TEST R2,#0FH060606072A0F寄存器R2 與 立即數(shù)0FH,只改變標志位,并不改變R2中

31、的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF0708080828292A2BEM 2AEM 0F W 0FA 01D 01 A 01JZ 1408090414若零標志位置1,跳轉到14H地址。C6FFFFCBFFFF090A0405EM 04EM 14TEST R2,#010A0B0B0B2A01寄存器R2 與 立即數(shù)01H,只改變標志位,并不改變R2中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF0B0C0C0C28292A2BEM 2AEM 01 W 01A 01 A 01 D 01JZ 100C0D0410若零標志位置1,跳轉到10H地址。C6FFFFCBFFFF0

32、D0E0405EM 04EM 10MOV A,R10E0E15將寄存器R1中的數(shù)放入累加器A中。FFF7F7CBFFFF0F0F1415EM 15A 0CADD R0,A0F0F0F0F18將累加器A中的數(shù)加入到寄存器R0中,并影響標志位。FFF7EFFFFE90FFFB9FCBFFFF1010101018191A1BEM 18W 03A 0FR0 0FSHL R1101010101D寄存器R1中的數(shù)不帶進位向左移一位,并不影響標志位。FFF7F7FFFCD7FFFB9FCBFFFF111111111C1D1E1FEM 1DA 18R1 18SHR R21111111122寄存器R2中的數(shù)不帶

33、進位向右移一位,并不影響標志位。FFF7F7FFFCB7FFFB9FCBFFFF1212121220212223EM 22A 00R2 00JMP 06120C06跳轉到06H地址。C6FFFFCBFFFF13060C0DEM 0CEM 06TEST R2,#0FH060606072A0F寄存器R2 與 立即數(shù)0FH,只改變標志位,并不改變R2中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF0708080828292A2BEM 2AEM 0F W 0FA 00D 00 A 00JZ 1408090414若零標志位置1,跳轉到14H地址。C6FFFFCBFFFF09140405EM 0

34、4EM 14OVER1424CBFFFF1524EM 24除法運行情況匯 編 指 令程序地址機器碼指令說明微程序PC mPC運行時寄存器或存儲器的值_FATCH_0000實驗機占用,不可修改。復位后,所有寄存器清0,首先執(zhí)行 _FATCH_ 指令取指。CBFFFF+1寫入EM:10MOV R0,#28H00011028把立即數(shù)28H放入寄存器R0中C7FBFFCBFFFF01021011EM 28 EM 11 R0 28MOV R1,#05H02031105把立即數(shù)05H放入寄存器R1中C7FBFFCBFFFF03041011EM 05EM 12 R1 05MOV R2,#00H0405120

35、0把立即數(shù)00H放入寄存器R2中C7FBFFCBFFFF05061011EM 00EM 13 R2 00MOV R3,#00H06071300把立即數(shù)00H放入寄存器R3中C7FBFFCBFFFF07081011EM 00EM 2F R3 00ADD R3,#01080809092F01把立即數(shù)01加入寄存器R3中FFF7F7C7FFEFFFFA98CBFFFF09090A0A2C2D2E2FEM 2FA 00W 01R3 01SHL R10A0A0A1D寄存器R1的值左移一位FFF7F7FFF8DFCBFFFF0B0B0B1C1D1EEM 1DA 05R1 0ATEST R1,#800B0C

36、0C0C2980判斷R1 的第八位是否為1C7FFEFFFF7F7FFFE93CBFFFF0C0D0D0D28292A2BEM 29EM 80 W 80A 0AA 00JZ 080D0408若ZF為1,則跳轉到08地址處C6FFFFCBFFF0E080405EM 04EM 08ADD R3,#01080809092F01把立即數(shù)01加入寄存器R3中FFF7F7C7FFEFFFFA98CBFFFF09090A0A2C2D2E2FEM 2FA 01W 01R3 02SHL R10A0A0A1D寄存器R1的值左移一位FFF7F7FFF8DFCBFFFF0B0B0B1C1D1EEM 1DA 0AR 1

37、4TEST R1,#800B0C0C0C2980判斷R1 的第八位是否為1C7FFEFFFF7F7FFFE93CBFFFF0C0D0D0D28292A2BEM 29EM 80 W 80A 14A 00JZ 080D0408若ZF為1,則跳轉到08地址處C6FFFFCBFFF0E080405EM 04EM 08ADD R3,#01080809092F01把立即數(shù)01加入寄存器R3中FFF7F7C7FFEFFFFA98CBFFFF09090A0A2C2D2E2FEM 2FA 02W 01R3 03SHL R10A0A0A1D寄存器R1的值左移一位FFF7F7FFF8DFCBFFFF0B0B0B1C

38、1D1EEM 1DA 14R1 28TEST R1,#800B0C0C0C2980判斷R1 的第八位是否為1C7FFEFFFF7F7FFFE93CBFFFF0C0D0D0D28292A2BEM 29EM 80 W 80A 28A 00JZ 080D0408若ZF為1,則跳轉到08地址處C6FFFFCBFFF0E080405EM 04EM 08ADD R3,#01080809092F01把立即數(shù)01加入寄存器R3中FFF7F7C7FFEFFFFA98CBFFFF09090A0A2C2D2E2FEM 2FA 03W 01R3 04SHL R10A0A0A1D寄存器R1的值左移一位FFF7F7FFF

39、8DFCBFFFF0B0B0B1C1D1EEM 1DA 28R1 50TEST R1,#800B0C0C0C2980判斷R1 的第八位是否為1C7FFEFFFF7F7FFFE93CBFFFF0C0D0D0D28292A2BEM 29EM 80 W 80A 50A 00JZ 080D0408若ZF為1,則跳轉到08地址處C6FFFFCBFFF0E080405EM 04EM 08ADD R3,#01080809092F01把立即數(shù)01加入寄存器R3中FFF7F7C7FFEFFFFA98CBFFFF09090A0A2C2D2E2FEM 2FA 04W 01R3 05SHL R10A0A0A1D寄存器

40、R1的值左移一位FFF7F7FFF8DFCBFFFF0B0B0B1C1D1EEM 1DA 50R1 A0TEST R1,#800B0C0C0C2980判斷R1 的第八位是否為1C7FFEFFFF7F7FFFE93CBFFFF0C0D0D0D28292A2BEM 29EM 80 W 80A A0A 80JZ 080D0408若ZF為1,則跳轉到08地址處C6FFFFCBFFF0E080405EM 04EM 08ADD R3,#01080809092F01把立即數(shù)01加入寄存器R3中FFF7F7C7FFEFFFFA98CBFFFF09090A0A2C2D2E2FEM 2FA 05W 01R3 06

41、TEST R3,#0F111212122F01判斷R3 的第八位是否為1C7FFEFFFF7F7FFFE93CBFFFF1213131328292A2BEM 2BW 0FA 06JZ 3113140431若ZF為1,則跳轉到31地址處C6FFFFCBFFF14150405EM 04EM 31MOV A,R1151515把寄存器R1的值放入累加器A中FFF7F7CBFFFF16161415EM 15A A0SUB R0,A1616161630R0減去A的值,結果存入R0中FFFF8FFFF7F7FFFA99CBFFFF1717171730313233EM 30W A0A 28R0 88TEST

42、R0,#80H171818182880判斷R0 的第八位是否為1C7FFEFFFF7F7FFFE93CBFFFF1819191928292A2BEM 28W 80A 88A 80JZ 27191A0427若ZF為1,則跳轉到27地址處C6FFFFCBFFF1A1B0405EM 04EM 27ADD R2,#00H1B1B1C1C2E00把立即數(shù)00加入寄存器R2中FFF7F7C7FFEFFFFA98CBFFFF1C1C1D1D2C2D2E2FEM 2EA 00W 00R2 00SUB R3,#011D1D1E1E3701R3的值減去立即數(shù)01FFF7F7C7FFEFFFFA99CBFFFF343536371E1E1F1FEM 37A 06W 01R3 05JZ 311F200431若ZF為1,則跳轉到31地址處C6FFFFCBFFF20210405EM 04EM 31SHL R22121211E寄存器R2的值左移一位FFF7F7FFF8DFCBFFFF2222221C1D1EEM 1EA 00R2 00MOV A,R1222215把寄存器R1的值放入累加器A中FFF7F7CBFFFF23231415EM 15A A0ADD R0,A23232318把累加器A的值加入寄存器R0中FFF7EFFFFA98CBFFFF24242418191

溫馨提示

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

評論

0/150

提交評論