版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、計算機組成原理課程設(shè)計報告班級:07計算機 06 班 姓名: 學(xué)號: 完成時間:一、課程設(shè)計目的1 .在實驗機上設(shè)計實現(xiàn)機器指令及對應(yīng)的微指令(微程序)并驗證,從而進一步掌握微程 序設(shè)計控制器的基本方法并了解指令系統(tǒng)與硬件結(jié)構(gòu)的對應(yīng)關(guān)系;2 .通過控制器的微程序設(shè)計,綜合理解計算機組成原理課程的核心知識并進一步建立整機 系統(tǒng)的概念;3 .培養(yǎng)綜合實踐及獨立分析、解決問題的能力。二、課程設(shè)計的任務(wù)針對COP2000實驗儀,從詳細了解該模型機的指令 /微指令系統(tǒng)入手,以實現(xiàn)乘法和除 法運算功能為應(yīng)用目標,在 COP2000的集成開發(fā)環(huán)境下,設(shè)計全新的指令系統(tǒng)并編寫對應(yīng) 的微程序;之后編寫實現(xiàn)乘法和
2、除法的程序進行設(shè)計的驗證。三、課程設(shè)計使用的設(shè)備(環(huán)境)1.硬件COP2000實驗儀 PC機 2.軟件COP2000仿真軟件四、課程設(shè)計的具體內(nèi)容(步驟)1.詳細了解并掌握 COP 2000模型機的微程序控制器原理,通過綜合實驗來實現(xiàn) (1)該模型機指令系統(tǒng)的特點:總體概述COP200瞰型機包括了一個標準 CPU所具備所有部件,這些部件包括:運算器ALU累加器A工作寄存器 W左移門L、直通門D右移門R寄存器組 R0-R3、程序方十數(shù)器 PG 地址寄存器 MAR堆棧寄存器ST、中斷向量寄存器IA、輸入端口 IN、輸出端口寄存器 OUT 程序存儲器EM指令寄存器IR、微程序計數(shù)器uPC微程序存儲器
3、uM,以及中斷控制電路、 跳轉(zhuǎn)控制電路。其中運算器和中斷控制電路以及跳轉(zhuǎn)控制電路用CPL實現(xiàn),其它電路都是用離散的數(shù)字電路組成。微程序控制部分也可以用組合邏輯控制來代替。模型機為8位機,數(shù)據(jù)總線、地址總線都為8位,但其工彳原理與 16位機相同。相比而言8位機實驗減少了煩瑣的連線,但其原理卻更容易被學(xué)生理解、吸收。模型機的指令碼為 8位,根據(jù)指令類型的不同,可以有 。到2個操作數(shù)。指令碼的最低兩位用來選擇 R0-R3寄存器,在微程序控制方式中,用指令碼做為微地址來尋址微程序存儲器,找到執(zhí)行該指令的微程序。而在組合邏輯控制方式中,按時序用指令碼產(chǎn)生相應(yīng)的控制位。在本模型機中,一條指令最多分四個狀態(tài)
4、周期,一個狀態(tài)周期為一個時鐘脈沖,每個狀態(tài)周期產(chǎn)生不同的控制邏輯,實現(xiàn)模型機的各種功能。模型機有24位控制位以控制寄存器的輸入、輸出,選擇運算器的運算功能,存儲器的讀寫。模型機的缺省的指令集分幾大類:算術(shù)運算指令、邏輯運算指令、移位指令、數(shù)據(jù)傳輸指令、跳轉(zhuǎn)指令、中斷返回指令、輸入/輸出指令。模型機的尋址方式表1模型機的尋址方式模型機的尋址方式尋址方式說明指令舉例指令說明操作數(shù)為累加器ACPL A將累加器A的值取反累加器尋址隱含尋址累加器AOUT將累加器A的值輸出到輸出端口寄存器 OUT寄存器尋址參與運算的數(shù)據(jù)在R0R3的寄存器中ADD A,R0將寄存器R0的值加上累 加器A的值,再存入累加 器
5、A中寄存器間接尋址參與運算的數(shù)據(jù)在存儲 器EM中,數(shù)據(jù)的地址在 寄存器R0-R3中MOV A,R1將寄存器R1的值作為地 址,把存儲器 EM中該地 址的內(nèi)容送入累加器A中存儲器直接尋址參與運算的數(shù)據(jù)在存儲 器EM中,數(shù)據(jù)的地址為 指令的操作數(shù)。AND A,40H將存儲器EM中40H單兀 的數(shù)據(jù)與累加器 A的值 作邏輯與運算,結(jié)果存入 累加器A立即數(shù)尋址參與運算的數(shù)據(jù)為指令 的操作數(shù)。SUB A,#10H從累加器 A中減去立即 數(shù)10H,結(jié)果存入累加器A(2)該模型機微指令系統(tǒng)的特點(包括其微指令格式的說明等)總體概述該模型機的微命令是以直接表示法進行編碼的,其特點是操作控制字段中的每一位代 表
6、一個微命令。這種方法的優(yōu)點是簡單直觀,其輸出直接用于控制。缺點是微指令字較長, 因而使控制存儲器容量較大。 微指令格式的說明模型機有24位控制位以控制寄存器的輸入、輸出,選擇運算器的運算功能,存儲器的讀寫。微程序控制器由微程序給出24位控制信號,而微程序的地址又是由指令碼提供的,也就是說24位控制信號是由指令碼確定的。該模型機的微指令的長度為24位,其中微指令中只含有微命令字段,沒有微地址字段。其中微命令字段采用直接按位的表示法,哪位為0,表示選中該微操作,而微程序的地址則由指令碼指定。這24位操作控制信號的功能如表2所示:(按控制信號從左到右的順序依次說明)表2微指令控制信號的功能操作控制信
7、號控制信號的說明XRD外部設(shè)備讀信號,當給出了外設(shè)的地址后,輸出此信號,從指定外設(shè)讀數(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ù)器 FC。EINT中斷返回時清除中斷響應(yīng)和中斷請求標志,便,卜次中斷。ELPPC打入允許,與指令寄存器的IR3、IR2位結(jié)合,控制程序跳轉(zhuǎn)。MAREN將數(shù)據(jù)總線DBUS上數(shù)據(jù)打入地址寄存器
8、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內(nèi)部的標志寄存器。X2X2、X1、X0三位組合來譯碼選擇將數(shù)據(jù)送到DBUS上的寄存器。X1X0WEN將數(shù)據(jù)總線DBUS的值打入工作寄存器 W中。AEN將數(shù)據(jù)總線DBUS的值打入累加器 A中。S2S2
9、、S1、S0三位組合決定 ALU做何種運算。S1S0COP200外有7個寄存器可以向數(shù)據(jù)總線輸出數(shù)據(jù),但在某一特定時刻只能有一個寄存器輸出數(shù)據(jù).由X2,X1,X0決定那一個寄存器輸出數(shù)據(jù)。X2 X1 X0輸出寄存器000IN_OE外部輸入門001IA_OE中斷向量010ST_OE堆棧寄存器011PC_OEPC寄存器100D_OE直通門101R_OE右移門110L_OE左移門111沒有輸出COP2000中的運算器由一片 EPLD實現(xiàn).有8種運算,通過S2,S1,S0來選擇。運算數(shù)據(jù)由寄存器A及寄存器W給出,運算結(jié)果輸出到直通門DS2 S1 S0功能000A+W加001A-W減010A|W或011
10、A&W與100A+W+C帶進位加101A-W-C帶進位減110AA取反111A輸出A2。計算機中實現(xiàn)乘法和除法的原理(1)無符號乘法實例演示(即,列 4位乘法具體例子演算的算式):被乘數(shù)為1001 (二進制),即為十進制的9;乘數(shù)為0110 (二進制),即為十進制的6。那么,可以通過筆算得到:1001X 0110=00110110即十進制運算結(jié)果為:9 X 6=54無符號乘法的實例演示如圖1所示:3 / 250 0 0 0+0 0 0 0(0)0 0 0 0+1 0 0 1(1)1 0 0 1 0+1 0 0 1(1)1 1 0 1 1 0+ 0 0 0 0(0)(0) 0 1 1 0
11、 1 1 0即:1001X 0110=00110110圖1;被乘數(shù);乘數(shù);初始值(零);乘數(shù)最低位為0,部分積加0,被乘數(shù)左移一;位,乘數(shù)右移一位。;部分積;乘數(shù)最低位為1,部分積加被乘數(shù),被乘數(shù)左;移一位,乘數(shù)右移一位。;部分積;乘數(shù)最低位為1,部分積加被乘數(shù),被乘數(shù)左;移一位,乘數(shù)右移一位。;部分積;乘數(shù)最低位為0,部分積加0,被乘數(shù)左移一;位,乘數(shù)右移一位。;計算完畢,結(jié)果為 00110110無符號乘法實例演示硬件原理框圖:被 乘 數(shù) 左 移DWR0(部分積和結(jié)果).判斷乘數(shù)末位ALU乘 數(shù) 右 移R1R21圖2無符號乘法的硬件原理框圖在模型機上實現(xiàn)無符號數(shù)乘法運算時,采用“加法一移位”
12、的重復(fù)運算方法。那么,無符號乘法的硬件原理框圖如圖2所示。算法流程圖:在模型機上實現(xiàn)無符號數(shù)乘法運算時,采用“加法一移位”的重復(fù)運算方法。因此,無符號乘法的算法流程圖如圖 3所示。圖3無符號乘法的算法流程圖(2)無符號除法實例演示(即,列4位除法具體例子演算的算式)被除數(shù)為(二進制),即為十進制的100;除數(shù)為1001 (二進制),即為十進制的9。那么,可以通過筆算得到:+1001=1011 0001即十進制運算結(jié)果為:100+9=11-1無符號除法的實例演示如圖1 -1 00 10 0)111 01 01 00 100 01 1 11 0 0 1111 1 1 0 01 0 0 100 00
13、 1 0 1 01 0 0 14所示0 1 0 1 11 01 0 0 10;被除數(shù);除數(shù);減去除數(shù);余數(shù)為負,C=1,商上0;商左移一位,除數(shù)右移一位;加上除數(shù);余數(shù)為正,C=0,商上1;商左移一位,除數(shù)右移一位;減去除數(shù);余數(shù)為負,C=1,商上0;商左移一位,除數(shù)右移一位;加上除數(shù);余數(shù)為正,C=0,商上1;商左移一位,除數(shù)右移一位;減去除數(shù);余數(shù)為正,C=0,商上1,余數(shù)為1;余數(shù)為正不用處理圖4無符號除法的算法流程圖硬件原理框圖:初始化:除數(shù)左移除右移圖5無符號除法的硬件原理框圖在模型機上實現(xiàn)無符號數(shù)除法運算時,采用“加減交替算法”的運算方法。那么,15 / 25無符號除法的硬件原理框
14、圖如圖5所示。算法流程圖:在模型機上實現(xiàn)無符號數(shù)除法運算時,采用“加減交替算法”的運算方法。因此,無符號除法的算法流程圖如圖 6所示。圖6無符號除法的算法流程圖3 .對應(yīng)于以上算法如何分配使用COP2000實驗儀中的硬件(1)無符號乘法符號乘法對應(yīng)于COP2000實驗儀的硬件具體分配使用情況如下表所示:表3無符號乘法的硬件分配情況硬件名稱實現(xiàn)算法功能描述寄存器R0計算時用來存放部分積和最后的積寄存器R1 初始化時,用來存放被乘數(shù);在程序執(zhí)行的過程中,用來存放向左移位后的被乘數(shù)。寄存器R2 初始化時,用來存放乘數(shù);在程序執(zhí)行的過程中,用來存放向右移位后的乘數(shù)。累加器A執(zhí)彳T ADDA,R?(加法
15、)、SHL R?(左移一位)、SHR R?(右 移一位)等命令時所必須使用的寄存器。寄存器W執(zhí)彳T ADD A,R?(加法)、TEST R?,#II (測試 R2的末位) 等雙操作數(shù)命令時所必須使用的寄存器。左移門L用來實現(xiàn)相應(yīng)數(shù)據(jù)左移一位的運算,并能夠控制該運算后 的結(jié)果是否輸出到數(shù)據(jù)總線。直通門D用來控制ALU的執(zhí)行結(jié)果是否輸出到數(shù)據(jù)總線。右移門R用來實現(xiàn)相應(yīng)數(shù)據(jù)右移一位的運算,并能夠控制該運算后 的結(jié)果是否輸出到數(shù)據(jù)總線。程序計數(shù)器PC控制程序按順序正常執(zhí)行; 當執(zhí)行轉(zhuǎn)移指令時,從數(shù)據(jù)線接收要跳轉(zhuǎn)的地址,使程 序能夠按需要自動執(zhí)行。當要從EM中讀取數(shù)據(jù)時,由 PC提供地址。存儲器EM存儲
16、指令和數(shù)據(jù)。微程序計數(shù)器科PC向微程序存儲器科M提供相應(yīng)微指令的地址。微程序存儲器pM存儲相應(yīng)指令的微指令。輸出寄存器OUT可以將運算結(jié)果輸出到輸出寄存器OUT(本實驗未用)。堆棧ST當存儲于累加器 A的值將要受到破壞時,將其數(shù)據(jù)保存在 堆棧ST中,使程序能夠正常地執(zhí)行。(2)無符號除法無符號除法對應(yīng)于 COP200儀驗儀的硬件具體分配使用情況如下表所示:表4無符號除法的硬件分配情況硬件名稱實現(xiàn)算法功能描述寄存器R0初始化時,用來存放被除數(shù)和計算后的余數(shù)。寄存器R1 初始化時,用來存放除數(shù); 在程序執(zhí)行的過程中,用來存放向右移位后的除數(shù)。寄存器R2在程序執(zhí)行過程中,用來保存當前算得的商。寄存器
17、R3當作計數(shù)器使用,用來控制程序是否結(jié)束(初始值5)。累加器A 計算時用來存放中間結(jié)果;執(zhí)行ADD A,R?(加法)、SUB A,R?(減法)等命令時所 必須使用的寄存器。寄存器W執(zhí)彳T SUB A,R?(減法)等雙操作數(shù)命令時所必須使用的寄 存器。左移門L用來實現(xiàn)相應(yīng)數(shù)據(jù)左移一位的運算,并能夠控制該運算后 的結(jié)果是否輸出到數(shù)據(jù)總線。直通門D用來控制ALU的執(zhí)行結(jié)果是否輸出到數(shù)據(jù)總線。右移門R用來實現(xiàn)相應(yīng)數(shù)據(jù)右移一位的運算,并能夠控制該運算后 的結(jié)果是否輸出到數(shù)據(jù)總線。程序計數(shù)器PC控制程序按順序正常執(zhí)行; 當執(zhí)行轉(zhuǎn)移指令時,從數(shù)據(jù)線接收要跳轉(zhuǎn)的地址,使程 序能夠按需要自動執(zhí)行。當要從EM中讀
18、取數(shù)據(jù)時,由 PC提供地址。存儲器EM存儲指令和數(shù)據(jù)。微程序計數(shù)器科PC向微程序存儲器科M提供相應(yīng)微指令的地址。微程序存儲器pM存儲相應(yīng)指令的微指令。輸出寄存器OUT可以將運算結(jié)果輸出到輸出寄存器OUT(本實驗未用)。堆棧ST當存儲于累加器 A的值將要受到破壞時,將其數(shù)據(jù)保存在 堆棧ST中,使程序能夠正常地執(zhí)行。4 .在COP2000集成開發(fā)環(huán)境下設(shè)計全新的指令 /微指令系統(tǒng)設(shè)計結(jié)果如表所示(可按需要增刪表項)(1) 新的指令集(設(shè)計兩個不同指令集要分別列表)表5無符號乘法和除法的新指令集助記符機器碼1機器碼2指令說明_FATCH_000000XX00-03實驗機占用,不可修改。復(fù)位后,所有寄
19、存器清0,首先執(zhí)行_FATCH_指令取指。ADDR?,A000001xx04-07將累加器A中的數(shù)加入到寄存器 R?中,并影響標志位。ADD R?,#II000010XX08-0BII將立即數(shù)II加入到寄存器R?中,并影響標志位。SUBR?,A000011xx0C-0F從寄存器R?中減去累加器 A中的數(shù),并影響標志位。SUB R?,#II000100XX10-13II從寄存器R?中減去立即數(shù)II ,并影響標志位。TEST R?,#II000101xx14-17II寄存器R? “與"立即數(shù)II ,只改變標志位,并不改 變R?中的數(shù)值。PUSH A000110XX18-1B將累加器A中的
20、數(shù)據(jù)壓入堆棧寄存器ST。POP A000111xx1C-1F將堆棧寄存器 ST中的數(shù)據(jù)彈出到累加器 A中。MOA,R?001000XX20-23將寄存器R?中的數(shù)放入累加器 A中。MOV R?,#II001001xx24-27II將立即數(shù)II存放到寄存器R?中。SHL R?001010XX28-2B寄存器R?中的數(shù)不帶進位向左移一位, 并不影響標志 位。SHR R?001011xx2C-2F寄存器R?中的數(shù)不帶進位向右移一位, 并不影響標志 位。JC MM001100XX30-33MM若進位標志位置1,跳轉(zhuǎn)到MM&址。JZ MM001101xx34-37MM若零標志位置1,跳轉(zhuǎn)到MM&
21、amp;址。JMP MM001110XX38-3B跳轉(zhuǎn)到MM&址。OVER001111xx3C-3F程序結(jié)束。(2) 新的微指令集表6無符號乘法的新微指令集助記符狀態(tài)微地 址微程序數(shù)據(jù)輸出數(shù)據(jù)打入地址輸出運算器移位控制PCPC_FATCH_T000CBFFFF指令寄存器IRPC輸出A輸出寫入+101FFFFFFA輸出+ 102FFFFFFA輸出+ 103FFFFFFA輸出+ 1ADD R?,AT204FFF7EF寄存器值R?寄存器WA輸出+ 1T105FFFA98ALU直通寄存器R? 標志位C,Z加運算+ 1T006CBFFFF指令寄存器IRPC輸出A輸出寫入+107FFFFFFA輸出
22、+ 1ADDR?,#IIT308FFF7F7寄存器值R?寄存器AA輸出+ 1T209C7FFEF存貯器值EM寄存器WPC輸出A輸出+ 1+1T10AFFFA98ALU直通寄存器R? 標志位C,Z加運算+ 1T00BCBFFFF指令寄存器IRPC輸出A輸出寫入+1SUB R?,A30CFFFF8FALU直通寄存器WA輸出+ 1T20DFFF7F7寄存器值R?寄存器AA輸出+ 1T10EFFFA99ALU直通寄存器R?標志位C,Z減運算+ 1T00FCBFFFF指令寄存器IRPC輸出A輸出寫入+1SUB R?,#IIT310FFF7F7寄存器值R?寄存器AA輸出+ 1T211C7FFEF存貯器值E
23、M寄存器WPC輸出A輸出+ 1+1T112FFFA99ALU直通寄存器R? 標志位C,Z減運算+ 1T013CBFFFF指令寄存器IRPC輸出A輸出寫入+1TEST R?,#IIT314C7FFFF存貯器值EM寄存器WPC輸出A輸出+ 1+1T215FFF7F7寄存器值R?寄存器AA輸出+ 1T116FFFE93ALU直通寄存器R? 標志位C,Z與運算+ 1T017CBFFFF指令寄存器IRPC輸出A輸出寫入+1PUSH AT118FFEF9FALU直通堆棧寄存器STA輸出+ 1T019CBFFFF指令寄存器IRPC輸出A輸出寫入+11AFFFFFFA輸出+ 11BFFFFFFA輸出+ 1PO
24、P AT11CFFFF57堆棧寄存器ST寄存器AA輸出+ 1T01DCBFFFF指令寄存器IRPC輸出A輸出寫入+11EFFFFFFA輸出+ 11FFFFFFFA輸出+ 1MOV A,R?T120FFF7F7寄存器值R?寄存器AA輸出+ 1T021CBFFFF指令寄存器IRPC輸出A輸出寫入+122FFFFFFA輸出23FFFFFFA輸出MOVR?,#IIT124C7FBFF存貯器值EM寄存器R?PC輸出A輸出+ 1+1T025CBFFFF指令寄存器IRPC輸出A輸出寫入+126FFFFFFA輸出+ 127FFFFFFA輸出+ 1SHL R?T228FFF7F7寄存器值R?寄存器AA輸出+ 1
25、T129FFF9DFALU左移寄存器R?A輸出左移+ 1T02ACBFFFF指令寄存器IRPC輸出A輸出寫入+12BFFFFFFA輸出+ 1SHR R?T22CFFF7F7寄存器值R?寄存器AA輸出+ 1T12DFFF9BFALU右移寄存器R?A輸出右移+ 1T02ECBFFFF指令寄存器IRPC輸出A輸出寫入+12FFFFFFFA輸出+ 1JC MMT130C6FFFF存貯器值EM寄存器PCPC輸出A輸出+ 1寫入T031CBFFFF指令寄存器IRPC輸出A輸出寫入+132FFFFFFA輸出+ 133FFFFFFA輸出+ 1JZ MMT134C6FFFF存貯器值EM寄存器PCPC輸出A輸出+
26、 1寫入T035CBFFFF指令寄存器IRPC輸出A輸出寫入+136FFFFFFA輸出+ 137FFFFFFA輸出+ 1JMP MMT138C6FFFF存貯器值EM寄存器PCPC輸出A輸出+ 1寫入T039CBFFFF指令寄存器IRPC輸出A輸出寫入+13AFFFFFFA輸出+ 13BFFFFFFA輸出+ 1OVERT03CCBFFFF指令寄存器IRPC輸出A輸出寫入+13DFFFFFFA輸出+ 13EFFFFFFA輸出+ 13FFFFFFFA輸出+ 15.用設(shè)計完成的新指令集編寫實現(xiàn)無符號二進制乘法、除法功能的匯編語言程序(1)乘法4位乘法的算法流程圖與匯編語言程序清單:19 / 25MOV
27、 R0,#00HMOV R1,#09HMOV R2,#06HLOOP : TEST R2,#0FHJZ LASTTEST R2,#01HJZ NEXTMOV A,R1ADD R0,ANEXT: SHL R1SHR R2JMP LOOPLAST: OVER圖7;初始化部分積;初始化被乘數(shù);初始化乘數(shù);測試乘數(shù)是否為 0;是0跳轉(zhuǎn),程序結(jié)束;測試乘數(shù)末位時候為 0;是0跳轉(zhuǎn),不用加被乘數(shù);被乘數(shù)送累加器;被乘數(shù)加到部分積;被乘數(shù)左移一位;乘數(shù)右移一位;跳轉(zhuǎn)到下一次測試;程序結(jié)束無符號乘法流程圖2)除法4 位除法的算法流程圖與匯編語言程序清單:MOV R0,#64HMOV R1,#09HMOV R2
28、,#0HMOV R3,#05HTEST R1,#0FHJZ OVERFLOWMOV A,R1PUSH ASHL R1SHL R1SHL R1SHL R1MOV A,R1SUB R0,AJC ZEROJMP OVERFLOWZERO : SHL R2SHR R1SUB R3,#1HJZ DEALMOV A,R1ADD R0,AJC ONEJMP ZEROONE : SHL R2ADD R2,#01HSHR R1SUB R3,#01H;初始化被除數(shù);初始化除數(shù);初始化商;初始化計數(shù)器;測試除數(shù)時候為 0;是 0 轉(zhuǎn)到溢出處理;除數(shù)送累加器;保存除數(shù);除數(shù)左移一位;除數(shù)左移一位;除數(shù)左移一位;除數(shù)左
29、移一位;移位后除數(shù)送累加器;被除數(shù)減去移位后除數(shù);有進位跳到 ZERQ上0處理;首次沒借位會得出 5位商,溢出處理;商左移一位;除數(shù)右移一位;計數(shù)器減1;計數(shù)器為0 ,跳轉(zhuǎn);被除數(shù)減去移位后除數(shù);被除數(shù)加上移位后除數(shù);有借位跳到ONE上1處理;沒借位跳到 ZERO上0處理;商左移一位;商加 1;除數(shù)右移一位;計數(shù)器減1JZ DEALMOV A,R1SUB R0,AJC ZEROJMP ONEDEAL : TEST R0,#80HJZ LASTPOP AADD R0,AJMP LASTOVERFLOW: MOV R2,#0FFHLAST: OVER;計數(shù)器為0,跳轉(zhuǎn);移位后除數(shù)送累加器;被除數(shù)減
30、去移位后除數(shù);有借位跳到 ZERO上0處理;沒借位跳到ONE上1處理;測試余數(shù)是否為負;為正不用處理;恢復(fù)除數(shù);余數(shù)加上除數(shù);跳轉(zhuǎn)到程序結(jié)束;程序結(jié)束;溢出,商置全 16.上述程序的運行情況(跟蹤結(jié)果)程序運行的過程:乘法程序運行過程:表7無符號乘法程序的運行過程匯編指令程序 地址機器 碼指令說明微程序PCPC運行時寄存器或 存儲器的值_FATCH_0000實驗機占用,不可修改。復(fù) 位后,所有寄存器清0,首 先執(zhí)行_FATCH_指令取 指。CBFFFF+ 1寫入EM:24MOV R0,#00002400將立即數(shù)00H存放到寄存器R0中。C7FBFFCBFFFF+ 1+ 1+1寫入EM:24EM
31、:00 R0:00MOV R1,#09022509將立即數(shù)09H存放到寄存器R1中。C7FBFFCBFFFF+ 1+ 1+1寫入EM:25EM:09 R1:09MOV R2,#06042606將立即數(shù)06H存放到寄存器R2中。C7FBFFCBFFFF+ 1+ 1+1寫入EM:26EM:06 R2:06TEST R2,#0F06160F寄存器R2與立即數(shù)0FH, 只改變標志位,并不改變R2 中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+ 1+1+1+1寫入EM:16EM:0F W:0FEM:0F A:06EM:0FJZ 14083414若零標志位置1,跳轉(zhuǎn)到14H 地址。C6
32、FFFFCBFFFF寫入+ 1+1寫入EM:34EM:14TEST R2,#010A1601寄存器R2與立即數(shù)01H,只 改變標志位,并不改變R2中 的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+ 1+1+1+1寫入EM:16EM:01 W:01EM:01 A:06EM:01JZ 100C3410若零標志位置1,跳轉(zhuǎn)到14H 地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:34EM:10SHL R11029寄存器R1中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCBFFFF+ 1+1+1寫入EM:29EM:29 A:09EM:29 R1:12SH
33、R R2112E寄存器R2中的數(shù)不帶進位 向右移一位,并不影響標志 位。FFF7F7FFF9BFCBFFFF+ 1+1+1寫入EM:2EEM:2E A:06EM:2E R2:03JMP 06123806跳轉(zhuǎn)到06H地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:38EM:06TEST R2,#0F06160F寄存器R2與立即數(shù)0FH, 只改變標志位,并不改變R2 中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+ 1+1+1+1寫入EM:16EM:0F W:0FEM:0F A:03EM:0FJZ 14083414若零標志位置1,跳轉(zhuǎn)到14H 地址。C6FFFFCBFFFF
34、寫入+ 1+1寫入EM:34EM:14TEST R2,#010A1601寄存器R2與立即數(shù)01H,只 改變標志位,并不改變R2中 的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+ 1+1+1+1寫入EM:16EM:01 W:01EM:01 A:03EM:01JZ 100C3410若零標志位置1,跳轉(zhuǎn)到14H 地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:34EM:10MOV A,R10E21將寄存器R1中的數(shù)放入累 加器A中。FFF7F7CBFFFF+ 1+1寫入EM:21EM:21 A:12ADD R0,A0F04將累加器A中的數(shù)加入到寄 存器R0中,并影響標志位。F
35、FF7EFFFFA98CBFFFF+ 1+1+1寫入EM:04EM:04 W:00EM:04 R0:12SHL R11029寄存器R1中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCBFFFF+ 1+1+1寫入EM:29EM:29 A:12EM:29 R1:24SHR R2112E寄存器R2中的數(shù)不帶進位 向右移一位,并不影響標志 位。FFF7F7FFF9BFCBFFFF+ 1+1+1寫入EM:2EEM:2E A:03EM:2E R2:01JMP 06123806跳轉(zhuǎn)到06H地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:38EM:06TEST R2,#0F061
36、60F寄存器R2與立即數(shù)0FH, 只改變標志位,并不改變R2 中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+ 1+1+1+1寫入EM:16EM:0F W:0FEM:0F A:01EM:0FJZ 14083414若零標志位置1,跳轉(zhuǎn)到14H 地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:34EM:14TEST R2,#010A1601寄存器R2與立即數(shù)01H,只 改變標志位,并不改變R2中 的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+ 1+1+1+1寫入EM:16EM:01 W:01EM:01 A:01EM:01JZ 100c3410若零標志位置1
37、,跳轉(zhuǎn)到14H 地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:34EM:10MOV A,R10E21將寄存器R1中的數(shù)放入累 加器A中。FFF7F7CBFFFF+ 1+1寫入EM:21EM:21 A:24ADD R0,A0F04將累加器A中的數(shù)加入到寄 存器R0中,并影響標志位。FFF7EFFFFA98CBFFFF+ 1+1+1寫入EM:04EM:04 W:12EM:04 R0:36SHL R11029寄存器R1中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCBFFFF+ 1+1+1寫入EM:29EM:29 A:24EM:29 R1:48SHR R2112E寄存
38、器R2中的數(shù)不帶進位 向右移一位,并不影響標志FFF7F7FFF9BF+1+1EM:2EEM:2E A:01位。CBFFFF+ 1寫入EM:2E R2:00JMP 06123806跳轉(zhuǎn)到06H地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:38EM:06TEST R2,#0F06160F寄存器R2與立即數(shù)0FH, 只改變標志位,并不改變R2 中的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+1+1+1寫入EM:16EM:0F W:0FEM:0F A:01EM:0FJZ 14083414若零標志位置1,跳轉(zhuǎn)到14H 地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:34
39、EM:14OVER143c:程序結(jié)束。CBFFFF+ 1寫入EM:3C除法程序運行過程表8無符號除法程序的運行過程匯編指令程序 地址機器 碼指令說明微程序PCPC運行時寄存器或 存儲器的值_FATCH0000實驗機占用,不可修改。復(fù) 位后,所有寄存器清 0,首 先執(zhí)行_FATCH_指令取 指。CBFFFF+ 1寫入EM:24MOV R0,#64002464將寄存器R0中的數(shù)放入累 加器64H中。C7FBFFCBFFFF+ 1+ 1+1寫入EM:25EM:64 R0:64MOV R1,#09022509將寄存器R1中的數(shù)放入累 加器09H中。C7FBFFCBFFFF+ 1+ 1+1寫入EM:25
40、EM:09 R1:09MOV R2,#00042600將寄存器R2中的數(shù)放入累 加器00H中。C7FBFFCBFFFF+ 1+ 1+1寫入EM:26EM:00 R2:00MOV R3,#05062705將寄存器R3中的數(shù)放入累 力口 05H中。C7FBFFCBFFFF+ 1+ 1+1寫入EM:27EM:27 R3:05TEST R1,#0F08150F寄存器R1與立即數(shù)0FH,只 改變標志位,并不改變R1中 的數(shù)值。C7FFEFFFF7F7FFFE93CBFFFF+ 1+ 1+1+1+1寫入EM:15EM:0F W:0FEM:0F A:09EM:0FJZ 3A0A343A若零標志位置1,跳轉(zhuǎn)到
41、3AH 地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:34EM:3AMOV A,R10C21將寄存器R1中的數(shù)放入累 加器A中。FFF7F7CBFFFF+ 1+1寫入EM:21EM:21PUSH A0D18將累加器A中的數(shù)據(jù)壓入堆 棧寄存器ST。FFEF9FCBFFFF+ 1+1寫入EM:18EM:18 ST:09SHL R10E29寄存器R1中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCBFFFF+ 1+1+1寫入EM:29EM:29EM:29 R1:12SHL R10F29寄存器R1中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCB
42、FFFF+ 1+1+1寫入EM:29EM:29 A:12EM:29 R1:24SHL R11029寄存器R1中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCBFFFF+ 1+1+1寫入EM:29EM:29 A:24EM:29 R1:48SHL R11129寄存器R1中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCBFFFF+ 1+1+1寫入EM:29EM:29 A:48EM:29 R1:90MOV A,R11221將寄存器R1中的數(shù)放入累 加器A中。FFF7F7CBFFFF+ 1EM:21EM:21 A:90SUB R0,A130C從寄存器R0中
43、減去累加器 A中的數(shù),并影響標志位。FFFF8FFFF7F7FFFA99CBFFFF+ 1+1+1+1寫入EM:0CEM:0C W:90EM:0C A:64EM:0C R0:D4JC 18143018若進位標志位置1,跳轉(zhuǎn)到18H地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:30EM:18SHL R2182A寄存器R2中的數(shù)不帶進位 向左移一位,并不影響標志 位。FFF7F7FFF9DFCBFFFF+ 1+1+1寫入EM:2AEM:2A A:00EM:2A R2:00SHR R1192D寄存器R1中的數(shù)不帶進位 向右移一位,并不影響標志 位。FFF7F7FFF9BFCBFFFF+ 1+
44、1+1寫入EM:2DEM:2D A:90EM:2D R1:48SUB R3,#011A1301從寄存器R3中減去立即數(shù) 01H,并影響標志位。FFF7F7C7FFEFFFFA99CBFFFF+ 1+ 1+1+1+1寫入EM:13EM:13 A:05EM:01 W:01EM:01 R3:04JZ 321C3432若零標志位置1,跳轉(zhuǎn)到32H 地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:34EM:32MOV A,R11E21將寄存器R1中的數(shù)放入累 加器A中。FFF7F7CBFFFF+ 1+1寫入EM:21EM:21 A:48ADD R0,A1F04將累加器A中的數(shù)加入到寄 存器R0中,并影響標志位。FFF7EFFFFA98CBFFFF+ 1+1+1寫入EM:04EM:04 W:D4EM:04 R0:1CJC 24203024若進位標志位置1,跳轉(zhuǎn)到24H地址。C6FFFFCBFFFF寫入+ 1+1寫入EM:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年鋅錠現(xiàn)貨交收與庫存管理服務(wù)合同3篇
- 2025版大型公共建筑換熱站節(jié)能減排合同3篇
- 生物醫(yī)藥招投標操作指南
- 陶瓷業(yè)收款管理規(guī)范
- 2024年航空航天設(shè)備采購服務(wù)協(xié)議3篇
- 保險業(yè)數(shù)據(jù)中心:機房施工合同
- 建筑物給排水設(shè)備租賃合同
- 體育行業(yè)教練隊伍管理辦法
- 娛樂服務(wù)質(zhì)量管理辦法
- 2025版特色民宿項目經(jīng)營管理承包合同3篇
- 穴位貼敷護理培訓(xùn)
- 腰椎間盤突出癥護理查房課件
- JJF(陜) 085-2022 全自動容量稀釋配標儀校準規(guī)范
- DB45T 2866-2024 靈芝菌種制備技術(shù)規(guī)程
- 2024年度區(qū)塊鏈軟件產(chǎn)品知識產(chǎn)權(quán)共享協(xié)議3篇
- 人教版九年級上學(xué)期物理期末復(fù)習(xí)(壓軸60題28大考點)
- 粉末銷售合同范例
- 齊魯名家 談方論藥知到智慧樹章節(jié)測試課后答案2024年秋山東中醫(yī)藥大學(xué)
- 人教版(2024版)七年級上冊英語期末模擬測試卷(含答案)
- 山東省濟南市2023-2024學(xué)年高一上學(xué)期1月期末考試 物理 含答案
- 科研設(shè)計及研究生論文撰寫智慧樹知到期末考試答案章節(jié)答案2024年浙江中醫(yī)藥大學(xué)
評論
0/150
提交評論