shift 를 4번하는 서브루틴이있는 수도 코드인뎅
ORG 100
LDA X
BSA SH4
STA X
LDA Y
BSA SH4
STA Y
HLT
X, HEX 1234
Y, HEX 4321
SH4, HEX 0
CIL
CIL
CIL
CIL
AND MSK ///이부분 앤드 왜치는지하고
BUN SH4 I //SH4 I 가뭔지 잘모르겠어요
MSK, HEX FFF0
END
shift 를 4번하는 서브루틴이있는 수도 코드인뎅
ORG 100
LDA X
BSA SH4
STA X
LDA Y
BSA SH4
STA Y
HLT
X, HEX 1234
Y, HEX 4321
SH4, HEX 0
CIL
CIL
CIL
CIL
AND MSK ///이부분 앤드 왜치는지하고
BUN SH4 I //SH4 I 가뭔지 잘모르겠어요
MSK, HEX FFF0
END
주어진 서브루틴의 역할이 AC에 대해 logical shift를 왼쪽으로 4번하는건데, 마노언어에서는 CIL 혹은 CIR 명령어밖에 없기 때문에 이를 가지고 logical shift operation을 구현하기 위해서 CIL 4번 한 후 AND MSK 함으로써 AC의 낮은 위치 4개를 0으로 만들게됨
그러면 BUN SH4 I 에서 I는 뭔가여?
BUN SH4 I에서 BUN은 점프명령어인데 뒤에 I(indirect)가 붙었으므로 SH4에 해당하는 주소번지로 점프하는것이 아닌 SH4 심볼의 메모리 주소번지에 저장된 값(SH4를 마치고 돌아갈 리턴주소)을 PC에 저장해 점프하게 됨