LAD GR 0 GR 1 b A b
ロードアドレス命令の制御 命令の例: LAD GR 0, #****, GR 1 b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Dec-Lad: 001 100000 0011100000 000; if Lad = 1 then GRA←MDR+GRB * 5
シフト演算命令の制御 命令の例: SLA GR 1, #0003 (クロックサイクル Sla 0) #FFFD * *#0003 * バス A の 値が 0 * #FFFD =-(MAR) b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Sla 0: 000 001000 11111000 00000 000; SNC←-MAR * 8
シフト演算命令の制御 命令の例: SLA GR 1, #0003 (クロックサイクル Sla 1) *#FFFD →#FFFE →#FFFF →#0000 b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Sla 1: 010 000000 00100110 100000 000; * * 値が 0 で なければ If SNC <> 0 then {GRA←Sla(GRA), SNC←SNC+1, Sla 1} 10
分岐命令の制御信号生成回路 命令の例: JPL #****, GRB (クロックサイクル Jpl 0) b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Jpl 0: 000 001000 00010000000 ; if (SF=0)AND(ZE=0) then PR←MAR * 13
プッシュ命令の制御信号とデータの流れ(1) (実効アドレス計算のサイクル Dec-Ea は省略) b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Push 0: 000 001000 00010000001101 000 ; SDR←MAR, SP←SP-1 * 15
プッシュ命令の制御信号とデータの流れ(2) b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Push 1: 000000 0000000000 101 ; mem(SP)←SDR * 16
ポップ命令の制御信号とデータの流れ(1) b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Dec-Pop 0: 000010 10111000 0000000111 110 ; if POP = 1 then {SDR←mem(SP), 18 * SP←SP+1}
ポップ命令の制御信号とデータの流れ(2) b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Pop 1: 0000010000 1110000000 000; GRA←SDR, PR←PR+1 * レジスタ間命令と同様 * 19
ポップ命令の実行ステップの タイムチャート * b. A IAa Dec-Pop 0: 000 Pop 1: 000 b. B BPAb. SD 000010 000001 A/S_op c 0123 a. LR 10111000 00010000 F Fcn 000 b. C Gi. PAm. Dd. Ss. D 0000000111 1110000000 Mem srw 110; 000; 20
コール命令(CALL命令)の制御信号 プッシュ命令(PUSH命令)に類似 PUSH命令の制御信号 b. A IAa Push 0: 000 Push 1: 000 b. B BPAb. SD 001000 000000 A/S_op c 0123 a. LR 00010000 F Fcn 000 b. C Gi. PAm. Dd. Ss. D 0000001101 00000 Mem srw 000 ; SDR←MAR, SP←SP-1 101 ; mem(SP)←SDR F Fcn 000 b. C Gi. PAm. Dd. Ss. D 0000001101 0010000000 Mem srw 000 ; SDR←PR, SP←SP-1 101 ; mem(SP)←SDR, PR←MAR CALL命令の制御信号 b. A IAa Call 0: 000 Call 1: 000 b. B BPAb. SD 010000 001000 A/S_op c 0123 a. LR 00010000 * * 21
リターン命令(RET命令)の制御信号 ポップ命令(POP命令)に類似 POP命令の制御信号 b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Dec-Pop 0: 000010 10111000 0000000111 110 ; if POP = 1 then {SDR←mem(SP), SP←SP+1} Pop 1: 0000010000 1110000000 ; GRA←SDR, PR←PR+1 RET命令の制御信号 b. A b. B A/S_op F b. C Mem IAa BPAb. SD c 0123 a. LR Fcn Gi. PAm. Dd. Ss. D srw Dec-Ret 0: 000010 10111000 0000000111 110 ; if RET = 1 then {SDR←mem(SP), SP←SP+1} Ret 1: 0000010000 0010000000 ; PR←SDR * * 23
- Slides: 24