본문 바로가기
컴퓨터시스템구조

[컴퓨터시스템구조] 07. MIPS 논리 연산자(sll, srl, and, or, nor)

by 파스텔코랄 2023. 10. 14.

논리 연산자

연산자 C MIPS
Shift Left << sll
Shift Right >> srl
Bitwise AND & and, andi
Bitwise OR | or, ori
Bitwise NOT ~ nor

 


 

Shift 연산자

R-포맷

op rs rt rd shamt funct
6비트 5비트 5비트 5비트 5비트 6비트
  • shamt : 얼마나 많은 위치를 이동할지
  • Shift left logical (sll)
    • 왼쪽으로 시프트하고 0비트로 채운다.
    • i만큼 sll하면 2^i 만큼 곱한다.
  • Shift right logical (srl)
    • 오른쪽으로 시프트하고 0비트로 채운다,.
    • i만큼 srl하면 2^i 만큼 나눈다. (unsigned 일때만)

 


 

AND 연산자

  • 단어의 비트를 마스크하는 데 유용
    • 일부 비트를 선택하고 다른 비트를 0으로 지운다.
    • 둘다 1일때만 1

 

AND 연산자 예제

and $t0, $t1, $t2

 

$t2 0000 0000 0000 0000 0000 1101 1100 0000
$t1 0000 0000 0000 0000 0011 1100 0000 0000
$t0 0000 0000 0000 0000 0000 1100 0000 0000

 


 

OR 연산자

  • 단어에 비트를 포함하는 데 유용
    • 일부 비트를 1로 설정하고 다른 비트는 변경하지 않고 그대로 둔다.

 

OR 연산자 예제

or $t0, $t1, $t2

 

$t2 0000 0000 0000 0000 0000 1101 1100 0000
$t1 0000 0000 0000 0000 0011 1100 0000 0000
$t0 0000 0000 0000 0000 0011 1101 1100 0000

 


 

NOR 연산자

  • 단어의 비트를 반전시키는 데 유용
    • 0을 1로, 1을 0으로 변경
  • MIPS에는 NOR 3개 피연산자 명령어가 있다.
    • a NOR b == NOT ( a OR b )

 

NOR 연산자 예제

nor $t0, $t1, $zero

 

$t1 0000 0000 0000 0000 0011 1100 0000 0000
$t0 1111 1111 1111 1111 1100 0011 1111 1111

댓글