전자계산기 보고서
곱셈/나눗셈, BCD 연산
곱셈 알고리즘
2개의 숫자를 곱하는 프로그램을 생각해보면, 프로그램을 간단히 아히 귀해 부호비트를 무시하고 양수만을 가정한다. 2개의 2진수는 8비트 이하로서 그들의 곱은 16비트를 초과할 수 없다고 가정하고, 나중에 부호가 있는 경우와 16비트 숫자들에 대한 경우로 확장시켜 보기로 하자.
아래 그림 1과 같이 곱셈과정은 승수 Y의 비트들을 검사하여 그것이 1일 경우에 피승수 X를 더하는 과정으로 구서오디는데, Y비트 검사시마다 X는 왼쪽으로 한비트씩 Shift된다. 한 번에 두 개의 숫자만으로 더할 수 있으므로 중간합을 저장하기 위하여 P를 따로 마련한다. 그 중간합을 partial product라고 하며, 이것은 처음에 0에서 시자고딘다. 피승수 X는 승수 Y의 각 비트 중에서 1인 경우만 P에 더해지고, 각 비트를 체크할 때마다 X값은 왼쪽으로 시프트 된다. 따라서 X값은 왼쪽으로 시프트된다. 따라서, P의 마지막 값이 두수의 고비 된다.
[그림 1]
그림 1의 흐름도는 곱셈 동작의 프로그래밍에 대한 단계적 과정을 보여준다. 프로그램은 여덟번 되풀이하는 루프를 갖고 있고, 처음에 X는 피승수, Y는 승수를 나타내며, 카운터 CTR은 -8에 시트되고 P는 0에 세트된다.
.... |