模擬試験解答 1-a • 命令のフォーマット • 第8回の講義資料 LDI ADDI LDIU ST r1, #0x80 r1, #0x05 r0, #0x00 r1, (r0) → 01000 001 0000000 → 01100 001 00000101 → 01001 000 00000000 → 00000 001 000 01000 Opecode Function 1-b • こうなる 命令 レジスタ r0 r1 r2 LDI r1, #0x80 ADDI r1, #0x05 xxxx xxxx FF80 FF85 xxxx xxxx LDIU r0, #0x00 ST r1, (r0) 0000 0000 FF85 FF85 xxxx xxxx • 0番地に0xFF85 2 • 各信号線の役割 – pcsel:プログラムカウンタ(たぶん…) – comsel: ALUの動作を決定 – alu_bsel: ALUへの入力b – rf_csel: レジスタファイルへの入力 – rwe: レジスタファイルの書き込み制御 – we: メモリの書き込み制御 2 • スペースの都合で縦書き 表2: 解答 ADDI BEZ pcsel comsel alu_bsel 00 110 01 01/10 - (何でも良い) - (何でも良い) rf_csel 00 - (何でも良い) rwe 1 0 we 0 0 3-a • 解答例(あくまでー例) loop: end: LDI r0, #0x00 LDI r1, #0x08 LDI r6, #0x08 LD r2, (r0) ST r2, (r1) ADDI r0, #0x01 ADDI r1, #0x01 ADDI r6, #0xFF(-1) BNEZ r6, loop(-6) NOP JMP end 3-b • たぶんこういうこと↓ Address r0 → Address Data 07 08 01 02 09 0a 0b 0c 0d 0e 03 04 05 06 07 08 r1 → 23 24 コピー 25 26 27 28 29 2a Data 3-b • 解答例(あくまで(ry) メインルーティン サブルーティン hoge ・・・ JAL sub ・・・ hogehoge sub: LDI r5, #0x08 loop: LD r2, (r0) ST r2, (r1) ADDI r0, #0x01 ADDI r1, #0x01 ADDI r5, #0xFF(-1) BNZ r5, loop(-6) NOP LDLI r5, #0xFF JR r7 3-c • 解答例(ry メインルーティン サブルーティン ・・・ sub: LDI r6, #0x08 loop: LD r2, (r0) ST r2, (r1) ADDI r0, #0x01 ADDI r1, #0x01 ADDI r6, #0xFF(-1) BNZ r6, loop(-6) NOP LDLI r6, #0xFF JR r7 ST r0, (r6) ADDI r6, #0xFF ST r1, (r6) ADDI r6, #0xFF ST r2, (r6) JAL sub LD r2, (r6) ADDI r6, #0x01 LD r1, (r6) ADDI r6, #0x01 LD r0, (r6) ・・・ 4 • 考えかた ALU MUX ALU_THA ALU_ADD MUX Data Imm Address Register File Memory Module おわり
© Copyright 2024 ExpyDoc