피연산자

피연산자 개요

  • 연산자의 정의된 연산을 하기위하여 사용되는 레지스터나 상수, 레이블, 메모리주소 등을 뜻하는 말
  • 레지스터는 데이터를 저장하는 장치중 속도가 가장 빠란 장소이므로 일부 레지스터만 사용가능
  • 더 적은 레지스터를 필요로 하는 순서로 연산을 함으로써 더 많은 피연산자를 레지스터에 할당할 수 있게 된다.

피연산자 데이터 단위

mips 명령어(instruction) 및 레지스터는 32비트로 구성되어 있음

  • word : 32bit
  • half word : 16bit
  • byte : 8bit

연습문제

$s0 = f, $s1 = g, $s2=h, $s3 = i, $s4 = j

F = ( G + H ) - ( I + J )

-> MIPS로 변환

MIPS
add  $t0 $s1,$s2
add  $t1 $s3,$s4
sub  $s0 $t0,$t1

메모리 피연산자

  • 프로그래밍 언어에는 단순 변수가 아닌 자료형이 존재(구조체,배열...)
  • 레지스터는 소량의 데이터만 저장할 수 있기 때문에 나머지 데이터는 메모리(힙,스택)에 저장 후 주소에 접근하여 사용
  • 메모리와 레지스터간 데이터를 주고 받는 명령어를 데이터 전송 명령어 라고 한다.

적재 명령어

  • 메모리는 주소가 인덱스의 역할을 하는 일차원 구조
  • 메모리에서 레지스터로 데이터를 복사해 오는 데이터 전송 명령어를 적재(load) 라고 한다.
  • 적재 명령어는 연산자(lw) + 값을 저장할 레지스터 + 메모리 접근에 사용할 상수 및 레지스터로 구성
  • 4($s3) == (Memory address + 4)

image.png

명령어의 컴퓨터 내부표현

명령어 해석

  • 명령어도 높고 낮은 전기신호의 연속이므로, 숫자로 표현하는 것이 가능
  • 레지스터가 명령어 에서 참조 되기 때문에 레지스터 이름을 숫자로 매핑하는 규칙이 존재

image.png

image.png

어셈블리어의 기계어 변환

  • op : 명령어가 실행할 연산의 종류로서 연산자라고 한다.
  • rs : 첫번째 근원지 operand레지스터
  • rt : 두번째 근원지 operand 레지스터
  • rd : 목적지 레지스터, 연산결과가 기억됨
  • shamt : 자리이동(shift)량 shift명령어를 배우기 전까지 0으로 사용
  • funct: op 코드에 표시된 연산의 구체적인 종류 지정

image.png