명령어
명령어(command)란 프로그램 실행을 위해 사용자가 입력하는 언어를 말한다. 리눅스 명령어(Linux Command), 윈도우 명령어(Windows Command), 도스 명령어(DOS Command), 유닉스 명령어(UNIX Command), C 명령어, 자바 명령어, DB 명령어 등이 있다.
목차
개요
명령어는 컴퓨터에서 특정한 작업을 수행하기 위한 해석기의 역할을 하는 컴퓨터 프로그램을 가리킨다. 일반적으로 명령어는 셸과 같은 명령 줄 인터페이스의 하나이다.
구체적으로, 명령어라는 용어는 컴퓨터 언어에서 쓰인다. 많은 프로그램들은 명령어의 기본 동작을 수정하는 플레그로 알려진 형식화된 변수를 허용한다. 반면 변수는 명령어가 실행하는 것을 서술한다. 자연어와 비교했을 때 플레그는 동사이며, 다른 변수는 목적어다.
명령어 사이클
CPU는 명령어 사이클을 반복해 프로그램을 실행하는 것으로 인출과 실행 단계로 이루어져있다.[1]
인출 단계
메모리에 저장된 명령어들을 읽어들이는 단계로 현재 실행할 명령어를 읽어 명령어 레지스터에 저장한다. 그리고 다음에 실행할 명령어를 읽어 프로그램 카운터에 저장한다.
실행 단계
명령어 레지스터에 저장된 명령어를 실행하는 단계로 제어장치는 명령어를 해독하고 제어신호를 생성해 각 구성요소에 전달한다. 제어신호에 따라 ALU는 해당하는 연산을 수행하고 각 신호와 데이터는 내부버스를 통해 전달된다. 연산에 필요한 데이터와 명령어는 레지스터에 저장한다.
명령어의 종류
명령어의 종류는 데이터 전달, 데이터 처리,프로그램 제어가 있다.
데이터 전달
컴퓨터 구성요소 간 데이터를 전달한다. 오프코드, 소스 오퍼렌드, 데스티네이션 오퍼렌드로 구성되어 있으며 오프코드는 로드, 스토어, 무브, 인풋, 아웃풋 등이 있다.
데이터 처리
데이터 처리는 레지스터 또는 메모리에 저장되어있는 데이터에 대한 산술/논리 연산으로 데이터 전달과 같은 형태로 구성되어 있다. 명령어의 종류에 따라서 소스 오퍼렌드가 두개 일 수 있으며 오프코드는 에드, 멀티, 엔드, 오아, 낫 등이 있다.[1]
프로그램 제어
프로그램 제어는 명령어의 실행 순서를 제어하고 프로그램 카운터의 값을 변경한다. 오프코드, 브런치 타켓 어드레스로 구성되어 있다. 분기의 종류에 따라 무조건 분기, 조건 분기, 서브루틴/함수호출, 리턴이 있다.
무조건 분기
조건에 상관없이 프로그램 카운터 값을 분기 목적 주소로 변경하고 해당 명령어를 실행한다.
조건 분기
조건에 따라 프로그램 카운터 값을 분기 목적 주소로 변경하고 해당 명령어를 실행한다. 조건에 만족하지 않을 경우에는 기존에 있던 프로그램 카운터가 가르치는 다음 명령어를 실행한다.
서브루틴/함수호출
서브루틴 호출 시, 리턴 레지스터에 현재 주소를 저장하고 서브루틴 시작 주소를 프로그램 카운터에 저장한다.
리턴
서브루틴의 실행이 완료되었을 때, 리턴 레지스터에 저장된 되돌아갈 주소값으로 프로그램 카운터 값을 변경한 뒤 명령어를 실행한다. 오프코드로만 구성되어 있다.[1]
명령어의 구성요소
명령어의 구성요소는 동작코드, 피연산자, 분기 목적지 주소가 있다.
동작코드
CPU가 수행할 동작들이며 에드, 멀티, 로드 등이 있다.
피연산자
CPU가 명령어를 수행할 대상으로 오퍼렌드의 대상은 레지스터, 메인 메모리, I/O 유닛이 될 수 있다. 소프 오퍼렌드와 데스티네이션 오퍼렌드가 있다. 소스 오퍼렌드는 동작코드가 처리할 대상이며 데스티네이션 오퍼렌드는 처리 결과를 저장할 장소이다.[1]
분기 목적지 주소
분기 목적지 주소는 분기 명령을 수행할 때, 다음 처리할 명령어의 주소를 말한다.[1]
리눅스 명령어
리눅스 명령어(Linux Command)는 리눅스(Linux) 운영체제에서 사용하는 명령어이다. 리눅스에서 쉘(shell)은 기본적으로 키보드에서 명령을 가져와 운영체제로 보내 수행하는 프로그램이다. 리눅스 GUI 환경에서 터미널이나 콘솔과 같은 쉘 프로그램들은 배쉬를 사용하는데 대부분 명령어를 활용한다.[2]
윈도우 명령어
윈도우 명령어(Windows Command)는 윈도우(Windows) 실행창과 쉘 프로그램에서 작동하는 명령어이다.
자바 명령어
자바 명령어(Java Command)는 자바 프로그램(Java Application)을 실행시켜 주는 명령어이다.[3]
DB 명령어
DB 명령어는 DBMS를 활용할 때 사용하는 명령어이다. 데이터베이스중 가장 널리 사용되고 있는 것은 오라클에서 제작한 오라클 데이터베이스이며 현재 유닉스 환경에서 가장 널리 사용되고 있는 RDBMS이다. 그 밖에 마이에스큐엘, 엠에스에스큐엘, 포스트그레스큐엘, 몽고디비, 디비투, 에스큐엘라이트, 마리아디비 등이 있다.
각주
- ↑ 1.0 1.1 1.2 1.3 1.4 dheldh77, 〈(컴퓨터구조) 명령어(Instruction)〉, 《티스토리》, 2020-07-13
- ↑ KyuHyuk Lee, 〈리눅스 기본 명령어〉, 《개인블로그》, 2020-07-22
- ↑ MCSONG, 〈JAVA 명령어의 옵션 정리〉, 《개인블로그》, 2008-02-10
참고자료
- 명령어(컴퓨팅) 위키백과 - https://ko.wikipedia.org/wiki/%EB%AA%85%EB%A0%B9%EC%96%B4_(%EC%BB%B4%ED%93%A8%ED%8C%85)
- IT게임Blog, 〈리눅스 명령어 모음 BEST 50 초보자 및 전문가용〉, 《도라가이드》
- boolean, 〈Windows-자주쓰는 CMD DOS 명령어〉, 《티스토리》, 2016-03-19
- MCSONG, 〈JAVA 명령어의 옵션 정리〉, 《개인블로그》, 2008-02-10
- KyuHyuk Lee, 〈리눅스 기본 명령어〉, 《개인블로그》, 2020-07-22<
- dheldh77, 〈(컴퓨터구조) 명령어(Instruction)〉, 《티스토리》, 2020-07-13
같이 보기