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

- 위키백과


어셈블러(assembler)는 어셈블리어를 기계어 형태의 오브젝트 코드로 해석해 주는 컴퓨터 프로그램(언어번역 프로그램)을 말한다. 어셈블러는 기본 컴퓨터 명령어들을, 컴퓨터 프로세서가 기본 연산을 수행하는데 사용할 수 있는 비트 패턴으로 변환시키는 프로그램이다. 

- 위키백과


초창기엔 기계어로 직접 프로그래밍을 하였다. 하지만 사람에겐 어렵기만한 언어였다. 결국 어셈블리 언어를 개발하였고 이는 0과 1로 된 기계 코드 명령어를 대신하는 기호화 코드(mnemonic)를 이용하여 만든 것이다. 니모닉 코드란 mnemonic, 기억을 돕는다는 의미로 기억하기 쉽도록 간략하게 만든 코드를 말한다.


어셈블러란 어셈블리어를 기계어로 번역해주는 프로그램으로 C로 작성된 코드를 실행하기 위해 C 컴파일러로 기계어로 번역해주는 역할과 같다.


A(assemble) : 어셈블 명령를 메모리에 입력하는데 사용

-A <시작 번지> 



시작 번지를 지정해주고 다음 줄부터 명령어를 입력해 주면된다. debug는 모든 숫자를 16진수로 처리하므로 뒤에 'H'를 붙히지 않아도 된다. 하지만 다른 어셈블리어 프로그램에서는 숫자 뒤에 'H'를 붙혀줘야 한다.

※ 100H부터 시작한 이유는 처음 100H(256)바이트는 DOS에 의해 예약되어 있으며 사용자 프로그램이 사용해서는 안된다.


U(unassemble) 명령 : 기계 코드 확인

-U <시작 번지> <끝 번지>

-U <시작 번지> <L 바이트 수> 



메모리에 있는 기계 코드와 어셈블리어를 보여준다. A 명령이 입력한 어셈블리 명령어를 기계코드로 변환하여 메모리제 저장하는 반면, U 명령은 메모리에 저장된 기계코드를 어셈블리 명령으로 변환해 보여준다.


G(go) 명령 : 실행 명령

-G <=시작 번지> <정지 번지(들)> 



시작번지에서부터 정지번지까지의 명령어들을  실행시키는 명령어이다. 위 사진은 g만 입력했으므로 메모리에 저장된 명령어들을 모두 실행한 것이다. 정지 번지에는 10개까지 넣을 수 있으며 각 브레이크 포인트에서 실행을 멈춘다. 

+ Recent posts