도서출판세화에서 나온 어셈블러프로그래밍 책을 보고 공부 중입니다.
공부한걸 인터넷에 올려놔야 나중에 책을 안찾아보고도 찾기 쉬워서...
간단히 한 문자를 출력하는 프로그램을 짜보도록하죠.
우선 win98을 깔면 debug.exe파일이 있습니다.(C:\WINDOWS\COMMAND\DEBUG.EXE)
이걸 실행 시키는 겁니다.
1. MS-DOS창을 띄운다.
2. DEBUG.EXE를 실행 시킨다.
3. 아래 그림과 같이 따라 해본다.
- 입력할때는 A 명령어를 이용
A명령어를 사용할때는 명령어 뒤에 입력하고자 하는 오프셋 주소를 입력하여야 한다.
만일 주소를 생략하면 자동으로 오프셋 주소는 100h가 된다. 이것은 1h부터 FFh까지는
프로그램 실행을 위한 각종 정보가 들어 있기 때문에 실제로 입력이 가능한 부분은 100h번지
부터이기 때문이다.
- 입력한 내용을 보고자 할때는 D 명령을 이용한다.(-D 100)
- 프로그램 실행은 G명령을 실행. 위에 오프셋 주소를 입력하여도 된다.
MOV A,B
B를 A에 넣으라는 명령이다.
MOV AH,2
2h를 AH 레지스터에 넣으라는 뜻이다. 이것은 위의 MOV DL,41과 같은것으로 생각할수 있으나
MOV AH,2 밑에 오는 명령어에 따라 양상이 전혀 달라 질수 있다. 즉, 뒤에 INT 21이 오면 MOV AH,2는
화면에 한 문자를 출력하고 커서를 다음 문자 위치로 이동하라는 인터럽트 함수가 된다.
INT 20
프로그램의 실행을 종료 하라는 DOS기능을 호출하는 명령어.
4. 'A'를 'B'로 고쳐보자.
'A'는 아스키 코드 41, 'B'는 42
15D6은 세그먼트 주소이고 0101은 101번지를 가르키는 오프셋 주소이다.
5. 확인하기.
U명렁어를 이용하여 확인 한다.
6. 종료하기
Q명령어를 이용한다.