운영체제(OS)/keyword

(Project2-User Programs) rax 레지스터(rax register)

스탠딩 2023. 12. 15. 14:48

RAX 레지스터는 x86 아키텍처에서의 64비트 레지스터 중 하나로, Accumulator(누산기)의 약어이다. 이 레지스터는 다양한 목적으로 사용되며, 주로 산술 및 논리 연산, 데이터의 저장과 이동 등에 활용된다. RAX 레지스터는 또한 함수의 반환값을 저장하는 데에도 사용되어 함수 호출에서 중요한 역할을 한다.

출처 : https://hackmd.io/@paolieri/x86_64

용도와 기능

  1. 산술 및 논리 연산: RAX 레지스터는 산술 및 논리 연산을 수행하는 데에 사용된다. 연산 결과는 RAX에 저장되어 다음 명령어에서 활용될 수 있다.
  2. 데이터의 임시 저장: 프로그램이 실행되는 동안 발생하는 임시 데이터나 계산 중인 중간 값 등을 저장하는 데에 사용된다.
  3. 함수 호출과 반환값 저장: 함수 호출 시, 인자 전달과 반환값 저장에 사용된다. 특히, 64비트 아키텍처에서는 함수 호출 시 RAX 레지스터를 통해 반환값을 전달한다. (시스템 콜에서 반환값이 있는 경우 RAX를 통해 전달한다.)

예시 코드

assemblyCopy code
section .data
    ; 데이터 섹션

section .text
    global _start

_start:
    ; 프로그램 시작 지점
    mov rax, 10       ; RAX 레지스터에 값 10을 저장
    add rax, 5        ; RAX에 5를 더함
    ; 이후 RAX 값은 15

    ; 여기서부터는 추가적인 명령어 작성 가능

위의 어셈블리 코드에서 볼 수 있듯이, RAX 레지스터는 mov 명령어를 통해 값을 할당받고, 다른 명령어를 통해 값을 변경하거나 활용할 수 있다.