C 프로그래밍에 입문하기 위해 무료강좌를 듣기 시작했다.
헌데 강좌의 도입부에서 약간의 기초지식을 위해 어셈블러를 강의한다.
tool 로서 MS사의 Marcro Assembler 를 사용하다고하면서
상세한 설치과정등을 생략한 채 실습을 해보란다.
구글링 끝에 적절한 레퍼런스를 찾았다.
예제는 Visual Studio 버전 2010 을 기준했지만 최근버전인 2013을 사용해도 된다.
다만 AsmHighlighter1_5.vsix 파일의 용법에 관한 설명이 누락되어 있다.
TITLE ADD end Subtract (Addsub.asm) ;This program adds and ssubtracts 32-bit integers. INCLUDE Irvine32.inc.code main PROC mov eax, 10000h add eax, 40000h sub eax, 20000h call DUMPRegs ; display resisters exit main ENDP END main
컴파일/실행 방법 :
위 그림같이 ‘ Start Without Debugging ‘ 을 누른다.
결과
이번에는 강좌내용의 코드를 실행(소프트웨어 인터럽트를 이용 화면에 “ABC”를 출력하는 예제)
MAIN SEGMENT ASSUME CS:MAIN, DS:MAIN START: MOV DL,41H ; DL 레지스터에 'A'값 41H를 설정 MOV AH,2 ; 명령 2번 설정 INT 21H ; 시스템 호출 MOV DL,42H ; DL 레지스터에 'B'값 42H를 설정 MOV AH,2 ; 명령 2번 설정 INT 21H ; 시스템 호출 MOV DL,43H ; DL 레지스터에 'C'값 43H를 설정 MOV AH,2 ; 명령 2번 설정 INT 21H ; 시스템 호출 MOV AH,4CH ; 프로그램 종료 명령 INT 21H ; 프로그램 종료 MAIN ENDS END START
소셜댓글