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 2201
45 first.S에서 초기에 Ox9A000로 이동하는 이유 송형주 2007.03.13 2595
44 저번주 스터디 내용 좀 정리해 주세요. [3] 정필섭 2007.03.12 4521
43 제가 참고한 자료들입니다. [3] file 김종화 2007.03.12 4808
42 PPC 제본한거 남은거 있나요? [1] 원민수 2007.03.12 4605
41 지난시간에 약간 모호했던 부분중... 선준규 2007.03.11 2643
40 lilo 21.4.4 source 파일입니다. file 송형주 2007.03.11 2567
39 3월 10일 LKSAS 세번째 모임 수고 하셨습니다. 강형석 2007.03.11 2856
38 메일링 리스트 만들었습니다. 유상민 2007.03.11 2654
37 lilo 분석 링크 유상민 2007.03.11 3329
36 AAA ~ AND 까지 입니다. 박경태 2007.03.10 8492
35 아~ RGB 케이블 찾았습니다. 강형석 2007.03.10 2506
34 늦었지만 지난주 Instruction ANDPD ~ BTS 강석천 2007.03.10 4053
33 volume 1. LIDT ~ LODS 입니다. 늦어서 죄송합니다;; 선준규 2007.03.10 2786
32 Vol.1의 CMPS ~ CVTPD2PS 입니다. 늦어서 죄송합니다. file 지현구 2007.03.10 64225
31 제가 ppc 책 없었는데 책 파신분요. 유태경 2007.03.10 4710
30 분담 5(PREFETCHh ~ RCL/RCR/ROL/ROR) 입니다. 늦어서 죄송합니다 file 지현구 2007.03.10 6260
29 저한테 저번주에 할당되어 있던 Instruction올립니다. 남용우 2007.03.09 3767
28 vol2의 분담3과 vol1 명령어입니다. 이종우 2007.03.09 3810
27 명령어 정리 - 늦어서 죄송.. 송형주 2007.03.09 14528
» Instruction 정리. 남현우 2007.03.09 4745
XE Login