프로그래밍언어/리버싱 입문
어셈블리언어의 특징
Great king
2019. 3. 19. 16:16
# 프로그래밍 절차
# 프로그래밍 언어
A = A + 1 (고급언어) |
변수 A에 1을 더한다. |
MOV AX, A ADD AX, 1 (저급언어) MOV A, AX |
변수 A를 AX 레지스터로 가져온다 AX 레지스터의 내용에 1을 더한다. AX 레스스터의 내용을 A에 저장한다. |
10100001 00000010 00000000 00000001 00000000 00000000 (기계어) 10100011 00000010 00000000 |
어셈블리어 코드를 명령어 형식에 따라 기 계어 코드로 변환하면 9바이트의 실행코드가 만들어진다. |
# 고급언어와 저급언어의 특징
고급언어의 특징 |
•프로세서 종류에 상관없이 실행할 수 있다. •프로세서에 대한 사전 지식이 필요 없다. •문법이 간단하고 이해하기가 쉽다. •프로그램 코드의 양이 적고 디버깅이 용이하다 •컴파일러 성능에 따라 프로그램의 성능이 용이하다 |
어셈블리어의 특징 |
•동일한 종류의 프로세서만 실행할 수 있다. •프로세서에 대한 사전 지식이 필요하다. •컴퓨터에서 실행하는 과정 등을 이해하기 쉽다. •컴퓨터의 성능에 최적인 프로그램을 작성할 수 있다. |
프로그래밍언어는
고급언어 또는 저급언어로 만들어
컴퓨터가 인식할수 있는 기계어로 변환되어 인식한다.
# 컴파일러와 어셈블러
Compiler
고급 언어 프로그램을 입력
구문 오류 검사
목적코드(Object code) 생성
고급 언어의 한 문장은 여러 개의 기계 코드 명령어로 변환됨
Assembler
어셈블리어를 기계어 형태의 오브젝트 코드로 해석해 주는 컴퓨터 언어번역 프로그램
어셈블리어 프로그램을 입력
하나의 어셈블리어 명령어는 하나의 기계 코드에 대응
# 어셈블러프로그램 예시 (SASM 프로그램이용)