4. 2. [10] 프로그램 M의 줄 12는 “JMP *”인데, 여기서 *는
그 줄의 장소를 뜻한다. 이 자체로 보면 자신으로 점프하
는 명령이므로 무한루프가 될 것 같지만, 프로그램 M은
무한루프에 빠지지 않는다. 왜 그럴까?
5. 2. [10] 프로그램 M의 줄 12는 “JMP *”인데, 여기서 *는
그 줄의 장소를 뜻한다. 이 자체로 보면 자신으로 점프하
는 명령이므로 무한루프가 될 것 같지만, 프로그램 M은
무한루프에 빠지지 않는다. 왜 그럴까?
여기서 주소가 재설정됨
03줄이 실행되는 순간 이 값이 수정된다.
6. 3. [23] 프로그램 M과 함께 쓰인다고 할 때, 다음 프로
그램의 효과는 무엇인가?
(0)
(0)
프로그램 M 다음 프로그램(?)
7. 3. [23] 프로그램 M과 함께 쓰인다고 할 때, 다음 프로
그램의 효과는 무엇인가?
(0) 0번 디바이스에서 1001번지로 데이터 읽어 들임
(0) 0번 장치가 사용 중이면 제자리로 점프(=대기)
rI1 레지스터에 숫자 100(데이터 사이즈) 입력
MAXIMUM 서브루틴으로 점프.
1000+rI1번지의 값(마지막 데이터)을 rX에 로딩
최대값을
제일 끝으로 rA의 값(최대값)을 1000+rI1번지(마지막)에 저장
이동. rX의 값을 1000+rI2번지(최대값 있던 곳)에 저장
rI1 레지의 값을 하나 줄인다. (데이터 사이즈 축소)
rI1 레지의 값이 양수라면 1H로 이동.
1번 디바이스로 1001번지부터의 값을 출력
스토옵 ~
selection sort. ������(������2 )
8. 4. [25] 프로그램 P를 손으로 직접 어셈블해 볼 것. (생각
보다는 오래 걸리지 않을 것이다.) 기호적 프로그램에 해
당하는 실제의 수치적 메모리 내용은 무엇인가?
…교수님, 생각보다 오래 걸리던데요;;
9. 4. [25] 프로그램 P를 손으로 직접 어셈블해 볼 것.
OP(C) Addr ,I (F)
MIXAL : LDA 2000,2(0:3)
Addr I F C
Assembly :
+ 2000 2 3 8
기본 적으로 이런 절차가 50여 회 반복됩니다.
물론 그 외 다양한 추가 규칙이 등장하며
로케이션(Location)도 신경 써야겠죠.
11. 8. [24] 다음 프로그램이 하는 일은 무엇인가? (컴퓨터로
실행하지 말고 직접 손으로 풀어볼 것!)
초 rI1 <- 1
기 rI2 <- 0
화
rX <- ‘AAAAA’
Zero(0)출력
메 B rI2 : 출력 버퍼를 채울 때마다 증가.
인 (= 출력 데이터의 크기)
A ‘AAAAA’출력
처
리 rI1 : loop A를 돌 때마다 증가.
rI3 : rI1로 초기화 후 (2H),
출 이 값만큼 loop B를 반복한다.
C D
력
13. 9. [25] 장소 INST에는 하나의 MIX 명령에 해당하는 하
나의 MIX 워드가 들어있다. 그 워드가 유효한 C, ± AA, I,
F 필드를 가진다면 장소 GOOD으로, 아니면 BAD로 점프
하는 프로그램을 작성하라.
-> 메모리 블록의 데이터에 대해,
올바른 MIX 명령인지 판별하라는 소리.
14. ±AA I F C
I 필드 : 값이 6 이하이면 유효
C 필드 : 존재하는 값이면 (표 1.3.1-1) 유효
F 필드 : C필드에 따라 다르게 판단.
ex) C=7(MOVE)이면 F는 어떤 값이든 가능.
C=8(LDA)이면 F는 8L+R 형태여야 한다.
( 0 ≤ ������ ≤ ������ ≤ 5 )
±AA필드 : C가 메모리 주소를 요구하는 명령이고
I=0일 때에는 올바른 메모리 주소 (0~3999) 여야 한다.