어셈블리어 및 실습 #7
- Editor / debug / 입출력
AcroEditor
여러가지 형식의 파일 편집이 가능
매크로 및 스크립트
◦
반복되는 입력 작업을 단축키로 입력가능
문법 강조
◦
Asm 파일 지원(사용자 자료실)
파일 비교 및 통합
AcroEdit는 공개 프로그램 이기 때문에 개인, 직장, 공
공기관 등 어디에서든 사용 가능.
설치 하기
http://www.acrosoft.pe.kr/board/
◦
ver 0.9.23.104문법 강조 설정
Masm 문법강조 파일
◦
e-class에서 masm.stx 다운로드
C:\program_files\acrosoft\AcroEdit\Syntax 에 복사실습 1
위 소스가 돌아갈 수 있게 전체 소스 작성
◦
뒷 장의 템플릿 참조
ax가 0일 때 프로그램이 종료되도록 수정
mov ax, 6 mov bx, 2 jmp calc back:
jmp stop calc:
sub ax, bx jmp back stop:
;도스로 복귀
ASM Template Code
DSEG SEGMENT
;데이터들을 정의한다.
DSEG ENDS
SSEG SEGMENT STACK DW 100H DUP(?) SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG START:
;데이터 세그먼트 주소 지정 MOV AX, DSEG
MOV DS, AX
;실제 프로그램 코드 작성
;도스로 복귀 MOV AH, 4CH INT 21H
CSEG ENDS END START
소프트웨어 인터럽트 (int 21h)
AH 값 명칭 동작
1 키보드 입력 키보드에 한문자가 타이핑 될때 까지 기다린다.
문자가 입력되면 그 문자의 ASCII코드를 AL에 저장한다. 입력된 문자는 디스플레이에 나타난 다.
2 디스플레이 스크린 출력
레지스터 DL에 들어있는 ASCII코드의 문자를 디스플레이 스크린에 프린트 한다.
9 스트링 디스플레이 DX가 가리키는 스트링을 디스플레이 한다. 이때 스트링의 끝은 ‘$’ 기호가 있어야 한다.
4c DOS로 복귀 프로그램을 실행을 종료하고 제어를 DOS로 넘 긴다.
코드 실행 방법
어셈블링 (컴파일)
◦
ML /c 파일명(.asm)
링크
◦
line16 파일명(.obj)◦
파일명 뒤에 ; 을 써주면 링크 과정 생략 가능
ex) link16 test.obj ;
실행
◦
파일명(.exe)
디버그
◦
debug 파일명(.exe)Listing 파일 만들기 (ML 옵션)
ML /?
◦
/c Assemble without linking◦
/Fl Generate listing실습 2
DSEG SEGMENT TOTAL DB 14H COUNT DW 1000 DB ‘HI HELLO’
DB ‘4’
DW 10D DB 4, 9
STR1 DB ‘String output test $’
DSEG ENDS
SSEG SEGMENT STACK DW 100H DUP(?) SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG START:
MOV AX, DSEG MOV DS, AX MOV AH, 9
MOV DX, OFFSET STR1 INT 21H
MOV AH, 4CH INT 21H
CSEG ENDS END START
디버그 실습
R [register] : 레지스터 확인
◦
레지스터 값 변경 가능 ex) R cx
D [range] : 메모리 확인
◦
특정 메모리 주소 값 확인 가능 ex) d 0BDB:0000디버그 실습
T [=address] [number] : 명령어 수행
◦
한 번에 여러 개 수행 가능 ex) t 10
G [=address] [addresses] : 특정 위치로 이동
◦
ex) g 7 – IP가 7인 위치로 이동(그 전 명령들 수행)
Q : 디버그 종료
실습 3