TEC-2機微程序設計


了解TEC-2機的結構和基本的指令知識很重要,不理解而只知一味地照抄是學不到知識的。建議先閱讀課件,再結合例子進行理解。以下例子只供參考,有些地方可以合並,具體的操作仍需見仁見智。理解並學會使用微指令分析器是解決問題的關鍵。

總體思路:

設計微程序→將微碼存放於內存中→將微碼加載到微控制存儲器中→輸入程序,運行新指令,以檢驗微程序的正確性

補充知識:

指令格式: 操作碼    條件碼    目的寄存器(DR)    源寄存器(SR)

       ||

   唯一指定一條指令

例:第一題:     D4                     2                          0

PC:存放內存單元的地址。(隨着指令運行時遞增)

反匯編得到指令的具體格式。

14號命令:與/CC條件無關,順序執行,即執行緊跟在本條微指令后面的那條微指令,由μPC提供微地址。

3號命令:條件轉移。/CC=1時,順序執行,否則按當前微指令下地址字段中地址D轉移。

D數據來源可分為:

①16個鈕子開關,用於手撥方式輸入的數據或地址②運算器的16位輸出;③外部數據總線傳送來的數據;④中斷向量寄存器的輸出;⑤狀態寄存器(C-進/借位、Z-運算結果、V-溢出、S-符號 4個標志位及中斷優先級);⑥指令寄存器的低位字節。

第一題:

  將內存單元數據DATA減去用絕對地址ADDR表示的內存單元的內容,結果保存到由DR內容指定的內存單元中

1.指令格式

指令格式:

D4

DR

X

 

ADDR

 

DATA

2.指令功能

功能:  DATA- [ADDR] → [DR]

3.設計分析

根據指令的功能和指令格式,先讀取地址ADDR單元內容暫時放置於Q寄存器中, 然后PC+1→PC,並將PC的值賦給AR。MEM中存放的數據是DATA。此時只需要實現MEM-Q→Q,並將DR送給AR。只要將Q寄存器內容寫入存儲器MEM就可以完成指令功能。最后,微程序中必須實現PC+1→PC操作,才能確保PC的正確走向。

4. 微程序 

100:PC→AR,PC+1→PC:  0000   0E00   A0B5   5402

101:MEM→AR:              0000   0E00   10F0   0002

102:MEM→Q:                0000   0E00   00F0   0000

103:PC→AR,PC+1→PC:   0000   0E00   A0B5   5402

104:MEM-Q→Q:              0000   0E01   02E0   0000

105:DR→AR:               0000   0E00   90B0   000A

106:Q→MEM,CC#=0:       0029   0300   1020   0010

5. 加載到微控存程序段

說明:微碼存放在900H(或某內存單元)開始的內存單元中

>A0800

0800:MOV R1,900        ;微碼在內存中的首地址

0802:MOV R2,7          ;微指令條數

0804:MOV R3,100        ;微碼在微控制存儲器中的首地址

0806:LDMC               ;加載微碼指令,將微碼指令加載到微控制存儲器中

0807:RET

0808:

>A0800

6.運行程序段

>A0820

0820:MOV R0,0011

0822:MOV [0890],R0

0824:MOV R2,0891

0826:NOP

0827:NOP

0828:NOP

0829:RET

>E0826

然后輸入以下內容:

D420 0890 1111

7.運行結果

>G0820

>D0891

0891:1100

第二題:

將絕對地址ADDR單元的內容與[SR]內容相加,結果保存到DR寄存。

1. 指令格式

   指令格式:

D4

DR

SR

 

ADDR

2. 指令功能

功能:  [ADDR] + [SR] → DR

3.設計分析

根據指令的功能和指令格式,讀取地址ADDR單元內容暫時放置於Q寄存器中,將SR單元內容賦給AR,MEM中存放着SR的數據。此時只需要實現Q+MEM,並將結果賦給DR就可以完成指令功能。最后,微程序中必須實現PC+1→PC操作,才能確保PC的正確走向。

4.微程序

100:PC→AR,PC+1→PC:  0000   0E00   A0B5   5402

101:MEM→AR:              0000   0E00   10F0   0002

102:MEM→Q:               0000   0E00   00F0   0000

103:SR→AR:               0000   0E00   90C0   0082

104:MEM+Q→Q:            0000   0E01   00E0   0000

105: Q→DR,CC#=0:        0029   0300   B020   0008

(104和105可以合並成MEM+Q→DR,CC#=0)

5.加載到微控存程序段

說明:微碼存放在900H(或某內存單元)開始的內存單元中

>A0800

0800:MOV R1,900        ;微碼在內存中的首地址

0802:MOV R2,6          ;微指令條數

0804:MOV R3,100        ;微碼在微控制存儲器中的首地址

0806:LDMC               ;加載微碼指令,將微碼指令加載到微控制存儲器中

0807:RET

0808:

>A0800

6.  運行程序段

>A0820

0820:MOV R0,0011

0822:MOV [0890],R0

0824:MOV R0,0100

0826:MOV [0891], R0

0828:MOV R3, 0891

082A:NOP

082B:NOP

082C:RET

>E082A

然后輸入以下內容:

D413 0890

7.運行結果

>G0820

>RR1

0111:-


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM