110 likes | 295 Views
模擬試験解答. 1-a. 命令のフォーマット 第 8 回の講義資料 LDI r1, #0x80 → 01000 001 0000000 ADDI r1, #0x05 → 01100 001 00000101 LDIU r0, #0x00 → 01001 000 00000000 ST r1, (r0) → 00000 001 000 01000. Opecode. Function. 1-b. こうなる 0 番地に 0xFF85. 2. 各信号線の役割 pcsel: プログラムカウンタ ( たぶん …)
E N D
1-a • 命令のフォーマット • 第8回の講義資料 LDI r1, #0x80 → 01000 001 0000000 ADDI r1, #0x05 → 01100 001 00000101 LDIU r0, #0x00 → 01001 000 00000000 ST r1, (r0) → 00000 001 000 01000 Opecode Function
1-b • こうなる • 0番地に0xFF85
2 • 各信号線の役割 • pcsel:プログラムカウンタ(たぶん…) • comsel: ALUの動作を決定 • alu_bsel: ALUへの入力b • rf_csel: レジスタファイルへの入力 • rwe: レジスタファイルの書き込み制御 • we: メモリの書き込み制御
2 • スペースの都合で縦書き 表2: 解答
3-a • 解答例(あくまでー例) • LDI r0, #0x00 • LDI r1, #0x08 • LDI r6, #0x08 • loop: LD r2, (r0) • ST r2, (r1) • ADDI r0, #0x01 • ADDI r1, #0x01 • ADDI r6, #0xFF(-1) • BNEZ r6, loop(-6) • NOP • end: JMP end
3-b • たぶんこういうこと↓ Address Data Address Data r0 → r1 → コピー
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 メインルーティン ・・・ 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) ・・・ • サブルーティン • 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
4 • 考えかた ALU ALU_THA ALU_ADD Memory Module MUX MUX Data Imm Address Register File