정수 곱셈, 나눗셈
정수의 곱셈은 mult rs, rt 로 나타낸다.
이 rs와 rt는 register을 뜻한다.
이렇게 곱셈을 수행하게 되면 hi와 lo에 값이 나누어져 저장된다.
이때에 lo와 hi 에는 32bit 씩 저장이 되는데, lo에서의 값이 넘치면 hi로 넘어가서 저장된다.
이때 저장된 값들을 따로 레지스터로 옮겨 주어야하는데, 이때 쓰는 방법은 mflo r, mfhi r 가 있는데, mflo는 definition register로 lo의 값을 옮기는 것이고, mfhi는 definition register로 hi의 값을 옮기는 것이다.
정수 나눗셈
정수의 나눗셈은 div rs, rt / divu rs, ri 를 활용한다.
이때에 도 곱셈에서의 hi와 lo가 사용되는데, hi에는 rs를 rt 로 나눈값이 들어가고, lo에는 rs를 rt로 나눈 값의 나머지가 들어간다.
이때에 도 hi와 lo의 값을 옮길 때에 위에서와 같이 mflo와 mfhi를 활용한다.
logical operations
logical operations에는 shift연산, and, or, not 연산이 있다.
shift 연산
1) shift left
이때의 표현식은 sll 으로 주어진 값을 왼쪽으로 옮기라는 의미이다.
ex) sll $s1, $s2, 10
이 는 $s2의 값을 왼쪽으로 10만큼옮긴 값을 $s1에 저장하라는 의미이다. 이때 옮기면서 새로 생기는 자리는 0으로 채운다.
이렇게 왼쪽으로 옮긴것의 결과 값은 2의 옮긴 수 만큼의 제곱을 곱한것과 같다.
2자리를 옮긴다면 결과값이 2 의 2제곱을 곱한것과 같은 방식이다.
2) shift right
이때의 표현식은 srl 으로 주어진 값을 오른쪽으로 옮기라는 의미이다.
ex) srl $s1, $s2, 10
이 는 $s2의 값을 오른쪽으로 10만큼옮긴 값을 $s1에 저장하라는 의미이다. 이때 옮기면서 새로 생기는 자리는 0으로 채운다.
이는 자리수 의 제곱 만큼을 나눈것과 같은 결과값이다.
and 연산
이때의 표현식은 and $s1, $s2, $s3 으로 주어진 register 값들을 and 연산, 논리곱 연산을 시행한다.
이때에도 상수 opearnd 를 받는 andi 연산 또한 존재한다.
or 연산
이때의 표현식은 or $s1, $s2, $s3 으로 주어진 register 값들을 or 연산, 논리합 연산을 시행한다.
이때에도 상수 opearnd 를 받는 ori 연산 또한 존재한다.
not 연산
이떄의 표현식은 not 으로 주어진 register 값에서 not 연산을 시행한다.
또한 nor 연산 또한 존재한다.
'컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조(05) (0) | 2022.09.20 |
---|---|
컴퓨터 구조 (04) (0) | 2022.09.16 |
컴퓨터 구조 (02) (0) | 2022.09.14 |
spim 활용 (0) | 2022.09.13 |
컴퓨터 구조 (01) (1) | 2022.09.13 |