티스토리 뷰

어셈블리어는 무엇인가?

  어셈블리 언어란 컴퓨터가 직접 해석할 수 있는 기계어에 1대 1로 대응하는 프로그래밍 언어를 말합니다. 어셈블리 언어는 일반적으로 '저급 언어'라 불리며 CPU의 종류에 따라 기술방법이나 문법이 다르기 때문에 인간에게는 조금 취급하기 어렵지만 하나의 CPU에 특화된 사양은 속도가 요구되는 상황에서 위력을 발휘합니다. 한편, C언어나 JAVA 등 프로그래밍 언어는 인간이 개발하기 쉽도록 개량된 것으로, '고급언어'라고 불립니다. 고급 언어는 CPU의 종류에 관계없이 같은 문법으로 개발할 수 있다는 점이 장점입니다.

어셈블리 언어의 목적

 어셈블리 언어의 목적은 기계어를 인간이 이해하기 쉬운 형태로 바꾸는 것입니다.기계어는, 덧셈하는 명령이나, 데이터를 메모리로부터 로드하는 명령 등, 하나의 명령으로 할 수 있는 동작이 매우 단순한 것이 특징으로, 인간이 이해하기 어려운 숫자의 나열로 기술되어 있습니다. 어셈블리 언어는, 이러한 기계어의 덧셈이나 로드라고 하는 기능에 대해서 단순한 숫자에서는 알기 어렵기 때문에, 알파벳으로 이름을 붙인 것이다,라고 하는 인식으로 문제없습니다.

어셈블이나 어셈블러와의 차이점

 '어셈블'은 니모닉을 기계어로 변환하는 동작 그 자체를 말하며, '어셈블러'란 니모닉을 기계어로 변환하는 프로그램을 말합니다. 니모닉은 인간이 쉽게 이해할 수 있도록 기계어에 붙여진 이름을 말합니다. 예를 들어 'bne', 'bnr' 이런 식으로 알파벳 세 글자로 이루어진 경우가 많습니다. 습관으로서 어셈블리 언어 자체를 '어셈블러 언어'나 단순히 '어셈블러'라고 부르는 경우가 있으며 엄밀한 말의 의미로서 해당되지 않는 경우도 있다는 점에 주의가 필요합니다.

 

어셈블리 언어 입문자가 배워야 할 7가지 지식

어셈블리 언어의 학습에는, 이하의 7가지 사항에 임하는 것이 중요합니다. 어셈블리 언어의 학습은 니모닉의 종류를 익히는 것도 중요하지만 컴퓨터의 연산방법이나 하드웨어의 구조를 이해하는 것에서부터 시작됩니다.

 

1. 프로그래밍 어셈블리 언어는 어떻게 프로그래밍할 것인지를 배우는 것이 중요합니다.어셈블리 입문자는 어셈블리 언어 참고서를 사용하여 간단한 프로그램을 짜보는 것부터 시작하는 것이 좋습니다. 그런 다음 짠 프로그램을 실행하고 동작을 확인합니다. 또 프로그램을 조금 바꿔서 동작을 시켜보는 등 생각하는 문턱을 점차 올려가면서 익숙해지길 권해합니다. 학습해야 할 점

2. CPU 구조 입문자가 어셈블리 언어로 프로그래밍을 할 경우 컴퓨터 구조를 알아야 합니다. 특히 CPU와 메모리의 관계를 이해하는 것이 중요합니다. 어셈블리 언어가 고급 언어와 다른 점은 메모리에서 CPU로 데이터를 로드하는 작업을 해야 한다는 점입니다. 그리고 로드한 데이터를 가공하여 다시 메모리로 되돌리는 흐름을 반복합니다. 입문자가 어셈블리 언어를 다룰 경우 근본적인 컴퓨터 작동 원리를 이해해야 합니다.

3. 디버깅 관련 지식 디버깅을 통해 프로그램의 문제점을 찾을 수 있는 힘이 중요합니다. 디버깅은 프로그램을 실행하여 문제를 일으키고 있는 기술을 찾는 작업입니다. 디버깅에서 이용되는 분할통치 법에서는 프로그램에서 어느 행까지 정상적으로 동작하고 어느 행부터 이상이 되는지 데이터를 확인하면서 문제가 있는 곳을 알아냅니다.「ARM」 에디터나, 기본 정보기술자 시험에서 출제되는 「CASL Ⅱ」의 시뮬레이터라면, 어셈블리 언어를 배우는 데 있어서 빠뜨릴 수 없는 디버그 기능이 갖추어져 있기 때문에, 입문자에게는 특히 추천할 수 있습니다. 학습할 것

4. 컴퓨터 연산 방법에 대한 지식 입문자는 어셈블리 언어를 배우기 전에 컴퓨터 연산 방법에 대해 아는 것이 중요합니다. 어셈블리 언어로 프로그램을 짤 때 2진수나 16진수의 개념이나 시프트 연산이나 논리 연산을 많이 사용하기 때문에 컴퓨터의 기초로서 알아둘 필요가 있습니다. 먼저 입문자는 이러한 계산 방법에 익숙해진 후에 프로그래밍을 시작하면 좌절하기 어려울 것입니다. 학습할 것

5. 논리회로에 대한 지식 어셈블리 언어로 하드웨어를 개발하는 경우, 논리회로에 대한 지식이 있는 것이 바람직합니다. 논리회로는, 「AND」나 「OR」, 「NOT」라고 하는 논리 연산에 근거해 하드웨어를 설계하기 위한 부품입니다. 입문에서 어셈블리 언어를 배우는 것뿐이라면, 필수는 아니지만, 이 회로의 바탕이 되어 있는 논리 연산에 대해서는 이해할 필요가 있습니다. 왜냐하면 많은 어셈블리 언어에는 논리 연산을 하기 위한 명령이 준비되어 있어 개발 시 사용하게 되기 때문입니다. 학습할 것

6. 플로우 차트 쓰는 법입니다. 프로그래밍에서 중요한 것은 실현하고 싶은 기능을 어떻게 설계하면 좋을 것인가를 생각하는 것입니다. 프로그램을 작성하기 전에 어떤 소프트웨어를 만들고 싶은지를 살펴야 합니다. 그리고 기능의 큰 틀이 정해지면 '상세 설계'라고 하는 공정으로 넘어갑니다. 상세설계에서는 사용하는 프로그래밍 언어로 어떤 처리를 조합하면 좋을지 생각하게 되며, 이때 플로우 차트를 사용합니다. 학습해야 할 것

7. 코드 읽기에 익숙해집니다. 코드 리딩은 다른 사람이 기술한 프로그래밍 코드를 읽는 것을 말합니다. 다른 사람이 만든 프로그램을 읽는 것은 매우 난도가 높아서 개발자의 의도를 코드에서 읽을 수 있으려면 어느 정도의 경험이 필요합니다. 코드 리딩을 할 수 있게 되면 프로그래머로서 일단락되었다고 해도 엔지니어로서 활약할 수 있을 것입니다. 입문한 직후로는 프로그래밍은 어렵다고 느끼지만, 손을 움직이는 사이에 익숙해지는 것이므로 끈기 있게 임합시다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함