4 Вариант
Заданы команды: subb a,{@rj,#d}, rr a, xch a,{ri,ad}, acall ad11
subb a, @rj [1 0 0 1 0 1 1 j]
subb a, #d [1 0 0 1 0 1 0 1] [immediate data]
rr a [0 0 0 0 0 0 1 1]
xch a, rj [1 1 0 0 1 j2 j1 j0]
xch a, ad [1 1 0 0 0 1 0 1] [direct address]
acall ad11 [a10 a9 a8 1 0 0 0 1] [a7 a6 a5 a4 a3 a2 a1 a0]
F0 - функциональный блок, отвечающий за формирование адреса:
ADOP = 0 : (RS0<<3) | (RS1<<4) | (IR & 1)
ADOP = 1 : (RS0<<3) | (RS1<<4) | (IR & 7)
ADOP = 2 : 0x20 | (Wrk>>3)
Коды операций для ALU
0 : A + B + C0
1 : A – B – C0
2 : A & B
3 : A | B
Логическая ф-я для AC = A.4 ^ B.4 ^ F.4, P = A.0
subb a, @rj
{Y1,Y6,RC,Y2} {kop} {ADOP 0, Y14, RD,Y19} {Y7,RD,Y15,Y4,Y3,Y10,Y22,Y32,ALUOP 1} |
subb a, #d
{Y1,Y6,RC,Y2} {kop} {Y1,Y6,RC,Y15,ALUOP 1,Y4,Y3,Y10,Y22,Y32} |
acall ad11
{Y1,Y6,RC,Y2} {kop} {Y20,Y1,Y6,RC,Y11,Y30} {Y31,WD,Y8,Y30} {Y31,WD,Y9} {Y24,Y23} |
xch a, ad
{Y1,Y6,RC,Y2} {kop} {Y1,Y6,RC,Y16,Y11} {Y20} {Y21,RD,Y11} {Y21,WD,Y18} |
xch a, rj
{Y1,Y6,RC,Y2} {kop} {Y14,RD,ADOP 1,Y16,Y11} {Y14,WD,ADOP 1,Y18} |
rr a
{Y1,Y6,RC,Y2} {kop} {sr, Y13} |
Вариант 21
Заданы команды: add a,{ri,#d}, anl c,{bit,/bit}, push ad, ret
add a, ri [0 0 1 0 1 i2 i1 i0]
add a, #d [0 0 1 0 0 1 0 0] [immediate data]
anl c, bit [1 0 0 0 0 0 1 0] [bit address]
anl c, /bit [1 0 1 1 0 0 0 0] [bit address]
push ad [1 1 0 0 0 0 0 0] [direct address]
ret [0 0 1 0 0 0 1 0]
F0 - функциональный блок, отвечающий за формирование адреса:
ADOP = 0 : (RS0<<3) | (RS1<<4) | (IR & 1)
ADOP = 1 : (RS0<<3) | (RS1<<4) | (IR & 7)
ADOP = 2 : 0x20 | (Wrk >> 3)
Коды операций для ALU
0 : A + B + C0
1 : A – B – C0
2 : A & B
3 : A | B
Логическая ф-я для AC = A.4 ^ B.4 ^ F.4, P = A.0
F1 – функциональный блок, отвечающий за работу с битами.
BOP = 0 : !!(Wrk & (1<<bbuf)) & CC
BOP = 1 : !(Wrk & (1<<bbuf)) & CC
add a, rj
{Y1,Y6,RC,Y2} {kop} {ADOP 1,Y14,RD,Y15,Y4,Y3,Y22,ALUOP 0,Y32} |
anl c, bit
{Y1,Y6,RC,Y2} {kop} {Y1,Y6,RC,Y19} {Y14,ADOP 2,RD,Y26,Y19,Y25,BOP 0} |
push ad
{Y1,Y6,RC,Y2} {kop} {Y1,Y6,RC,Y19} {Y7,RD,Y19,Y30} {Y31,Y18,WD} |
add a, #d
{Y1,Y6,RC,Y2} {kop} {Y1,Y6,RC,Y15,ALUOP 0,Y4,Y3,Y22,Y32} |
anl c, /bit
{Y1,Y6,RC,Y2} {kop} {Y1,Y6,RC,Y19} {Y14,ADOP 2,RD,Y26,Y19,Y25,BOP 1} |
ret
{Y1,Y6,RC,Y2} {kop} {Y31,RD,Y29,Y27} {Y31,RD,Y28,Y27} |