Instruction 정리.

남현우 2007.03.09 00:38 조회 수 : 4745 추천:134

○ IRET/IRETD - Interrupt Return
인터럽트 핸들러가 임무를 마치고 나면 IRET을 통해 호출한 지점으로 복귀.

예) IRET, IRETD, IRETQ


○ Jcc-Jump if Condition is Met
조건(eflags의 플래그 상태, 레지스터 값)에 따라 점프.

예) JA, JAE, JB, JBE, JC, JCXZ, JECXZ, JE, JG, JGE, JL, JLE, JNA, JNAE, JNB, JNBE
JNC, JNE, JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JO, JP, JPE, JPO, JS, JZ, JA, JAE
JB, JBE, JC.......


○ JMP-Jump
정해진 위치로 점프한다.

Flags Affected
태스크 스위칭은 flags에 영향을 주게된다.

예) JMP rel8, JMP rel16, JMP rel32, JMP r/m16, JMP r/m32 ....


○ LAHF-Load Status Flags into AH Register
ELFAGS레지스터를 AH레지스터에 저장.

예)LAHF





○ SSUFPS-Shuffle Packed Single-Precision Floating-Point Values
단일 정밀도 FP연산자의 부동소수점 값을 섞는다.

예)SHUFPS xmm1, xmm2/m128, imm8


○ SIDT
Interrupt Descriptor Table을 레지스터에 저장

예)SIDT

○ SLDT
Local Descriptor Table을 레지스터에 저장.
예)SLDT r/m16

○ SMSW-Sotre Machine Status Word  
시스템상태(CRO)을 저장.

예)SMSW r/m16


○ SQRTPD-Compute Square Roots of Packed Double-Precision Floating-Point
Double 부동소수점 제곱근을 계산.

예) SQRTPD xmm1, xmm2/m128


○ SQRTPS-Compute Square Roots of Packed Single-Precision Floating-Point
Single 부동소수점 제곱근을 계산.

예) SQRTPS xmm1, xmm2/m128


○ SQRTSD-Compute Square Root of Scalar Double-Precision Floating-Point Value
Scalar Double 부동소수점 제곱근을 계산.

예) SQRTSD xmm1, xmm2/m64


○ SQRTSS-Compute Square Root of Scalar Single-Precision Floating-Point Value
Scalar Single 부동소수점 제곱근을 계산
예) SQRTSS xmm1, xmm2/m32


○ STC-SetCarryFlag
CF flag를 set 한다.

예)STC


○ STI-Set Interrupt Flag
IF Flag를 set 한다. 인터럽트가 허용.

예)STI


○ STMXCSR-Store MXCSR Register State
MSCSR 제어/상태 레지스터를 저장한다.

예)STMXCSR m32


○ STOS/STOSB/STOSW/STOSD/STOSQ-Store String
바이트로 구성된 스트링에 적용되며 메모리에 전송되게 한다.

예)STOS m8/m16/m32/m64/, STOSB, STOSW, STOSD, STOSQ


○ STR-Store Task Register
TR(Task Register)을 저장.

예)STR r/m16


○ SUB-Subtract
산술 연산 명령. 뺄셈.

예) SUB AL/AX/EAX/RAX, imm8/imm16/imm32 …..


○ SUBPD-Subtract Packed Double-Precision Floating-Point Values
scalar double-precision floating-point 값의 뺄셈.

예) SUBPD xmm1, xmm2/m128


○ SUBPS-Subtract Packed Single-Precision Floating-Point Values
scalar single-precision floating-point 값의 뺄셈.

예) SUBPS xmm1 xmm2/m128


○ SUBSD-Subtract Scalar Double-Precision Floating-Point Values
scalar low double-precision floating-point 값의 뺄셈.

예) SUBSD xmm1, xmm2/m64


○ SUBSS-Subtract Scalar Single-Precision Floating-Point Values
scalar low single-precision floating-point 값의 뺄셈.

예) SUBSS xmm1, xmm2/m32


○ SWAPGS-Swap GS Base Register
현재 GS레지스터를 MSR(Model specify registers) adress C0000102h 번지의 값으로 변경한다.

예)SWAPGS


○ SYSCALL-Fast System Call
권한레벨 0의 시스템 프로시져를 Fast Call.

예)SYSCALL


○ SYSENTER-Fast System Call
권한레벨 0의 시스템 프로시져를 Fast Call.

예)SYSENTER




첫모임에서 할당받은 부분과 저번주에 선택한 분담7 부분입니다.
번호 제목 글쓴이 날짜 조회 수
공지 [공지] 커널 스터디 관련 Q&A 게시판 입니다. [5] woos 2016.04.09 2198
185 volume 1. LIDT ~ LODS 입니다. 늦어서 죄송합니다;; 선준규 2007.03.10 2786
184 Vol.1의 CMPS ~ CVTPD2PS 입니다. 늦어서 죄송합니다. file 지현구 2007.03.10 64216
183 분담 5(PREFETCHh ~ RCL/RCR/ROL/ROR) 입니다. 늦어서 죄송합니다 file 지현구 2007.03.10 6260
182 저한테 저번주에 할당되어 있던 Instruction올립니다. 남용우 2007.03.09 3767
181 vol2의 분담3과 vol1 명령어입니다. 이종우 2007.03.09 3810
180 명령어 정리 - 늦어서 죄송.. 송형주 2007.03.09 14527
» Instruction 정리. 남현우 2007.03.09 4745
178 EM64T Instruction 정리자료 Final 버전입니다. [1] file 김정수 2007.03.08 3804
177 분담 6 맥주 2007.03.08 3957
176 저번주에 할당되어 있던 Instruction도 올려주세요!!! 김정수 2007.03.07 4544
175 분담 4를 해석한 자료 올립니다. file 강형석 2007.03.07 3130
174 lilo 공부하실때 참고 할만한 자료 입니다. [5] 강형석 2007.03.07 3034
173 asm 강좌 문서 file 맥주 2007.03.06 4147
172 분담2 MOVLHPS ~ MOVUPD 까지입니다 선준규 2007.03.06 4851
171 메신저 주소 공유합시다!! [8] 김정수 2007.03.04 3672
170 "만들면서 배우는 OS 커널의 구조와 원리/김범준 저"에 오늘 공부했던 내용에 대해 쉽게 적혀있네요. [4] 김정수 2007.03.04 5380
169 EM64T_Guide [2] file 이종우 2007.03.04 3502
168 x86 아키텍쳐에 관한 동영상 강좌 링크입니다. [6] 남현우 2007.03.04 4413
167 3월 3일 LKSAS 두번째 모임 즐거웠습니다. [7] file 김정수 2007.03.04 5046
166 제송.... 제가 이번에 스터디 그룹에 참여하는데 아직 공부할 부분을 할당받지 못했는데요... [2] 강형석 2007.03.02 5261
XE Login