JAMONGPROJECT

[DAY29] 컴퓨터시스템 개요 본문

Challenge/FASTCAMPUS 30일 챌린지

[DAY29] 컴퓨터시스템 개요

JAMONGPROJECT 2023. 3. 20. 16:04


 

프로그래밍 언어란?

 

프로그래밍 언어는 컴퓨터에게 명령이나 연산 등 사람이 원하는 작업을 컴퓨터가 수행할 수 있게 기계와 의사소통(지시) 할 수 있도록 해주는 언어

 

기계어란?

 

컴퓨터가 이해할 수 있는 언어. 0과 1로 구성되어있으며 각 하드웨어마다 기계어가 다르다.

 

 

어셈블리어란?

 

어셈블리어(assembly language)는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어다.

전류가 흐른다 그렇지 않다로 구성되는 0과 1의 이진수로 프로그램을 하는 기계어는 인간의 관점에서는 컴퓨터가 바로 읽을 수 있다는 점만 빼면 장점이 없는 언어이기 때문에 이를 보완하기 위해 나온 언어가 어셈블리어다.

기계어와 명령어가 1:1로 대응되는 단어들로 구성되어 있다.

고급언어는 컴파일하는 시간이 오래 걸리는 단점이 있는 반면 저급 언어는 컴퓨터와 가까운 언어이기 때문에 컴파일을 해도 간단한 명령으로 실행돼서 실행 속도가 굉장히 빠르다.

하지만 저급 언어는 배우기가 어렵고 유지보수가 힘들다는 이유로 특수한 경우를 제외하고는 사용되지 않고 있다.

 

 

명령어 형식

 

명령어 방식
명령어는 명령부(OP Code + Mode)와 자료부(주소필드, Operand)로 구성합니다.
이 중에 자료부(Operand 부)에 올 수 있는 개수에 따라 명령어 방식을 구분합니다.
0주소 명령어(0 Address Instruction)
1주소 명령어(1 Address Instruction)
2주소 명령어(2 Address Instruction)
3주소 명령어(3 Address Instruction)

 

0주소 명령어(0 Address Instruction)
OP Code 부만 있고 주소를 지정하는 자료부(Operand 부)가 없는 명령어
모든 연산은 Stack 메모리의 TOP(Stack 포인터)이 가리키는 Operand를 이용하여 명령을 수행합니다.
스택 기계(Stack Machine)라고 부릅니다.
명령 수행 시간이 짧고 기억 공간 효율이 높습니다.
Postfix 방식으로 수식을 표현해야 합니다.
피연산자는 PUSH, 연산자를 만나면 연산에 사용할 피연산자를 POP한 후에 연산 결과를 PUSH합니다.

 

1주소 명령어(1 Address Instruction)
주소를 지정하는 자료부(Operand )가 1개 있습니다.
누산기(AC, Accumulator)를 이용하여 처리하며 수행 결과도 누산기에 저장합니다.

 

2주소 명령어(2 Address Instruction)
주소를 지정하는 자료부(Operand )가 2개 있습니다.
가장 일반적인 명령어 방식입니다.
실행 속도가 빠르고 기억 장소 효율이 좋습니다.
수행 결과를 기억장치에 저장하고 중앙처리장치에도 남아 있어서 결과를 테스트할 때 시간을 절약할 수 있습니다.
전체 프로그램 길이가 길어지는 단점이 있습니다.
연산 결과를 한 쪽에 저장해야 해서 한쪽의 자료가 사라집니다.

 

3주소 명령어(3 Address Instruction)
주소를 지정하는 자료부(Operand )가 3개 있습니다.
연산 결과를 한 영역을 사용하여 원래의 자료가 사라지지 않습니다.
프로그램 길이를 짧게 할 수 있습니다.
명령 인출에 필요한 주기억장치 접근 횟수가 적습니다.
수행 시간이 길어집니다.


 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

http://bit.ly/3Y34pE0

 

#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #오공완

#한번에끝내는컴퓨터공학전공필수&인공지능심화초격차패키지Online

'Challenge > FASTCAMPUS 30일 챌린지' 카테고리의 다른 글

[DAY30] 컴퓨터시스템 개요  (0) 2023.03.21
[DAY28] 컴퓨터시스템 개요  (0) 2023.03.19
[DAY27] REST API와 FLASK  (0) 2023.03.18
[DAY26] Rest API와 Flask  (0) 2023.03.17
[DAY25] numpy와 pandas  (0) 2023.03.16
Comments