본문 바로가기
Computer Science/Computer Architecture & Organization

ISA 어셈블리 코드 해석하기

by HaningYa 2020. 3. 26.
728x90

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.

 

 

Addresscontents2진수로 나타내면

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 leftright로 나누어 지며 각각의 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)으로 전송

728x90

댓글