一、加減算術電路外掛方案
  (一)加減電路的特征
    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
 返回上頁
 返回首頁