[컴퓨터구조] 명령어

Local Gaji·2023년 6월 15일
0

컴퓨터구조

목록 보기
2/9

프로그래밍 소스코드(고급언어)는 컴퓨터 내부에서 명령어로 변환됨.

🎈 언어의 종류

저급언어

0과 1로 이루어진 명령어, 사람이 읽을 수 있게 표현된 어셈블리어

고급언어를 저급언어로 변경할 때 컴파일 방식과 인터프리트 방식이 사용된다.
고급언어들은 이 변환 병식에 따라 컴파일 언어와 인터프리터 언어로 나눌 수 있다

컴파일

소스 코드 전체를 목적 코드(저급 언어)로 변환하는 방식
컴파일러는 소스 코드 전체에 오류가 없는지 살펴본 후 컴파일한다.
따라서 오류가 하나라도 있으면 컴파일을 할수 없음

ex) C언어

목적코드로 이루어진 목적 파일은 링킹 과정을 거쳐 실행파일이 된다.
링킹 : A파일 소스코드에서 B파일 소스코드를 가져다 썼을때, 두 파일의 목적 파일을 연결해주는 것

인터프리트

소스코드가 한 줄씩 차례로 변환되며 실행됨
소스코드 N번째 줄에 오류가 있어도 N-1번째 줄까지는 실행됨
일반적으로 컴파일 언어보다 실행 속도가 느리다

🎈 명령어의 구조

연산 코드 (연산자)   오퍼랜드 (피연산자)    

연산 코드오퍼랜드오퍼랜드
명령어1더하라메모리 1번지 값과메모리 2번지 값을
명령어2저장하라10을메모리 3번지 값에

오퍼랜드

연산에 사용할 데이터 (또는 데이터의 주소)
주로 메모리 주소나 레지스터 주소가 담기므로 주소필드 라고 부르기도 함
명령어 안에 오퍼랜드는 N (0 <= N) 개가 올 수 있음 (N-주소 명령어)

연산 코드

명령어가 수행할 연산

  1. 데이터 전송 : move, store, load, push, pop
  2. 산술/논리 연산 : add/sub/mul/div, increment, decrement, and/or/not, compare
  3. 제어 흐름 변경 : jump, conditional jump, halt, call(함수호출), return
  4. 입출력 제어 : read, write, start io, test io

🎈 주소를 지정하는 방식

데이터 대신, 데이터의 유효주소를 오퍼랜드에 포함하면 오퍼랜드의 길이를 줄일 수 있다.

방식특징
즉시 주소 지정연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시
오퍼랜드 길이가 늘어나 갯수가 줄어듦, 속도는 빨라짐
직접 주소 지정유효 주소를 직접 명시
오퍼랜드 갯수가 많다면 여전히 한계 존재
간접 주소 지정유효 주소의 주소를 명시
표현할 수 있는 유효 주소의 범위가 넓어짐, 두번의 메모리 접근이 필요해서 느림
레지스터 주소 지정데이터를 저장한 레지스터를 오퍼랜드 필드에 명시
메모리에 접근하는 것 보다 CPU 내부의 레지스터에 접근하는게 빠름
레지스터 간접 주소 지정데이터의 (메모리)유효주소를 저장한 레지스터(CPU)를 명시
메모리에 접근하는 횟수가 1번이므로 간접주소지정 보다 빠름

0개의 댓글