2008년 01월 02일
PUSHFD, POPFD 명령
PUSHFD 명령은 32비트 EFLAGS 레지스터 값을 스택에 푸시하고 POPFD는 스택에서 EFLAGS로 팝한다.
PUSHFD
POPFD
실제 주소 모드 프로그램은 16비트 FLAGS 레지스터를 스택에 푸시하기 위해 PUSHF 명령을 사용하고 POPF는 스택에서 FLAGS로 팝한다.
플래그 값의 백업을 만들고 후에 다시 복구하는 것이 유용할 때가 많다. 이렇게 하는 한 가지 방법은 PUSHFD와 POPFD로 코드의 어떤 블록을 감싸는 것이다.
pushfd
;
; code
;
popfd
이 러한 푸시와 팝을 사용할 때 프로그램의 실행 경로가 POPFD를 지나치지 않게 매우 조심해야만 한다. 프로그램 내의 모든 푸시와 팝이 있는 곳을 기억하기 까다로울 수 있다. 보다 오류가 적은 방법은 플래그를 변수에 저장하는 것이다.
.data
saveFlags DWORD ?
.code
pushfd
pop saveFlags
다음 문은 그 변수로부터 플래그를 복원한다.
push saveFlags
popfd

PUSHFD
POPFD
실제 주소 모드 프로그램은 16비트 FLAGS 레지스터를 스택에 푸시하기 위해 PUSHF 명령을 사용하고 POPF는 스택에서 FLAGS로 팝한다.
플래그 값의 백업을 만들고 후에 다시 복구하는 것이 유용할 때가 많다. 이렇게 하는 한 가지 방법은 PUSHFD와 POPFD로 코드의 어떤 블록을 감싸는 것이다.
pushfd
;
; code
;
popfd
이 러한 푸시와 팝을 사용할 때 프로그램의 실행 경로가 POPFD를 지나치지 않게 매우 조심해야만 한다. 프로그램 내의 모든 푸시와 팝이 있는 곳을 기억하기 까다로울 수 있다. 보다 오류가 적은 방법은 플래그를 변수에 저장하는 것이다.
.data
saveFlags DWORD ?
.code
pushfd
pop saveFlags
다음 문은 그 변수로부터 플래그를 복원한다.
push saveFlags
popfd
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- 어셈블리어(Assembly Language)와 C 그리고 호출 규약(Calling Convension) by 하나두리
- 메모리 by 조조조
- 버퍼 오버플로우(Buffer Overflow)란? by narumee
- [이론]배열사용시의 장점 by 성우
- [스크랩]프로그래머가 알아야 할 기본지식Ⅱ by 비류연
# by | 2008/01/02 11:32 | └Language | 트랙백(1) | 덧글(0)








☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : Valium withdrawal.
Valium side effects. Valium no prescription....more