검수요청.png검수요청.png

"명령어"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글 (DB 명령어)
잔글 (106.244.233.62(토론)의 편집을 rudgh01의 마지막 판으로 되돌림)
 
(사용자 2명의 중간 판 4개는 보이지 않습니다)
4번째 줄: 4번째 줄:
 
명령어는 컴퓨터에서 특정한 작업을 수행하기 위한 해석기의 역할을 하는 컴퓨터 [[프로그램]]을 가리킨다. 일반적으로 명령어는 셸과 같은 명령 줄 [[인터페이스]]의 하나이다.
 
명령어는 컴퓨터에서 특정한 작업을 수행하기 위한 해석기의 역할을 하는 컴퓨터 [[프로그램]]을 가리킨다. 일반적으로 명령어는 셸과 같은 명령 줄 [[인터페이스]]의 하나이다.
  
구체적으로, 명령어라는 용어는 컴퓨터 언어에서 쓰인다. 많은 프로그램들은 명령어의 기본 동작을 수정하는 플레그로 알려진 형식화된 변수를 허용한다. 반면 변수는 명령어가 실행하는 것을 서술한다. 자연어와 비교했을 때 플레그는 동사이며, 다른 [[변수]]는 목적어다.<ref name="위키1">명령어(컴퓨팅) 위키백과 - https://ko.wikipedia.org/wiki/%EB%AA%85%EB%A0%B9%EC%96%B4_(%EC%BB%B4%ED%93%A8%ED%8C%85)</ref>
+
구체적으로, 명령어라는 용어는 컴퓨터 언어에서 쓰인다. 많은 프로그램들은 명령어의 기본 동작을 수정하는 플레그로 알려진 형식화된 변수를 허용한다. 반면 변수는 명령어가 실행하는 것을 서술한다. 자연어와 비교했을 때 플레그는 동사이며, 다른 [[변수]]는 목적어다.
 +
 
 +
==명령어 사이클==
 +
CPU는 명령어 사이클을 반복해 프로그램을 실행하는 것으로 인출과 실행 단계로 이루어져있다.<ref name=명령어"> dheldh77, 〈[https://dheldh77.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EB%AA%85%EB%A0%B9%EC%96%B4Instruction (컴퓨터구조) 명령어(Instruction)]〉, 《티스토리》, 2020-07-13</ref>
 +
 
 +
===인출 단계===
 +
메모리에 저장된 명령어들을 읽어들이는 단계로 현재 실행할 명령어를 읽어 명령어 레지스터에 저장한다. 그리고 다음에 실행할 명령어를 읽어 프로그램 카운터에 저장한다.
 +
 
 +
===실행 단계===
 +
명령어 레지스터에 저장된 명령어를 실행하는 단계로 제어장치는 명령어를 해독하고 제어신호를 생성해 각 구성요소에 전달한다. 제어신호에 따라 ALU는 해당하는 연산을 수행하고 각 신호와 데이터는 내부버스를 통해 전달된다. 연산에 필요한 데이터와 명령어는 레지스터에 저장한다.
 +
 
 +
==명령어의 종류==
 +
명령어의 종류는 데이터 전달, 데이터 처리,프로그램 제어가 있다.
 +
 
 +
===데이터 전달===
 +
컴퓨터 구성요소 간 데이터를 전달한다. 오프코드, 소스 오퍼렌드, 데스티네이션 오퍼렌드로 구성되어 있으며 오프코드는 로드, 스토어, 무브, 인풋, 아웃풋 등이 있다.
 +
 
 +
===데이터 처리===
 +
데이터 처리는 레지스터 또는 메모리에 저장되어있는 데이터에 대한 산술/논리 연산으로 데이터 전달과 같은 형태로 구성되어 있다. 명령어의 종류에 따라서 소스 오퍼렌드가 두개 일 수 있으며 오프코드는 에드, 멀티, 엔드, 오아, 낫 등이 있다.<ref name=명령어"> dheldh77, 〈[https://dheldh77.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EB%AA%85%EB%A0%B9%EC%96%B4Instruction (컴퓨터구조) 명령어(Instruction)]〉, 《티스토리》, 2020-07-13</ref>
 +
 
 +
===프로그램 제어===
 +
프로그램 제어는 명령어의 실행 순서를 제어하고 프로그램 카운터의 값을 변경한다. 오프코드, 브런치 타켓 어드레스로 구성되어 있다. 분기의 종류에 따라 무조건 분기, 조건 분기, 서브루틴/함수호출, 리턴이 있다.
 +
 
 +
====무조건 분기====
 +
조건에 상관없이 프로그램 카운터 값을 분기 목적 주소로 변경하고 해당 명령어를 실행한다.
 +
 
 +
====조건 분기====
 +
조건에 따라 프로그램 카운터 값을 분기 목적 주소로 변경하고 해당 명령어를 실행한다. 조건에 만족하지 않을 경우에는 기존에 있던 프로그램 카운터가 가르치는 다음 명령어를 실행한다.
 +
 
 +
====서브루틴/함수호출====
 +
서브루틴 호출 시, 리턴 레지스터에 현재 주소를 저장하고 서브루틴 시작 주소를 프로그램 카운터에 저장한다.
 +
 
 +
====리턴====
 +
서브루틴의 실행이 완료되었을 때, 리턴 레지스터에 저장된 되돌아갈 주소값으로 프로그램 카운터 값을 변경한 뒤 명령어를 실행한다. 오프코드로만 구성되어 있다.<ref name=명령어"> dheldh77, 〈[https://dheldh77.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EB%AA%85%EB%A0%B9%EC%96%B4Instruction (컴퓨터구조) 명령어(Instruction)]〉, 《티스토리》, 2020-07-13</ref>
 +
 
 +
==명령어의 구성요소==
 +
명령어의 구성요소는 동작코드, 피연산자, 분기 목적지 주소가 있다.
 +
 
 +
===동작코드===
 +
CPU가 수행할 동작들이며 에드, 멀티, 로드 등이 있다.
 +
 
 +
===피연산자===
 +
CPU가 명령어를 수행할 대상으로 오퍼렌드의 대상은 레지스터, 메인 메모리, I/O 유닛이 될 수 있다. 소프 오퍼렌드와 데스티네이션 오퍼렌드가 있다. 소스 오퍼렌드는 동작코드가 처리할 대상이며 데스티네이션 오퍼렌드는 처리 결과를 저장할 장소이다.<ref name=명령어"> dheldh77, 〈[https://dheldh77.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EB%AA%85%EB%A0%B9%EC%96%B4Instruction (컴퓨터구조) 명령어(Instruction)]〉, 《티스토리》, 2020-07-13</ref>
 +
 
 +
===분기 목적지 주소===
 +
분기 목적지 주소는 분기 명령을 수행할 때, 다음 처리할 명령어의 주소를 말한다.<ref name=명령어"> dheldh77, 〈[https://dheldh77.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EB%AA%85%EB%A0%B9%EC%96%B4Instruction (컴퓨터구조) 명령어(Instruction)]〉, 《티스토리》, 2020-07-13</ref>
  
 
==리눅스 명령어==
 
==리눅스 명령어==
16번째 줄: 61번째 줄:
  
 
==DB 명령어==
 
==DB 명령어==
[[DB 명령어]]는 [[DBMS]]를 활용할 때 사용하는 명령어이다. [[데이터베이스]]중 가장 널리 사용되고 있는 것은 오라클에서 제작한 오라클 데이터베이스이며 현재 유닉스 환경에서 가장 널리 사용되고 있는 [[RDBMS]]이다. 그 밖에 [[마이에스큐엘]], [[엠에스에스큐엘]], [[포스트그레스큐엘]], [[몽고디비]], [[디비투]], [[에스큐엘라이트]], [[마리아디비]] 등이 있다.
+
[[DB 명령어]]는 [[DBMS]]를 활용할 때 사용하는 명령어이다. [[데이터베이스]]중 가장 널리 사용되고 있는 것은 오라클에서 제작한 [[오라클]] 데이터베이스이며 현재 [[유닉스]] 환경에서 가장 널리 사용되고 있는 [[RDBMS]]이다. 그 밖에 [[마이에스큐엘]], [[엠에스에스큐엘]], [[포스트그레스큐엘]], [[몽고디비]], [[디비투]], [[에스큐엘라이트]], [[마리아디비]] 등이 있다.
  
 
{{각주}}
 
{{각주}}
26번째 줄: 71번째 줄:
 
* MCSONG, 〈[http://sjava.net/2008/02/java-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%9D%98-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC/ JAVA 명령어의 옵션 정리]〉, 《개인블로그》, 2008-02-10
 
* MCSONG, 〈[http://sjava.net/2008/02/java-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%9D%98-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC/ JAVA 명령어의 옵션 정리]〉, 《개인블로그》, 2008-02-10
 
* KyuHyuk Lee, 〈[https://kyuhyuk.kr/article/linux/2020/01/22/Linux-Command-Line 리눅스 기본 명령어]〉, 《개인블로그》, 2020-07-22<
 
* KyuHyuk Lee, 〈[https://kyuhyuk.kr/article/linux/2020/01/22/Linux-Command-Line 리눅스 기본 명령어]〉, 《개인블로그》, 2020-07-22<
 +
* dheldh77, 〈[https://dheldh77.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EB%AA%85%EB%A0%B9%EC%96%B4Instruction (컴퓨터구조) 명령어(Instruction)]〉, 《티스토리》, 2020-07-13
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2023년 4월 25일 (화) 13:41 기준 최신판

명령어(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. 1.0 1.1 1.2 1.3 1.4 dheldh77, 〈(컴퓨터구조) 명령어(Instruction)〉, 《티스토리》, 2020-07-13
  2. KyuHyuk Lee, 〈리눅스 기본 명령어〉, 《개인블로그》, 2020-07-22
  3. MCSONG, 〈JAVA 명령어의 옵션 정리〉, 《개인블로그》, 2008-02-10

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 명령어 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.