Computer systems organization assignment

A digital computer has a memory unit with 24bits per
word (so the IR is 24bits too). The instruction set consists of 150 different operations.
All instructions have an operation code part (opcode) and one address part.
a) How many bits are needed for the opcode?
b) How many bits are left for the address part of the instruction?
c) What is the maximum allowable size for memory?
d) What are the dimensions of the memory, assuming a square two-dimensional organization?
e) How large would the MAR be?
f) How many bits are sent to the row and column decoders?
g) What kind of multiplexor circuit would be needed to select exactly one of those 150 operations?
2. Write a pseudocode to set A to (B C)x(D E) where B,C,D and E are variables stored in memory. You need to use the addition operator only (the multiplication operation is replaced by repetitive addition operations: a x b = a a a ……. a b times)

3. Assume that the variables A, B, C, D, and E are stored in memory locations 100, 101, 102, 103, and 104, respectively. Also assume that the code sequence you are writing begins in memory location 20. Using any of the machine language instructions seen in class, translate the source code instructions written in a. into their machine language equivalent. Computing the expression should not change the values of its operands.