一、加減算術電路外掛方案
(一)加減電路的特征
1、電路共用。由加法、減法算術電路與接口電路組成的加減運算共用電路,能夠進行有符號整數加法、有符號整數減法、無符號整數加法、無符號整數減法四種模式的算術運算。
2、端口共用。四種模式的算術運算輸入操作數端口共用,有符號加法與無符號加法的輸出端口共用,有符號減法與無符號減法的輸出端口共用。
3、由於電路共用、端口共用,每次運算只能選用一種算術模式。
(二)加減電路的外掛方式
1、加減電路有兩個操作數輸入端口,每個輸入端口掛接到兩個寄存器上,一個是16位的數據寄存器,另一個是標志寄存器。
2、加減電路有兩個運算結果輸出端口,每個輸出端口掛接到兩個寄存器上,一個是16位的運算結果數據寄存器,另一個是標志寄存器。標志寄存器有進位標志、負符號標志、A操作數大於B操作數標志,B操作數大於A操作數標志,運算結果0標志。
在標志寄存器中,有進位時,進位位標志置1;無進位時,進位標志清0;運算結果為負時,負符號標志置1;運算結果為正時,負符號標志清0;A操作數的絕對值大於B操作數的絕對值時,A操作數大於B操作數的標志位置1;B操作數的絕對值大於A操作數的絕對值時,B操作數大於A操作數的標志位置1;運算結果大於0時,運算結果0標志位置1;運算結果等於0時,運算結果0標志位清0。
在進行加減連續運算時,當運算結果標志寄存器中的數據送入輸入端的標志寄存器中時,運算電路只取用標志寄存器中的符號位標志,其他標志位不參與運算。
3、加減電路有一個模式控制端口,模式控制端口掛接到寄存器上,寄存器的第0位為有符號加法模式,第1位為有符號減法模式,第2位為無符號加法模式,第3位為無符號減法模式。當寄存器的某一個模式位為1時,即選擇該模式運算。四種算術模式選擇位每次只能選擇一個模式位。
(三)加減電路所用的元件數量與電路級數
以與門、或門、非門三種邏輯元件為基本邏輯元件,加減電路共需基本邏輯元件380個,隔離元件69個,有源隔離元件16個。
在四種模式的加減算術電路中,從數據全部到達電路的輸入端口開始,到運算結果全部到達電路的輸出端口,電路總級數為46級。
(四)加減編程舉例
1、簡單掛接的編程例
設:模式寄存器為P,A操作數的數據寄存器為A10,標志寄存器為A11,B操作數的數據寄存器為B10,標志寄存器為B11,加法結果數據寄存器為J10,加法標志寄存器為J11,減法結果數據寄存器為J20,標志寄存器為J21。
設R0,R1,R2,R3,R4,R5,R6,R7寄存器中存有數據,進行R0+R1+R2-R3-R4-R5+R6+R7運算,並假設每次運算結果的進位位都為0,有:
mov P,#100B ;選擇無符號加法
mov A10,R0
mov B10,R1
mov R8,J10 ;運算結果存入R8
mov A10,R8 ;再次進行無符號加運算
mov B10,R2
mov R8,J10 ;運算結果存入R8
mov P,#1000B ;選擇無符號減法
mov A10,R8
mov B10,R3
mov R8,J20 ;運算結果存入R8
mov R9,J21 ;標志結果存入R9
mov P,#10B ;選擇有符號減法
mov A11,R9
mov B11,#0
mov A10,R8
mov B10,R4
mov R8,J20 ;運算結果存入R8
mov R9,J21 ;標志結果存入R9
mov A11,R9 ;再次進行有符號減法
mov B11,#0
mov A10,R8
mov B10,R5
mov R8,J20 ;運算結果存入R8
mov R9,J21 ;標志結果存入R9
mov P,#1B ;選擇有符號加法
mov A11,R9
mov B11,#0
mov A10,R8
mov B10,R6
mov R8,J10 ;運算結果存入R8
mov R9,J11 ;標志結果存入R9
mov A11,R9 ;再次進行有符號加法
mov B11,#0
mov A10,R8
mov B10,R7
mov R8,J20 ;運算結果存入R8
mov R9,J21 ;標志結果存入R9
2、全管理掛接的編程例
全管理掛接的指令可以有兩種方式。方式一是把運算結果存放到第一個輸入端口的寄存器中,方式二是把運算結果存放到任意指定的地址或寄存器中。
(1)運算結果存放到輸入端口的第一個操作數寄存器中
對R0+R1+R2-R3-R4-R5+R6+R7的運算進行編程如下:
MOV A10,R0 ;R0 A10
ADDC_N A10,R1 ;A10+R1 A10
ADDC_N A10,R2 ;A10+R2 A10:
MOV A11,#0 ;#0 A11
SUB_N A11,A10,R3 ;A10-R3 A10,A11
SUB_Y A11,A10,#0,R4 ;A10-R4 A10,A11
SUB_Y A11,A10,#0,R5 ;A10-R5 A10,A11
ADDC_Y A11,A10,#0,R6 ;A10+R6 A10,A11
ADDC_Y A11,A10,#0,R7 ;A10+R7 A10,A11
(2)運算結果存放到任意指定的地址或寄存器
對R0+R1+R2-R3-R4-R5+R6+R7的運算進行編程如下:
ADDC_N &R10,R0,R1 ;R0+R1 R10
ADDC_N #100H,R10,R2 ;R10+R2 #100H
SUB_N &R8,&R9,(100H),R3 ;(100H)-R3 R8,R9
SUB_Y &R10,&R11,R8,R9,#0,R4 ;R9-R4 R10,R11
SUB_Y &R8,&R9,R10,R11,#0,R5 ;R11-R5 R8,R9
ADDC_Y &R10,&R11,R8,R9,#0,R6 ;R9+R6 R10,R11
ADDC_Y &R8,&R9,R10,R11,#0,R7 ;R11+R7 R8,R9