<하이퍼터미널에서의 결과>
빛센서는 97번핀과 연결하고 한쪽은 VCC에 연결
LED는 포트A아무데나 연결해 놓음
----------------------어셈블리--------------------
.386
.MODEL FLAT
PUBLIC _STST
PUBLIC _LDST ;load status
.CODE
_STST PROC NEAR32
PUSH EBP
MOV EBP,ESP
PUSHFD
PUSHAD ;전체 레지스터 넣음
MOV EAX, [EBP-4]
AND EAX, 0FFFFFEFFh
MOV DWORD PTR[EBP-4], EAX ;efl 값넣어둠
MOV ECX, ESP ; 맨위의 ESP 주소
MOV ESP, [EBP+8] ;구조체 주소를 넘김
ADD ESP, 40 ;esp를 밑으로 내려보냄
;초기값을 가리키는 것이 필요
MOV EAX, EBP ;EAX의 초기 값
ADD EAX, -8
PUSH [EAX]
ADD EAX, -4
PUSH [EAX] ;ECX
ADD EAX, -4
PUSH [EAX] ;EDX
ADD EAX, -4
PUSH [EAX] ;EBX
MOV EBX, EBP
ADD EBX, 8 ;esp
PUSH EBX
PUSH [EBP] ;ebp의 값
ADD EAX, -12
PUSH [EAX] ;EDI
ADD EAX, -4
PUSH [EAX] ;ESI
PUSH [EBP+4] ;리턴어드레스 값
PUSH [EBP-4] ;EFL 값
MOV ESP, ECX
POPAD ;꺼내기
POPFD ; 플래그도
MOV ESP,EBP
POP ebp
RET
_STST ENDP
_LDST PROC NEAR32
;메모리 안에 있는 정보를 CPU올리기
MOV ESP, [ESP+4] ;esp =&context
POPFD ;플래그 efl = context.efl
POP EAX ;eax = old eip
MOV EBX, ESP ;esp 임시저장, ebx= current esp
MOV ESP, [ESP+12] ;스택으로 점프 esp = old esp
PUSH EAX ;y값을 return address 에 넣어줌 save old eip
MOV ESP, EBX ;다시 돌아온 esp ,esp = current esp
POPAD ;한 번에 넣기
MOV ESP,[ESP-20]
SUB ESP, 4 ;r.a까지 esp 올리기
RET
_LDST ENDP
END
'코스웨어 > 13년 스마트컨트롤러' 카테고리의 다른 글
2013.09.24_ Assambly 소스 _ 김성엽 (0) | 2013.09.24 |
---|---|
2013년 9월 24일 어셈블리 - 이수현 (0) | 2013.09.24 |
20130924 USART -이세웅 (0) | 2013.09.24 |
AVR UART 인터럽트 - 전영기 (0) | 2013.09.24 |
2013년 9월 24일 어셈블리 - 김경순 (0) | 2013.09.24 |
어셈블리 - 전영기 (0) | 2013.09.24 |
20130924 어셈블리 - 이세웅 (0) | 2013.09.24 |
2013_09_23 어셈블리 레지스터 값 불러오기 (한성원) (0) | 2013.09.24 |