본문 바로가기

IT/컴퓨터구조

[컴퓨터구조] 간접 사이클 루틴

간접 사이클 루틴




 안녕하세요 지토우에요.





 어떤 명령어가 간접 주소지정 방식을 사용하는 경우에는 명령어 내의 Ⅰ비트가 '1'로 세트됩니다.

이 경우에는 실행 사이클의 시작 부분에서 간접 사이클 루틴을 호출해서 기억장치로부터 실제 오퍼랜드 주소를 읽어와야 합니다.

일반적으로 간접 사이클 루틴은 인출 사이클 루틴의 다음 위치인 4번지부터 저장되며, 다음과 같은 마이크로명령어들로 이루어집니다.


ORG 4

INDRT :        IRTAR        U        JMP    NEXT ; MAR <- IR(addr),

    ; 다음 마이크로명령어 실행

READ         U        JMP    NEXT ; MBR <- M[MAR],

    ; 다음 마이크로 명령어 실행

BRTIR         U        RET            ; IR(addr) <- MBR,

   ; 실행 사이클 루틴으로 복귀


 즉, IR에 저장되어 있는 명령어의 주소 필드가 가리키는 기억장치 위치로부터 실제 주소를 인출하여 다시 IR의 주소 필드에 적재하는 것입니다.

이 루틴의 마지막 마이크로명령어가 실행된 다음에는 이 간접 사이클을 호출했떤 실행 사이클 루틴으로 복귀해야 합니다.

이 복귀(RET)는 전에서 본 바와 같이 SBR에 저장되어 있던 원래의 제어 기억장치 주소를 CAR로 적재함으로써 수행됩니다.

이 루틴의 마이크로명렁어들을 2진 비트 패턴으로 변환하면 다음과 같아집니다.


주소 

 μ-ops

CD 

BR 

ADF 

0000100 

010 000 

00 

00 

0000101 

0000101 

100 000 

00 

00 

0000110 

0000110 

110 000 

00 

10 

0000000