QUIZ

A. What is the meaning of the following register transfer statements?

1. [tex]\(PX1: R2 \leftarrow R1 + \overline{R3} + 1\)[/tex]
2. [tex]\(R3 \leftarrow M[AR]\)[/tex]

B.

1. Store the contents of register 3 in memory location 240.
2. Perform a logical shift right operation on the binary number 1100.
3. Perform a circular shift left operation on the binary number 1101.
4. If [tex]\(R1 = 1100\)[/tex] and [tex]\(R2 = 1010\)[/tex], what are the contents of register 3 after performing [tex]\(R3 \leftarrow R1 \, \text{OR} \, R2\)[/tex]?



Answer :

Sure, let's go through each part of the quiz step-by-step:

### Part A - Meaning of Register Transfer Statements

#### a) [tex]\( \text{PX1}: R2 \leftarrow R1 + \overline{R3} + 1 \)[/tex]

This statement represents the addition of [tex]\( R1 \)[/tex] to the two's complement of [tex]\( R3 \)[/tex]. In essence, taking the one's complement ([tex]\(\overline{R3}\)[/tex]) and adding 1 to it, converts [tex]\( R3 \)[/tex] to its negative form, effectively making this a subtraction operation. Thus;

[tex]\[ R2 \leftarrow R1 + (\overline{R3} + 1) \][/tex]

Which simplifies to:

[tex]\[ R2 \leftarrow R1 - R3 \][/tex]

Therefore, the meaning is:
[tex]\[ R2 \leftarrow R1 - R3 \][/tex]

#### b) [tex]\( R3 \leftarrow M[AR] \)[/tex]

This statement means that the contents of the memory location whose address is held in the Address Register (AR) are being loaded into [tex]\( R3 \)[/tex]. Essentially, we are reading from memory into [tex]\( R3 \)[/tex].

Thus, the meaning is:
[tex]\[ R3 \leftarrow \text{Memory[Address in AR]} \][/tex]

### Part B

#### 1) Store the contents of register 3 in memory location 240

To store the contents of [tex]\( R3 \)[/tex] in memory location 240, we simply place the value in [tex]\( R3 \)[/tex] at this specific memory address. If [tex]\( R3 \)[/tex] contains the value 55, then memory location 240 will contain 55 afterwards.

So, memory[240] = 55.

#### 2) Perform a logical shift right operation on binary number 1100

A logical shift right operation shifts all bits of the binary number to the right by one place. So, for the binary number 1100:

[tex]\[ 1100 \quad(in\; binary) \Rightarrow 0110 \quad(after\; logical\; shift\; right) \][/tex]

The resulting binary number is 0110, which is 6 in decimal.

Therefore, the result of the logical shift right operation is 6.

#### 3) Perform a circular shift left operation on binary number 1101

A circular (or rotate) shift left operation moves the leftmost bit to the rightmost position. For the binary number 1101:

[tex]\[ 1101 \quad(in\; binary) \Rightarrow 1011 \quad(after\; circular\; shift\; left) \][/tex]

The resulting binary number is 1011, which is 11 in decimal.

Therefore, the result of the circular shift left operation is 11.

#### 4) If [tex]\( R1 = 1100 \)[/tex] and [tex]\( R2 = 1010 \)[/tex], perform [tex]\( R3 \leftarrow R1 \: \mathbf{OR} \: R2 \)[/tex]

To perform the bitwise OR operation between [tex]\( R1 \)[/tex] and [tex]\( R2 \)[/tex]:

[tex]\[ R1 = 1100 \][/tex]
[tex]\[ R2 = 1010 \][/tex]
[tex]\[ R3 = R1 \: \mathbf{OR} \: R2 \][/tex]

Bitwise OR operation on each corresponding bit:
[tex]\[ 1100 \, (R1)\][/tex]
[tex]\[ 1010 \, (R2)\][/tex]
[tex]\[ \mathbf{1110} \, (R3)\][/tex]

The resulting binary number is 1110, which is 14 in decimal.

Therefore, the contents of register [tex]\( R3 \)[/tex] after performing [tex]\( R1 \: \mathbf{OR} \: R2 \)[/tex] is 14.