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