어셈블러의 역할, 단일 패스 어셈블러
Sec. 6.0, 6.1, 6.4
시스템 프로그래밍
Contents
Sec 6.0 8086 어셈블러 설계
Sec 6.1 어셈블러의 역할
Sec 6.4 단일 패스 어셈블러
Q A
1234
-2-
시스템 프로그래밍
Sec 6.0 8086 어셈블러 설계
MOV AX, BX : 레지스터 BX의 값을 레지스터 AX에 복사
MOV AX, FOUR : 주소 FOUR에 있는 값을 레지스터 AX에 복사
ADD AX, DX : 레지스터 AX에 레지스터 DX값을 덧셈
ADD AX, FIVE : 주소 FIVE에 있는 값을 레지스터 AX에 덧셈
JMP OVER : 기호 OVER로 분기함
고급언어 또는 어셈블리어로 쓰여진 프로그램은 컴파일러나 어셈블러에 의하여 번역되어 기계어 코드로 된 실행 파일이 됨
컴파일러는 고급언어로 쓰여진 프로그램을 기계어로 바꾸기 때문에 그 번역과정이 복잡
어셈블리어는 대부분의 명령어가 기계어와 일 대 일 대응이 되기 때문에 그 작업과정이 비교적 간단
교재에는 8086어셈블리 언어로 설명
-3-
6.0 8086 어셈블러 설계
MOV : 이동
ADD : 덧셈
JMP : 무조건 분기
(고급언어의 GOTO문과 동일)
시스템 프로그래밍
Sec 6.1.1 프로그램의 작성과 실행단계
-4-
6.1 어셈블러의 역할
따라서 어셈블러는 어셈블리어로 쓰여진 원시프로그램을 입력으로 받아 목적 프로그램을 생성하는 일을 하는데, 이때 어셈블러는 링커와 로더가 필요로 하는 형식에 따라 정보를 제공하여야 한다.
시스템 프로그래밍
Sec 6.1.2 어셈블러의 입력과 출력
어셈블러는 주기억장치에 적재되어 실행되는 하나의 프로그램이다.
입력은 원시 프로그램이고 보조 기억 장치에 저장되어 있다.
프로그램이 실행될 때의 실행순서는 명령어 포인터(IP)에 기록된 명령어의 주소에 의해서 조절
부 프로그램을 호출하는 것도 이 부 프로그램이 저장된 주소를 IP에 기록하는 것으로 해결
-5-
6.1 어셈블러의 역할
시스템 프로그래밍
....