Reverse-substract and skip if borrow(RSSB; 역뺄셈 뒤 빌림시 건너뛰기)
RSSB는 subleq, move 등과 함께 OISC(원 인스트럭션 셋 컴퓨터)를 위한 단일 연산자 중 하나이다.
1. 누산기에서 피연산자에 의해 지정된 주소의 값을 뺀다.
2. 그 차를 누산기와 피연산자에 의해 지정된 주소 모두에 저장한다.
3. 빌림이 발생했는지(즉, 계산 전의 누산기의 값이 피연산자에 의해 지정된 주소의 값보다 작았는지) 검사한다.
4. 만약 빌림이 발생했다면, 다음 인스트럭션(정확하게 말하면 피연산자)을 건너뛴다.
명령 실행 주기:
[레지스터] A, N, MAR
1. 프로그램 계수기에 의해 지정된 현재 인스트럭션(=피연산자)을 메모리 주소 레지스터(MAR)로 불러온다(fetch).
2. 프로그램 계수기에 1을 더한다.
3. MAR이 가리키는 데이터를 N에 저장한다.
4. 실제 연산 수행 (A = N - A)
5. MAR이 가리키는 주소에 A를 저장한다.
6. 빌림이 발생했는지 검사하고, 프로그램 계수기에 1을 더한다.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
재밌어 보이는 군요.
재밌어 보이는 군요. 에물레이터를 만들어서 돌려봐야겠습니다.
- CN의 낙서장 / HanIRC:#CN
- 죠커's blog / HanIRC:#CN
RSSB가 흥미로워서
RSSB가 흥미로워서 대충 조사해 보았습니다...
Reverse-substract and skip if borrow(RSSB; 역뺄셈 뒤 빌림시 건너뛰기)
RSSB는 subleq, move 등과 함께 OISC(원 인스트럭션 셋 컴퓨터)를 위한 단일 연산자 중 하나이다.
1. 누산기에서 피연산자에 의해 지정된 주소의 값을 뺀다.
2. 그 차를 누산기와 피연산자에 의해 지정된 주소 모두에 저장한다.
3. 빌림이 발생했는지(즉, 계산 전의 누산기의 값이 피연산자에 의해 지정된 주소의 값보다 작았는지) 검사한다.
4. 만약 빌림이 발생했다면, 다음 인스트럭션(정확하게 말하면 피연산자)을 건너뛴다.
명령 실행 주기:
[레지스터] A, N, MAR
1. 프로그램 계수기에 의해 지정된 현재 인스트럭션(=피연산자)을 메모리 주소 레지스터(MAR)로 불러온다(fetch).
2. 프로그램 계수기에 1을 더한다.
3. MAR이 가리키는 데이터를 N에 저장한다.
4. 실제 연산 수행 (A = N - A)
5. MAR이 가리키는 주소에 A를 저장한다.
6. 빌림이 발생했는지 검사하고, 프로그램 계수기에 1을 더한다.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.