> 커뮤니티 > Q&A
 
제 목 : 6강 교재 78페이지 예제 14번 질문
이 름 :
구*모 작성일 : 2019년 02월 12일 01시 46분
     
  인터넷 강의로 감사히 잘 듣고 있습니다.
7강 도입부에 간략하게 언급을 해주시긴 했지만 의아한 부분이 남아서 질문 드립니다.

문제에서 주어진 대로 연산을 이어나가면 이렇겠습니다.

(1) PC : 0xA21

0xA21 | 1110(간접 ISZ) 0xB16
0xB16 | 0xC23으로 이동
0xC23 | ISZ의 정의에 따라 값을 0xFFFF + 1 = 0x0000으로 변경

(2) PC : 0xA23 (ISZ의 정의에 따라 한 주소 스킵)

0xA23 | 1101(간접 BSA) 0xB18
0xB18 | 0xC24로 이동
0xC24 <- 여기서부터 문제입니다.

교재에 의하면 BSA 명령으로 넘어온 것은 아래와 같이 실행됩니다.

- 0xC24의 값을 출발 주소인 0xA23으로 변경
- PC를 0xC24로 변경 후 다음 주소부터 실행

따라서 제가 생각한 답은
참조 명령어 : ISZ -> BSA
AC : 0x70AF
0xC23 : 0x0000
0xC24 : 0xA23
으로, AC에서 연산이 일어나지 않습니다.

그러나 강의에서는 0xC24의 값: 0000 0x789을 실행합니다.
0xC24를 실행하기 위해선 출발지 0xA23의 값이
1100(간접 BUN) 0xC23이 되어야 하는 것 아닌가요?

----- 이하는 메일을 통해 온 교수님의 답변입니다 -----

선생님 질문에 대한 생각이 맞아요.

BSA 실행 후 복귀 명령인 BUN명령어를 명시해야 하는데 명시가 안되서 잠정적으로 BSA 실행시 BUN이 자동으로 실행되는 것으로

간주하고 풀어 보는 것으로 하고자 했는데 그것은 촬영이 안된 것 같습니다.(쉬는 시간에 질문이 들어 와서요)

문제풀이나 모의고사에서는 미진했던 것은 고려하고 다시 한번 강조하겠습니다.

----- 이제 와서 보니 저도 틀렸었네요 -----

0xC24를 실행하기 위해서는
출발지 0xA23의 값이 아래 중 하나가 되어야 하겠습니다.

- 0100(직접 BUN) 0xC23
- 0101(직접 BSA) 0xC23
- 1100(간접 BUN) 0xB16
- 1101(간접 BSA) 0xB16
 
     
첨부파일
 └   구평모 [ 2019-02-12 02:04:14 ]    
교수님께 메일로도 질문 드렸습니다. 메일로 답변이 오면 공유하겠습니다.
 └   구평모 [ 2019-02-12 22:04:01 ]    
답변이 와서 본문에 내용 추가했습니다.
 └   구평모 [ 2019-02-13 00:35:11 ]    
7강을 이어 듣다 보니 저도 틀린 부분이 있어서 내용 추가했습니다.