[컴퓨터시스템구조] 16일차 - Multiplication program
만든 날짜: | 2018-11-06 오후 12:54 |
본 게시글은 수업들은 내용을 정리한 내용이며, 방문자 열람목적이 아닌 백업/기록용 게시글 입니다. 때문에 오타 및 잘못된 정보가 표기되어 있을 수 있습니다.
4일차 때 했던 문제 같이하기 (1을 세는 프로그램)
4일차 때 했던 문제 같이하기 (1을 세는 프로그램)
기본 컴퓨터로 곱셈을 프로그래밍해보자
전제조건: 8bit 짜리 양수 .
x(8bit)곱하기 y(8bit)
1은그대로, 0은 다 0.
p는 부분곱으로 처음에 0부터 시작된다. p의 마지막 값이 두수의 곱이 된다.
Double precision addition 배정밀도가산
AH(16bit) + AL(16bit)
+BH(16bit) + BL(16bit)
할건데
AL+BL하고 케리E를 AH에 더하고 다시 그걸 BH랑 더함
AND, CMA, CLA만 있으면 나머지 어떤 로직도 만들 수 있다.
or 만들기
Shift operations 만들기
- Logical shift: clearing(0) E-FF
- Right: CLE, CIR
- Left: CLE, CIL
- Arithmetic shift: sign bit problem (최상위 비트가 부호 비트일 때)
- Left: simpleCIL했을때, E가 부호비트(AC(1))과 일치하면 제대로된것. 일치하지않으면 수가 너무 커서 오버플로가 발생한 것이다.
- Right: sign bit remain unchanged
- CLE / clear E to 0
- SPA / skip if AC is pos.; E remains 0
- CME / AC is neg.; set E to 1
- CIR / circulate E and AC
서브루틴 ( Function ) : 여러 번 사용되는 공통된 명령어들.
- Subroutine linkage: (서브루틴 호출방법)
- Call (BSA) 돌아올 주소를 저장하고 서브루틴으로 분기
- Return (BUN Indirect) 다시 되돌아온다.
- Subroutine parameters & data linkage
- It is necessary for the subroutine to have accessto data from the calling program and to return results to that program
- (펑션을 불렀을 때 데이터를 주고받아야한다.계산 결과를 받거나 할 때...)2가지가 있다.
- Use registers: AC (전역 변수 개념을 사용한다.)
- Use the memory (메모리에 저장후 사용)
AC를 이용해서 데이터를 주고 받겠다.
X,Y의 맨 끝 4자리를 없앤다.
금요일엔 메모리를 사용해서 옮기는 것을 실습한다.
메모리
ex
누산기가 한개의 피연산자를 전송
리턴주소에는 두번째 피연산자의 수소가 들어있고,
ISZ해서 사용한다.(ISZ하고 다시 메인루틴으로 돌와야된다.)
복습 : 2018-11-24
[컴퓨터시스템구조] 16일차 - Multiplication program
Reviewed by Lifer
on
12/18/2018
Rating:
댓글 없음: