Computer Organization and Design--计组作业习题(1)

Computer Organization and Design

 

 ----------------------个人作业,如果有后辈的作业习题一致,可以参考学习,一起交流,请勿直接copy

Problem 1:

Convert the following decimal values to both binary and hexadecimal representations using 8 bit two’s complement. If you cannot convert to twos complement please explain why. 

 

2310= 00010111two=17hex

 

-1510= 11110001two=F1hex

 

-12810= 10000000two=80hex

 

12810: 关于 2’s complement,8 bit可以表示的数值范围只有【-128,+127】;故128无法用8 bit2’s complement 表示;

 

 

-110= 11111111two=FFhex

 

Problem 2:

 

Convert the following LC2K assembly code into machine code in hex. All unused bits should be 0 and the machine code instructions should be 32 bits long.

 

              add        1  2  3                           : 0x000A0003

start       lw           4  5  ten                        : 0x00A50004

             beq        3  5  start                       : 0x011DFFFE

             halt                                             : 0x01800000

ten         .fill          10                                : 0x0000000A

 

 

Problem 3: 

Convert the following hex numbers to LC2K instructions.

 

0x00550003                     : nand  2  5  3

 

0x01670000                      : jalr 4   7

 

0x00CAFFFF                      : sw    1   2   -1

 

 

Problem 4: 

Given the following MIPS assembly code (and assuming all registers start at 0):

 

             addi   $1    $0    3

             addi   $2    $0    8

    loop   add   $1    $1    $2

             nand  $3    $1    $2

             addi   $2    $2    -2

             bne   $0    $2    loop

 

 

a) Translate the MIPS code into C Code that performs the same operations. Please use the variable names reg1, reg2, and reg3 for $1, $2, and $3. 

 

int reg1, reg2, reg3;

reg1 = 3;

reg2 = 8;  

do

{

   reg1 = reg1+reg2;

   reg3 = ~(reg1&reg2);

   reg2 = reg2+(-2);

}

while (reg2 !=0);

 

b) How many times is the line, “nand $3, $1, $2” executed?

     4 times;

c) What is the final value of $3?

        -310;

 

Problem 5: 

 

Below is the description of a new, stack-based ISA that only contains one register, REG. The ISA is byte addressable.

 

R-type Instructions            bits 7-5: opcode

                             bits 4-0: unused

 

 

 

I-type Instructions   bits 7-5: opcode

                        bits 4-0: immediate value in 2’s complement form

 

 

 

 

U-type Instructions           bits 7-5: opcode

bits 4-2: unused 

bits 1-0: math code

 

 

 

a) Translate the following instructions into machine code. Please write your answers in HEX.

 

 

Instruction

Machine Code

flip

40

load-2

7E

ALU. Sub

C1

 

b) You are given the following C code that you are to translate into this ISA’s assembly.

a = b nand c

 

Assume that the stack is NOT initially empty and STACK[bottom] = 0.

 

a is located at memory address 10, b is at 20, c is at 30. REG is initially 0. Write your code below.

 

load         20

push

load         30

ALU.Nand

store       10

 

posted @ 2017-04-03 12:01  nanashi  阅读(500)  评论(0编辑  收藏  举报