===========================원본===========================
.386
.MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE IO.h
cr EQU 0Dh
Lf EQU 0Ah
.STACk 4096
.DATA
number1 DWORD ?
number2 DWORD ?
prompt1 BYTE "Enter First Number :", 0
prompt2 BYTE "Enter Second Number :", 0
string BYTE 40 DUP (?)
labe1 BYTE cr, Lf, "The Sum is "
SUM BYTE 11 DUP (?)
BYTE cr, Lf, 0
.CODE
_start:
output prompt1
input string, 40
atod string
mov number1, eax
output prompt2
input string, 40
atod string
mov number2, eax
mov eax, number1
add eax, number2
dtoa sum, eax
output labe1
INVOKE ExitProcess, 0
PUBLIC _start
END
===========================주석===========================
.386 // 386컴퓨터 이상 eax 를 쓰기 위해서는 최소 386 이상 을 써야함
.MODEL FLAT // 메모리를 segment 말고 메모리 주소자체로 접근하기 위해 사용
ExitProcess//함수의 이름반환형 설명 초기(프로토타입)=> PROTO NEAR32 stdcall, //반환형 => dwExitCode:DWORD // 함수선언
INCLUDE IO.h // io.h 불러드임 매크로 함수르 씀
cr EQU<-동기헥사값 디파인 #define 0Dh <- 아스키 코드값
Lf EQU 0Ah
.STACk 4096
.DATA
number1 DWORD ?<- 초기값없다
number2 DWORD ?
prompt1 BYTE<-1byit "Enter First Number :", 0 <-1byit 씩 각각 넣는다
prompt2 BYTE "Enter Second Number :", 0
string BYTE 40 <- 40byit DUP<-복사 (?) <- 40바이트를 확보 한다
labe1 BYTE<-엔터 치지고 시작 cr, Lf, "The Sum is "
SUM BYTE 11 DUP (?)
BYTE cr, Lf, 0 //이름 없는 cr/Lf/0 <- 해서 3바이트 합친 단락
.CODE
_start: //_ <ㅡ이거 실제로사라짐 start 만 남음
output prompt1
input string, 40 // 호출 해주는거임 40바이트에 저장
atod string
mov number1, eax
output prompt2
input string, 40
atod string
mov number2, eax
mov eax, number1//맨처음 eax 들어감
add eax, number2//두번쨰 eax 들어감
dtoa sum, eax //DBGU 에 dtoa eax 문자열로 바꾸면 sum 에 들어 간다 그럼 sum 에 바코드 숫자가 들어감
output labe1
INVOKE ExitProcess, 0// 원래 레지스터 돌려주는 파일 주석 처리하면 에러남 엑시터 제로 함수를 호출 exit(0); 이랑 똑같은기능
PUBLIC _start//외부에서 start 스타트를 하는걸 보이기 위해서 써놓은거
END //어셈 블리를 꺼내겠다는 말임
'코스웨어 > 12년 내장형하드웨어' 카테고리의 다른 글
[Assembly] 8월 24일 업무일지 By.정철 (2) | 2012.08.24 |
---|---|
8월 24일 금요일 오후에한 수업내용(windbg사용방법) (0) | 2012.08.24 |
Windbg 사용방법 (1) | 2012.08.24 |
asm 컴파일 (0) | 2012.08.24 |
어셈블리 기본형 (0) | 2012.08.24 |
키입력받고 케릭터 lcd 2라인 출력 (0) | 2012.08.24 |
[ARM] 캐릭터 LCD 2line BackSpace 구현 By.임창엽 (1) | 2012.08.23 |
[0823]back space 기능 추가입니다. (0) | 2012.08.23 |