1.4 Given the memory contents of the IAS computer shown below,
show the assembly language code for the program, starting at address 08A. Explain what this program does.
Address와 contents를 2진수로 나타내면
Address |
Contents |
1. 1000 1010 |
0000 0001 0000 1111 1010 0010 0001 0000 1111 1011 |
2. 1000 1011 |
0000 0001 0000 1111 1010 0000 1111 0000 1000 1101 |
3. 1000 1100 |
0000 0010 0000 1111 1010 0010 0001 0000 1111 1011 |
IAS의 메모리에는 총 40비트가 주어진다. 그중 instruction 은 left와 right로 나누어 지며 각각의 instruction 은 opcode(8bit) 와 address(12bit)로 나눠진다. Instruction-pair의 예시를 먼저 설명하자면
0000 0001 0001 1111 0100 0000 0101 0001 1111 0101 |
||
left - opcode |
0000 0001 |
LOAD M(X) |
left - address |
0001 1111 0100 |
500 |
right-opcode |
0000 0101 |
ADD M(X) |
right-address |
0001 1111 0101 |
501 |
같은 방식으로 문제를 해결한다.
1. Address 10001010
0000 0001 0000 1111 1010 0010 0001 0000 1111 1011 |
||
left - opcode |
0000 0001 |
LOAD M(X) |
left - address |
0000 1111 1010 |
0FA |
right-opcode |
0010 0001 |
STOR M(X) |
right-address |
0000 1111 1011 |
0FB |
2. Address 1000 1011
0000 0001 0000 1111 1010 0000 1111 0000 1000 1101 |
||
left - opcode |
0000 0001 |
LOAD M(X) |
left - address |
0000 1111 1010 |
0FA |
right-opcode |
0000 1111 |
JUMP +M(X) |
right-address |
0000 1000 1101 |
08D |
3. Address 1000 1100
0000 0010 0000 1111 1010 0010 0001 0000 1111 1011 |
||
left - opcode |
0000 0010 |
LOAD -M(X) |
left - address |
0000 1111 1010 |
0FA |
right-opcode |
0010 0001 |
STOR M(X) |
right-address |
0000 1111 1011 |
0FB |
LOAD M(0FA) --> STOR M(0FB) --> LOAD M(0FA) --> JUMP+M(08D) --> LOAD-M(0FA) -->STOR M(0FB)
1. Transfer contents of register M(0FA) to the accumulator AC
2. Transfer contents of accumulator to memory location M(0FB)
3. Transfer contents of register M(0FA) to the accumulator AC
4. If number in the accumulator is nonnegative, take next instruction from left half of M(08D)
5. Transfer -M(0FA) to the accumulator
6. Transfer contents of accumulator to memory location M(0FB)
1. 레지스터 M (0FA)의 내용을 accumulator로 전송
2. accumulator 내용을 메모리 위치 M(0FB)으로 전송
3. 레지스터 M (0FA)의 내용을 accumulator 로 전송
4. accumulator 숫자가 음수가 아닌 경우 M (08D)의 왼쪽 절반에서 다음 지시를 수행
5. -M (0FA)을 accumulator로 전송
6. accumulator 내용을 메모리 위치 M(0FB)으로 전송
'Computer Science > Computer Architecture & Organization' 카테고리의 다른 글
CA & CO Chapter 4 practice problem (5) | 2020.04.21 |
---|---|
CA & CO Chapter 3 practice problem (0) | 2020.04.17 |
CA & CO Chapter 3 최상위에서 본 컴퓨터의 기능 및 상호 연결 (0) | 2020.04.15 |
CA & CO Chapter 1 기본 개념과 컴퓨터 발전과정 (3) | 2020.04.15 |
무어의 법칙 (0) | 2020.03.26 |
댓글