




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機組成原理課程設計報告班級: 班 姓名: 學號: 完成時間: 一、課程設計目的1在實驗機上設計實現機器指令及對應的微指令(微程序)并驗證,從而進一步掌握微程序設計控制器的基本方法并了解指令系統與硬件結構的對應關系;2通過控制器的微程序設計,綜合理解計算機組成原理課程的核心知識并進一步建立整機系統的概念;3培養綜合實踐及獨立分析、解決問題的能力。二、課程設計的任務針對COP2000實驗儀,從詳細了解該模型機的指令/微指令系統入手,以實現乘法和除法運算功能為應用目標,在COP2000的集成開發環境下,設計全新的指令系統并編寫對應的微程序;之后編寫實現乘法和除法的程序進行設計的驗證。三、 課程設
2、計使用的設備(環境)1硬件l COP2000實驗儀l PC機2軟件l COP2000仿真軟件四、課程設計的具體內容(步驟)1詳細了解并掌握COP 2000模型機的微程序控制器原理,通過綜合實驗來實現該模型機指令系統的特點: 總體概述COP2000模型機包括了一個標準CPU所具備所有部件,這些部件包括:運算器ALU、累加器A、工作寄存器W、左移門L、直通門D、右移門R、寄存器組R0-R3、程序計數器PC、地址寄存器MAR、堆棧寄存器ST、中斷向量寄存器IA、輸入端口IN、輸出端口寄存器OUT、程序存儲器EM、指令寄存器IR、微程序計數器uPC、微程序存儲器uM,以及中斷控制電路、跳轉控制電路。其
3、中運算器和中斷控制電路以及跳轉控制電路用CPLD來實現,其它電路都是用離散的數字電路組成。微程序控制部分也可以用組合邏輯控制來代替。 模型機為8位機,數據總線、地址總線都為8位,但其工作原理與16位機相同。相比而言8位機實驗減少了煩瑣的連線,但其原理卻更容易被學生理解、吸收。模型機的指令碼為8位,根據指令類型的不同,可以有0到2個操作數。指令碼的最低兩位用來選擇R0-R3寄存器,在微程序控制方式中,用指令碼做為微地址來尋址微程序存儲器,找到執行該指令的微程序。而在組合邏輯控制方式中,按時序用指令碼產生相應的控制位。在本模型機中,一條指令最多分四個狀態周期,一個狀態周期為一個時鐘脈沖,每個狀態周
4、期產生不同的控制邏輯,實現模型機的各種功能。模型機有24位控制位以控制寄存器的輸入、輸出,選擇運算器的運算功能,存儲器的讀寫。模型機的缺省的指令集分幾大類: 算術運算指令、邏輯運算指令、移位指令、數據傳輸指令、跳轉指令、中斷返回指令、輸入/輸出指令。 模型機的尋址方式表1 模型機的尋址方式模型機的尋址方式尋址方式說明指令舉例指令說明累加器尋址操作數為累加器ACPL A將累加器A的值取反隱含尋址累加器AOUT將累加器A的值輸出到輸出端口寄存器OUT寄存器尋址參與運算的數據在R0R3的寄存器中ADD A,R0將寄存器R0的值加上累加器A的值,再存入累加器A中寄存器間接尋址參與運算的數據在存儲器EM
5、中,數據的地址在寄存器R0-R3中MOV A,R1將寄存器R1的值作為地址,把存儲器EM中該地址的內容送入累加器A中存儲器直接尋址參與運算的數據在存儲器EM中,數據的地址為指令的操作數。AND A,40H將存儲器EM中40H單元的數據與累加器A的值作邏輯與運算,結果存入累加器A立即數尋址參與運算的數據為指令的操作數。SUB A,#10H從累加器A中減去立即數10H,結果存入累加器A該模型機微指令系統的特點(包括其微指令格式的說明等):該模型機的微命令是以直接表示法進行編碼的,其特點是操作控制字段中的每一位代表一個微命令。這種方法的優點是簡單直觀,其輸出直接用于控制。缺點是微指令字較長,因而使控
6、制存儲器容量較大。 微指令格式的說明模型機有24位控制位以控制寄存器的輸入、輸出,選擇運算器的運算功能,存儲器的讀寫。微程序控制器由微程序給出24位控制信號,而微程序的地址又是由指令碼提供的,也就是說24位控制信號是由指令碼確定的。該模型機的微指令的長度為24位,其中微指令中只含有微命令字段,沒有微地址字段。其中微命令字段采用直接按位的表示法,哪位為0,表示選中該微操作,而微程序的地址則由指令碼指定。這24位操作控制信號的功能如表2所示:(按控制信號從左到右的順序依次說明)表2 微指令控制信號的功能操作控制信號控 制 信 號 的 說 明XRD外部設備讀信號,當給出了外設的地址后,輸出此信號,從
7、指定外設讀數據。EMWR程序存儲器EM寫信號。EMRD程序存儲器EM讀信號。PCOE將程序計數器PC的值送到地址總線ABUS上。EMEN將程序存儲器EM與數據總線DBUS接通,由EMWR和EMRD決定是將DBUS數據寫到EM中,還是從EM讀出數據送到DBUS。IREN將程序存儲器EM讀出的數據打入指令寄存器IR和微指令計數器PC。EINT中斷返回時清除中斷響應和中斷請求標志,便于下次中斷。ELPPC打入允許,與指令寄存器的IR3、IR2位結合,控制程序跳轉。MAREN將數據總線DBUS上數據打入地址寄存器MAR。MAROE將地址寄存器MAR的值送到地址總線ABUS上。OUTEN將數據總線DBU
8、S上數據送到輸出端口寄存器OUT里。STEN將數據總線DBUS上數據存入堆棧寄存器ST中。RRD讀寄存器組R0R3,寄存器R?的選擇由指令的最低兩位決定。RWR寫寄存器組R0R3,寄存器R?的選擇由指令的最低兩位決定。CN決定運算器是否帶進位移位,CN=1帶進位,CN=0不帶進位。FEN將標志位存入ALU內部的標志寄存器。X2X2、X1、X0三位組合來譯碼選擇將數據送到DBUS上的寄存器。X1X0WEN將數據總線DBUS的值打入工作寄存器W中。AEN將數據總線DBUS的值打入累加器A中。S2S2、S1、S0三位組合決定ALU做何種運算。S1S0COP2000中有7個寄存器可以向數據總線輸出數據
9、, 但在某一特定時刻只能有一個寄存器輸出數據. 由X2,X1,X0決定那一個寄存器輸出數據。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實現. 有8種運算, 通過S2,S1,S0來選擇。運算數據由寄存器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
10、+W+C 帶進位加1 0 1A-W-C 帶進位減1 1 0A A取反1 1 1A 輸出A2. 計算機中實現乘法和除法的原理(1)無符號乘法算法流程圖:開 始輸入被乘數、乘數,初始化過程積N乘數為0?N輸出結果OUT乘數最后一位為1?N結束Y計算過程積被乘數左移一位乘數右移一位硬件原理框圖:判斷乘數是否為零判斷乘數最后一位是否為1RDL被乘數R0R1中間積 ALU乘數中間積R2AR3W乘數右移被乘數左移(2)無符號除法算法流程圖:開始輸入被除數,除數初始化商為0,過程除數先初始化等于除數除數為0?YN過程除數左移一位N過程除數的最高位為1?Y過程除數小于除數?Y輸出商OUT;輸出余數OUT;N余
11、數大于等于過程除數?Y結束Y過程除數右移一位;商左移一位被除數減去過程除數得到新的被除數過程除數右移一位;商左移一位并且加1硬件原理框圖:左移、右移過程除數R0RDL被除數R1中間積 ALU商R2存除數AR3WR1-R0R2+13對應于以上算法如何分配使用COP2000實驗儀中的硬件(初步分配,設計完成后再將準確的使用情況填寫在此處)(1) 無符號乘法的硬件分配情況硬件名稱實現算法功能描述寄存器R0計算時用來存放過程積和結果積寄存器R1 初始化時,用來存放被乘數; 在程序執行的過程中,用來存放向左移位后的被乘數。寄存器R2 初始化時,用來存放乘數; 在程序執行的過程中,用來存放向右移位后的乘數
12、。累加器A執行ADD A,R?(加法)、SHL R?(左移一位)、SHR R?(右移一位)等命令時所必須使用的寄存器。寄存器W執行ADD A,R?(加法)、CHECK R?,#II(檢測乘數最后一位是否為1)等雙操作數命令時所必須使用的寄存器。左移門L用來實現相應數據左移一位的運算,并能夠控制該運算后的結果是否輸出到數據總線。直通門D用來控制ALU的執行結果是否輸出到數據總線。右移門R用來實現相應數據右移一位的運算,并能夠控制該運算后的結果是否輸出到數據總線。程序計數器PC 控制程序按順序正常執行; 當執行轉移指令時,從數據線接收要跳轉的地址,使程序能夠按需要自動執行。 當要從EM中讀取數據時
13、,由PC提供地址。存儲器EM存儲指令和數據。微程序計數器PC向微程序存儲器M提供相應微指令的地址。微程序存儲器M存儲相應指令的微指令。輸出寄存器OUT將運算結果(R0)輸出到輸出寄存器OUT。堆棧ST當存儲于累加器A的值將要受到破壞時,將其數據保存在堆棧ST中,使程序能夠正常地執行。(2)無符號除法 無符號除法對應于COP2000實驗儀的硬件具體分配使用情況如下表所示:表4 無符號除法的硬件分配情況硬件名稱實現算法功能描述寄存器R0初始化時,用來存放除數在程序執行過程中,用來存放向右移位后的過程除數寄存器R1初始化時,用來存放被除數;寄存器R2在程序執行過程中,用來保存當前算得的商。寄存器R3
14、初始化時,用來保存除數,運算過程中其值也不改變。累加器A 計算時用來存放中間結果; 執行CMP R?,A(比較) SUB A,R?(減法)等命令時所必須使用的寄存器。寄存器W執行SUB A,R?(減法)等雙操作數命令時所必須使用的寄存器。左移門L用來實現相應數據左移一位的運算,并能夠控制該運算后的結果是否輸出到數據總線。直通門D用來控制ALU的執行結果是否輸出到數據總線。右移門R用來實現相應數據右移一位的運算,并能夠控制該運算后的結果是否輸出到數據總線。程序計數器PC 控制程序按順序正常執行; 當執行轉移指令時,從數據線接收要跳轉的地址,使程序能夠按需要自動執行。 當要從EM中讀取數據時,由P
15、C提供地址。存儲器EM存儲指令和數據。微程序計數器PC向微程序存儲器M提供相應微指令的地址。微程序存儲器M存儲相應指令的微指令。輸出寄存器OUT將運算結果輸出到輸出寄存器OUT(R2:商,R1:余數)。堆棧ST當存儲于累加器A的值將要受到破壞時,將其數據保存在堆棧ST中,使程序能夠正常地執行。4在COP2000集成開發環境下設計全新的指令/微指令系統設計結果如表所示(可按需要增刪表項)(1) 新的指令集(如果針對乘除法設計了兩個不同指令集要分別列表)助記符機器碼1機器碼2指令說明_FATCH_000000XX 00-03 實驗機占用,不可修改。復位后,所有寄存器清0,首先執行 _FATCH_
16、指令取指M0V R?,#II000001XX 04-07II將立即數II送到寄存器R?中MOV A,R?000010XX 08-0B將寄存器R?的值送到累加器A中ADD R?,A000011XX 0C-0F將寄存器R?的值加入累加器A中ADD R?,#II000100XX 10-13II將立即數II加入寄存器R?中SUB R?,A000101XX 14-17從累加器A中減去寄存器R?的值CHECK R?,#II000110XX 18-1BIIJMP MM000111XX 1C-1FMMZF=1,跳轉JC MM001000XX 20-23MMCF=1,跳轉JZ MM001001XX 24-27M
17、M無條件跳轉未使用001010XX 28-2BSHL R?001011XX 2C-2F左移SHR R?001100XX 30-33右移CMP R?,A001101XX 34-37比較OUT R?001110XX 38-3B輸出(2) 新的微指令集助記符狀態微地址微程序數據輸出數據打入地址輸出運算器移位控制mPCPC_FATCH_T000CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+101FFFFFF浮空浮空A輸出+102FFFFFF浮空浮空A輸出+103FFFFFF浮空浮空A輸出+1MOV R?,#IIT104C7FBFF存儲器值EM寄存器R?PC輸出A輸出+1T005CBFFFF浮空指令
18、寄存器IRPC輸出A輸出寫入+106FFFFFF浮空浮空A輸出+107FFFFFF浮空浮空A輸出+1MOV A,R?T108FFF7F7寄存器值R?寄存器W浮空A輸出+1T009CBFFFF浮空指令寄存器IRPC輸出A輸出+10AFFFFFF浮空浮空A輸出+10BFFFFFF浮空浮空A輸出+1ADD R?,AT20CFFF7EF寄存器R?寄存器W浮空A輸出+1T10DFFFA98ALU直通寄存器R?標志位C,Z浮空加運算+1T00ECBFFFF浮空指令寄存器IRPC輸出A輸出寫入+10FFFFFFF浮空浮空A輸出+1ADD R?,#IIT310FFF7F7寄存器值R?寄存器A浮空A輸出+1T2
19、11C7FFEF存儲器值EM寄存器WPC輸出A輸出寫入+1T112FFFA98ALU直通寄存器R?標志位C,Z浮空加運算+1T013CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+1SUB R?,AT314FFFF8FALU直通寄存器W浮空A輸出+1T215FFF7F7寄存器R?寄存器A浮空A輸出+1T116FFFA99ALU直通寄存器R?標志位C,Z浮空減運算+1T017CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+1CHECK R?,#IIT318C7FFEF存儲器值EM寄存器WPC輸出A輸出+1+1T219FFF7F7寄存器值R?寄存器A浮空A輸出+1T11AFFFE93ALU直通
20、寄存器A標志位C,Z浮空與運算+1T01BCBFFFF浮空指令寄存器IRPC輸出A輸出寫入+1JMP MMT11CC6FFFF存儲器EM寄存器PCPC輸出A輸出+1寫入T01DCBFFFF浮空指令寄存器IRPC輸出A輸出寫入+11EFFFFFF浮空浮空A輸出+11FFFFFFF浮空浮空A輸出+1JC MMT120C6FFFF存儲器值EM寄存器PCPC輸出A輸出+1寫入T021CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+122FFFFFF浮空浮空A輸出+123FFFFFF浮空浮空A輸出+1JZ MMT124C6FFFF存儲器值EM寄存器PCPC輸出A輸出+1寫入T025CBFFFF浮空指令
21、寄存器IRPC輸出A輸出寫入+1未使用26FFFFFF浮空浮空A輸出+107FFFFFF浮空浮空A輸出+128FFFFFF浮空浮空A輸出+129FFFFFF浮空浮空A輸出+12AFFFFFF浮空浮空A輸出+12BFFFFFF浮空浮空A輸出+1SHL R?T22CFFF7F7寄存器值R?寄存器A浮空A輸出+1T12DFFF9DFALU左移寄存器R?浮空A輸出左移+1T02ECBFFFF浮空指令寄存器IRPC輸出A輸出寫入+12FFFFFFF浮空浮空A輸出+1SHR R?T230FFF7F7寄存器值R?寄存器A浮空A輸出+1T131FFF9BFALU右移寄存器R?浮空A輸出右移+1T032CBFF
22、FF浮空指令寄存器IRPC輸出A輸出寫入+1CMP R?,AT334FFFF8FALU直通寄存器W浮空A輸出+1T235FFF7F7寄存器值R?寄存器A浮空A輸出+1T136FFFE99ALU直通標志位C,Z浮空減運算+1T037CBFFFF浮空指令寄存器IRPC輸出A輸出寫入+1OUT R?T238FFD7FF寄存器值R?用戶OUT浮空A輸出+1T139FFD7F7寄存器值R?寄存器A 用戶OUT浮空A輸出+1T03ACBFFFF浮空指令寄存器IRPC輸出A輸出寫入+13BFFFFFF浮空浮空A輸出+15設計完成的新指令集編寫實現無符號二進制乘法、除法功能的匯編語言程序(1)乘法4位乘法的算
23、法流程圖與匯編語言程序清單:乘法算法流程圖開 始輸入被乘數、乘數,初始化過程積N乘數為0?N輸出結果OUTN乘數最后一位為1?結束Y計算過程積被乘數左移一位乘數右移一位匯編語言程序MOV R0,#00H ;中間積MOV R1,#9 ;被乘數MOV R2,#6 ;乘數LAB : CHECK R2,#0FH JZ LAST CHECK R2,#01H JZ NEXT MOV A,R1 ADD R0,ANEXT : SHL R1 SHR R2 JMP LABLAST : OUT R0LAST1:JMP LAST1(2)除法 4位除法的算法流程圖與匯編語言程序清單:除法算法流程圖:開始輸入被除數,除數
24、初始化商為0,過程除數先初始化等于除數除數為0?YN過程除數左移一位N過程除數的最高位為1?Y過程除數小于除數?Y輸出商OUT;輸出余數OUT;N余數大于等于過程除數?Y結束Y過程除數右移一位;商左移一位被除數減去過程除數得到新的被除數過程除數右移一位;商左移一位并且加1匯編語言程序MOV R0,#8 ;過程除數 MOV R1,#33 ;初始化被除數 MOV R2,#0 ;初始化商 MOV R3,#8 ;R3用于保存除數,值不改變 CHECK R0,#0FH JZ LAST LOOP:CHECK R0,#80H JZ LOOP1 JMP BEGIN LOOP1:SHL R0 JMP LOOP
25、BEGIN: MOV A,R3 CMP R0,A JC LAST MOV A,R0 CMP R1,A JC ONE MOV A,R0 SUB R1,A SHL R2 ADD R2,#1 SHR R0 JMP BEGINONE: SHL R2 SHR R0 JMP BEGINLAST:OUT R2LAST1:JMP LAST16上述程序的運行情況(跟蹤結果)按下表填寫描述以上各程序運行情況的內容。按每個程序一張表進行。程序運行的過程無符號乘法匯 編 指 令程序地址機器碼指令說明微程序PC mPC運行時寄存器或存儲器的值MOV R0,#000010400初始化過程積C7FBFFCBFFFF0102
26、0405R0=00HMOV R1,#902030509初始化被乘數C7FBFFCBFFFF03040405R1=09HMOV R2,#604050606初始化乘數C7FBFFCBFFFF05060405R2=06HLAB:CHECK R2,#0FH06071A0F檢測乘數是否為0(將0FH送至寄存器W,將R2送至寄存器A中,進行與運算,結果由D送至A中。)C7FFEFFFF7F7FFFE93CBFFFF0708080818191A1BW=0FHA=06HJZ LAST08092414乘數為0(ZF=1),則跳轉到LASTC6FFFFCBFFFF090A2425CHECK R2,#01H0A0B
27、1A01檢測乘數最后一位是否為1(將01H送至寄存器W,將R2送至寄存器A中,進行與運算,結果由D送至A中。)C7FFEFFFF7F7FFFE93CBFFFF0B0C0C0C18191A1BW=01HA=06HJZ NEXT0C0D2410乘數最后一位為0(ZF=1),則跳轉到NEXTC6FFFFCBFFFF0D102425NEXT:SHL R1102D被乘數左移一位(將R1值送至寄存器A中,左移將L中的值送回R1)FFF7F7FFF9DFCBFFFF1111112C2D2ER1=12HSHR R21132乘數右移一位(將R2值送至寄存器A中,右移將R中的值送回R2)FFF7F7FFF9BFC
28、BFFFF121212303132R2=03HJMP LAB12131C06無條件跳轉至LABC6FFFFCBFFFF13061C1DLAB:CHECK R2,#0FH06071A0F檢測乘數是否為0(將0FH送至寄存器W,將R2送至寄存器A中,進行與運算,結果由D送至A中。)C7FFEFFFF7F7FFFE93CBFFFF0708080818191A1BW=0FHA=03HJZ LAST08092414乘數為0(ZF=1),則跳轉到LASTC6FFFFCBFFFF090A2425CHECK R2,#01H0A0B1A01檢測乘數最后一位是否為1(將01H送至寄存器W,將R2送至寄存器A中,進
29、行與運算,結果由D送至A中。)C7FFEFFFF7F7FFFE93CBFFFF0B0C0C0C18191A1BW=01HA=03HJZ NEXT0C0D2410乘數最后一位為0(ZF=1),則跳轉到NEXTC6FFFFCBFFFF0D0E2425MOV A,R10E09將被乘數R1送至寄存器A中FFF7F7CBFFFF0F0F0809A=12HADD R0,A0F0C過程積加上被乘數(將R0上送至W中,A與W做加法運算)FFF7EFFFFA98CBFFFF1010101C1D1ER0=12HNEXT:SHL R1102D被乘數R1左移一位(將R1值送至寄存器A中,左移將L中的值送回R1)FFF
30、7F7FFF9DFCBFFFF1111112C2D2ER1=24HSHR R21132乘數右移一位(將R2值送至寄存器A中,右移將R中的值送回R2)FFF7F7FFF9BFCBFFFF121212303132R2=01HJMP LAB12131C06無條件跳轉至LABC6FFFFCBFFFF13061C1DLAB:CHECK R2,#0FH06071A0F檢測乘數是否為0(將0FH送至寄存器W,將R2送至寄存器A中,進行與運算,結果由D送至A中。)C7FFEFFFF7F7FFFE93CBFFFF0708080818191A1BW=0FHA=01HJZ LAST08092414乘數為0(ZF=1
31、),則跳轉到LASTC6FFFFCBFFFF090A2425CHECK R2,#01H0A0B1A01檢測乘數最后一位是否為1(將01H送至寄存器W,將R2送至寄存器A中,進行與運算,結果由D送至A中。)C7FFEFFFF7F7FFFE93CBFFFF0B0C0C0C18191A1BW=01HA=01HJZ NEXT0C0D2410乘數最后一位為0(ZF=1),則跳轉到NEXTC6FFFFCBFFFF0D0E2425MOV A,R10E09將被乘數R1送至寄存器A中FFF7F7CBFFFF0F0F0809A=24HADD R0,A0F0C過程積加上被乘數(將R0上送至W中,A與W做加法運算)F
32、FF7EFFFFA981010100C0D0EW=12HR0=36HNEXT:SHL R1102D被乘數左移一位(將R1值送至寄存器A中,左移將L中的值送回R1)FFF7F7FFF9DFCBFFFF1111112C2D2ER1=48HSHR R21132乘數右移一位(將R2值送至寄存器A中,右移將R中的值送回R2)FFF7F7FFF9BFCBFFFF121212303132R2=00HJMP LAB12131C06無條件跳轉至LABC6FFFFCBFFFF13061C1DLAB:CHECK R2,#0FH06071A0F檢測乘數是否為0(將0FH送至寄存器W,將R2送至寄存器A中,進行與運算,
33、結果由D送至A中。)C7FFEFFFF7F7FFFE93CBFFFF0708080818191A1BW=OFHA=00HJZ LAST08092414乘數為0(ZF=1),則跳轉到LASTC6FFFFCBFFFF09142425LAST:OUT R01438將結果積R0輸出到OUT寄存器FFD7FFCBFFFF151538390UT=R0=36H無符號除法(商可以是8位的通用除法)匯 編 指 令程序地址機器碼指令說明微程序PC mPC運行時寄存器或存儲器的值MOV R0,#800010408初始化過程除數C7FBFFCBFFFF01020405R0=08HMOV R1,#3302030521初
34、始化被除數C7FBFFCBFFFF03040405R3=33HMOV R2,#004050600初始化商C7FBFFCBFFFF05060405R1=08HMOV R3,#806070708保持除數C7FBFFCBFFFF07080405R2=00HCHECK R0,#0FH0809180F檢測除數是否為0(將0FH送至W中,除數R0送至A中,進行與運算,結果保存在A中)C7FFEFFFF7F7FFFE93CBFFF090A0A0A18191A1BW=0FHA=08HJZ LAST0A0B2429除數若為0(ZF=1),跳轉到LASTC6FFFFCBFFFF0B0C2425LOOP:CHECK
35、 R0,#80H0C0D1880檢測除數最高位是否為1(將80H送至W中,過程除數R0送至A中,進行與運算,結果保存在A中)C7FFEFFFF7F7FFFE93CBFFFOD0E0E0E18191A1BW=80HA=08HJZ LOOP10E0F2412過程除數的最高位為0(ZF=1),跳轉到LOOP1C6FFFFCBFFFF0F122425LOOP1:SHL R0122C過程除數左移一位(過程除數R0送至A中,左移一位,結果L再送回R0)FFF7F7FFF9DFCBFFFF1313132C2D2ER0=10HJMP LOOP13141C0C無條件跳轉到LOOPC6FFFFCBFFFF140C
36、1C1DLOOP:CHECK R0,#80H0C0D1880檢測除數最高位是否為1(將80H送至W中,過程除數R0送至A中,進行與運算,結果保存在A中)C7FFEFFFF7F7FFFE93CBFFF0D0E0E0E18191A1BW=80HA=10HJZ LOOP10E0F2412過程除數的最高位為0(ZF=1),跳轉到LOOP1C6FFFFCBFFFFOF122425LOOP1:SHL R0122C過程除數左移一位(過程除數R0送至A中,左移一位,結果L再送回R0)FFF7F7FFF9DFCBFFFF1313132C2D2ER0=20HJMP LOOP13141C0C無條件跳轉到LOOPC6
37、FFFFCBFFFF140C1C1DLOOP:CHECK R0,#80H0C0D1880檢測除數最高位是否為1(將80H送至W中,過程除數R0送至A中,進行與運算,結果保存在A中)C7FFEFFFF7F7FFFE93CBFFF0D0E0E0E18191A1BW=80HA=20HJZ LOOP10E0F2412過程除數的最高位為0(ZF=1),跳轉到LOOP1C6FFFFCBFFFF0F122425LOOP1:SHL R0122C過程除數左移一位(過程除數R0送至A中,左移一位,結果L再送回R0)FFF7F7FFF9DFCBFFFF1313132C2D2ER0=40HJMP LOOP13141C
38、0C無條件跳轉到LOOPC6FFFFCBFFFF140C1C1DLOOP:CHECK R0,#80H0C0D1880檢測除數最高位是否為1(將80H送至W中,過程除數R0送至A中,進行與運算,結果保存在A中)C7FFEFFFF7F7FFFE93CBFFF0D0E0E0E18191A1BW=80HA=40HJZ LOOP10E0F2412過程除數的最高位為0(ZF=1),跳轉到LOOP1C6FFFFCBFFFF0F122425LOOP1:SHL R0122C過程除數左移一位(過程除數R0送至A中,左移一位,結果L再送回R0)FFF7F7FFF9DFCBFFFF131313242D2ER0=80H
39、JMP LOOP13141C0C無條件跳轉到LOOPC6FFFFCBFFFF140C1C1DLOOP:CHECK R0,#80H0C0D1880檢測除數最高位是否為1(將80H送至W中,過程除數R0送至A中,進行與運算,結果保存在A中)C7FFEFFFF7F7FFFE93CBFFF0D0E0E0E18191A1BW=80HA=80HJZ LOOP10E0F2412過程除數的最高位為0(ZF=1),跳轉到LOOP1C6FFFFCBFFFF0F102425JMP BEGIN10111C15無條件跳轉到BEGINC6FFFFCBFFFF11151C1DBEGIN:MOV A,R3150B將除數送至寄
40、存器A中FFF7F7CBFFFF16160809A=08HCMP R0,A1634比較過程除數與除數的大小(先將A中的除數通過D轉移至W中,再將過程除數送至A中,進行減運算,修改標志位C,Z)FFFF8FFFF7F7FFFE99CBFFFF1717171734353637W=08HA=80HJC LAST17182024若過程除數R0小于除數R3,則跳轉到LASTC6FFFFCBFFFF18192021MOV A,R01908將過程除數送至寄存器A中FFF7F7CBFFFF1A1A0809A=80HCMP R1,A1A35比較被除數與過程除數的大小(先將A中的除數通過D轉移至W中,再將被除數送
41、至A中,進行減運算,修改標志位C,Z)FFFF8FFFF7F7FFFE99CBFFFF1B1B1B1B34353637W=80HA=21HJC ONE1B1C2020若被除數R1小于過程除數R0,則跳轉到ONEC6FFFFCBFFFF1C252021ONE:SHL R2252E商左移一位(商R2送至A中,左移一位,結果L再送回R2)FFF7F7FFF9DFCBFFFF2626262C2D2ER2=00HSHR R02630過程除數右移一位(過程除數R0送至A中,右移一位,結果R再送回R0)FFF7F7FFF9BFCBFFFF272727303132R0=40HJMP BEGIN27281C10
42、無條件跳轉到BEGINC6FFFFCBFFFF28151C1DBEGIN:MOV A,R3150B將除數送至寄存器A中FFF7F7CBFFFF16160809A=08HCMP R0,A1634比較過程除數與除數的大小(先將A中的除數通過D轉移至W中,再將過程除數送至A中,進行減運算,修改標志位C,Z)FFFF8FFFF7F7FFFE99CBFFFF1717171734353637W=08HA=40HJC LAST172024若過程除數R0小于除數R3,則跳轉到LASTC6FFFFCBFFFF18192021MOV A,R01908將過程除數送至寄存器A中FFF7F7CBFFFF1A1A0809A=40HCMP R1,A1A35比較被除數與過程除數的大小(先將A中的除數通過D轉移至W中,再將被除數送至A中,進行減運算,修改標志位C,Z)F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 脂肪肝試題及答案解析
- 2025年度配電線路安規考試題庫及答案(共154題)
- 基于2025年的教育園區建設社會穩定風險評估與風險評估體系優化報告
- 探討家具設計師職業素養與專業技能題試題及答案
- 聚焦2025互聯網+教育示范項目資金申請可行性分析報告
- 2025南航招聘測試題及答案
- 未來挑戰2025年物理試題及答案
- 聚焦2025:廣播影視行業媒體融合與內容創新趨勢研究報告
- 施工現場作業安全技能考核試題及答案
- 生態環境保護與土木工程試題及答案
- 2024年甘肅蘭州事業單位考試真題
- 2025年導游從業資格通關秘籍
- 中國法院知識產權司法保護狀況2024
- 四川省綿陽市2025屆高三下學期第三次診斷性測試數學試卷(含答案)
- 外賣配送員工作流程總結
- 新式茶飲產業的技術發展現狀與未來創新趨勢
- 【國浩律師事務所】2025中國企業出海戰略與法律支持需求調研報告
- 當代中國外交(外交學院)知到智慧樹章節測試課后答案2024年秋外交學院
- 小學科學湘科版六年級下冊全冊同步練習含答案
- IACSURS26 中文
- 中層干部360度考核測評表(共4頁)
評論
0/150
提交評論