이번 강좌에서는
저장 방식 지정자 (Storage class specifier)
저장 기간 (Storage duration) - automatic
, static
, thread
링크 방식 (Linkage) - internal, external
이름 맹글링 (Name Mangling)
링킹 (Linking)
재배치 (Relocation) - R_X86_64_PC32
, R_X86_64_PLT32
등등
정적 링킹 (Static linking)
동적 링킹 (Dynamic linking)
에 대해서 다루어 보겠습니다.
앞선 강의 에서 링킹 과정에서 목적 코드들에 정의된 심볼들 (함수들이나 객체들) 의 위치를 확정 시킨다고 하였습니다.
이 때 C++ 에서 심볼들의 위치들을 정할 때 어떠한 방식으로 정할지 알려주는 키워들이 있는데 이들을 바로 Storage class specifier 라고 합니다. 굳이 번역하자면 저장 방식 지정자 라고 부르는 것이 좋을 것 같습니다.
C++ 에서 허용 하는 Storage class specifier 들은 아래와 같이 총 4 가지가 있습니다.
이전에는 auto
와 register
지정자들도 있었는데 이들은 각각 C++ 11 과 C++ 17 에서 사라졌습니다. 이 키워드들을 통해 심볼들의 두 가지 중요한 정보들을 지정할 수 있습니다. 바로 저장 기간 (Storage duration) 과 링크 방식 (Linkage) 입니다. 각각이 무엇인지 아래에서 살펴보도록 하겠습니다.
프로그램에서의 모든 객체들의 경우 반드시 아래 넷 중에 한 가지 방식의 저장 기간을 가지게 됩니다.
여기에 해당하는 객체들의 경우 보통 {}
안에 정의된 녀석들로 코드 블록을 빠져나가게 되면 자동으로 소멸하게 됩니다. static
, extern
, thread_local
로 지정된 객체들 이외의 모든 지역 객체들이 바로 이 자동 저장 기간을 가지게 됩니다. 쉽게 말해 우리가 흔히 생각하는 지역 변수 들이 여기에 해당됩니다.
int func () {
int a;
SomeObject x;
{
std :: string s;
}
static int not_automatic;
}
위 경우 a
, x
, s
모두 자동 저장 기간을 가집니다. 반면에 not_automatic
는 아닙니다.
static
저장 기간에 해당하는 객체들의 경우 프로그램이 시작할 때 할당 되고, 프로그램이 끝날 때 소멸되는 친구들입니다. 그리고 static
객체들은 프로그램에서 유일하게 존재합니다. 예를 들어서 지역 변수의 경우 만일 여러 쓰레드에서 같은 함수를 실행한다면 같은 지역 변수의 복사본들이 여러 군데 존재하겠지만 static
객체들은 이 경우에도 유일하게 존재합니다.
보통 함수 밖에 정의된 것들이나 (즉 namespace
단위에서 정의된 것들) static
혹은 extern
으로 정의된 객체들이 static
저장 기간을 가집니다. 참고로 static
키워드와 static 저장 기간 을 가진다는 것을 구분해야 합니다. static
키워드가 붙은 객체들이 static
저장 기간을 가지는 것은 맞지만, 다른 방식으로 정의된 것들도 static
저장 기간을 가질 수 있습니다.
예를 들어서
int a; // 전역 변수 static 저장 기간
namespace ss {
int b; // static 저장 기간
}
extern int a; // static 저장 기간
int func () {
static int x; // static 저장 기간
}
위와 같이 여러가지 방식으로 정의된 객체들이 static
저장 기간을 가지게 됩니다.
쓰레드 저장 기간에 해당하는 객체들의 경우 쓰레드가 시작할 때 할당 되고, 쓰레드가 종료될 때 소멸되는 객체들입니다. 각 쓰레드들이 해당 객체들의 복사본들을 가지게 됩니다. thread_local
로 선언된 객체들이 이 쓰레드 저장 기간을 가질 수 있습니다.
#include <iostream>
#include <thread>
thread_local int i = 0 ;
void g () { std :: cout << i; }
void threadFunc ( int init) {
i = init;
g ();
}
int main () {
std :: thread t1 (threadFunc, 1 );
std :: thread t2 (threadFunc, 2 );
std :: thread t3 (threadFunc, 3 );
t1 . join ();
t2 . join ();
t3 . join ();
std :: cout << i;
}
실행 결과
3120
예를 들어서 위 예제를 살펴봅시다. 아마 몇 번 실행하다보면 1230, 2130, 3120 등과 같은 결과를 볼 수 있을 것입니다. 그 이유는 thread_local
로 정의된 i
가 각 쓰레드에 유일하게 존재하기 때문이죠. 마치 정의는 전역 변수인 것 처럼 정의되어 있지만, 실제로는 각 쓰레드에 하나씩 복사본이 존재하게 되고, 각 쓰레드 안에서 해당 i
를 전역 변수인것마냥 참조할 수 있게 됩니다.
동적 저장 기간의 경우 동적 할당 함수를 통해서 할당 되고 해제되는 객체들을 의미 합니다. 대표적으로 new
와 delete
로 정의되는 객체들을 의미하지요.
이러한 저장 방식은 나중에 링커에서 해당 변수나 함수들을 배치시에 어디에 배치할 지 중요한 정보로 사용됩니다.
앞선 저장 방식이 객체 들에게만 해당되는 내용이였다면 링크 방식의 경우 C++ 의 모든 객체, 함수, 클래스, 템플릿, 이름 공간 등등을 지칭하는 이름들에 적용되는 내용입니다. C++ 에선 아래와 같은 링크 방식들을 제공합니다. 이 링크 방식에 따라서 어떤 이름이 어디에서 사용될 수 있는지 지정할 수 있습니다.
블록 스코프 ({}
) 안에 정의되어 있는 이름들이 이 경우에 해당합니다. (extern
으로 지정되지 않는 이상) 링크 방식이 지정되지 않는 개체들의 경우에는 같은 스코프 안에서만 참조할 수 있습니다. 예를 들어서
{ int a = 3 ; }
a; // 오류
위 경우 a
라는 변수는 {}
안에 링크 방식이 없는 상태로 정의되어 있기 때문에 스코프 바깥에서 a
를 참조할 수 없게 됩니다.
static
으로 정의된 함수, 변수, 템플릿 함수, 템플릿 변수들이 내부 링크 방식에 해당됩니다. 내부 링크 방식으로 정의된 것들의 경우 같은 TU 안에서만 참조 할 수 있습니다. 그 외에도 익명의 이름 공간에 정의된 함수나 변수들 모두 내부 링크 방식이 적용됩니다. 예를 들어서
namespace {
int a; // <- 내부 링크 방식
}
static int a; // 이와 동일한 의미
마지막으로 살펴볼 방식으로 외부 링크 방식이 있습니다. 외부 링크 방식으로 정의된 개체들은 다른 TU 에서도 참조 가능합니다. 참고로 외부 링크 방식으로 정의된 개체들에 언어 링크 방식 을 정의할 수 있어서, 다른 언어 (C 와 C++) 사이에서 함수를 공유하는 것이 가능해집니다.
앞서 링크 방식이 없는 경우나 내부 링크 방식을 개체들을 정의하는 경우를 제외하면 나머지 모두 외부 링크 방식으로 정의됨을 알 수 있습니다. 참고로, 블록 스코프 안에 정의된 변수를 외부 링크 방식으로 선언하고 싶다면 extern
키워드를 사용하면 됩니다.
언어 링크 방식을 선언하고 싶다면 다음과 같이 하면 됩니다.
extern "C" int func (); // C 및 C++ 에서 사용할 수 있는 함수.
// C++ 에서만 사용할 수 있는 함수. 기본적으로 C++ 의 모든 함수들에 extern "C++"
// 이 숨어 있다고 보시면 됩니다. 따라서 아래처럼 굳이 명시해줄 필요가 없습니다.
extern "C++" int func2 ();
int func2 (); // 위와 동일
앞서 C 에서 C++ 의 함수를 사용하기 위해서는 extern "C"
로 언어 링크 방식을 명시해주어야 한다고 하였습니다. 그 이유는, 목적파일 생성시 C 컴파일러가 함수 이름을 변환하는 방식과 C++ 컴파일러가 함수 이름을 변환하는 방식이 다르기 때문입니다.
일단 C 의 경우 함수 이름 변환 자체가 이루어 지지 않습니다. 만약에 아래와 같이 func
이란 함수를 정의했다고 해봅시다.
int func ( const char * s) {}
이를 C 컴파일러가 컴파일 하면 변환된 이름은 그냥
$ nm a.out
0000000000000000 T func
func
임을 알 수 있습니다. 참고로 nm
은 목적 파일에 정의되어 있는 심볼들을 모두 출력해주는 프로그램입니다. 앞에 있는 00000000 의 정체와 중간에 'T' 의 의미는 아래에서 알아봅시다.
반면에 똑같은 소스코드를 C++ 컴파일러로 컴파일 해봅시다.
$ nm a.out
0000000000000000 T _Z4funcPKc
위 경우 함수의 이름이 바뀐 것을 알 수 있죠? 이와 같이 C++ 에서는 목적 코드 생성시에 컴파일러가 함수의 이름을 바꾸는 것을 볼 수 있습니다. 이를 이름 맹글링(Name mangling) 이라 하는데, 맹글링 이라는 단어의 뜻이 원래 엉망진창으로 만들다 라는 의미 입니다. 실제로 함수의 이름이 func
에서 알아보기 힘든 버전으로 바뀌었지요.
이렇게 이름 맹글링을 하는 이유는 C 와는 다르게 C++ 에서는 같은 이름의 함수를 정의할 수 있기 때문입니다. 일단 함수의 오버로딩을 통해서 인자가 다른 같은 이름의 함수들을 정의할 수 있고 인자와 이름이 모두 똑같더라도 다른 이름 공간에 들어가 있다면 다른 함수로 취급됩니다. 따라서, 함수의 이름 자체만으로는 어떤 함수를 호출할 지 구분할 수 가 없죠.
이름 맹글링을 하게 되면 원래의 함수 이름에 이름 공간 정보와 함수의 인자 타입 정보들이 추가됩니다. 따라서 같은 이름의 함수일 지라도, 이름 맹글링을 거치고 다면 다른 이름의 함수로 바뀌기 때문에 링킹을 성공적으로 수행할 수 있습니다.
실제로 아래 함수들의 이름들은 모두 같지만
int func ( const char * s) {}
int func ( int i) {}
int func ( char c) {}
namespace n {
int func ( const char * s) {}
int func ( int i) {}
int func ( char c) {}
} // namespace n
맹글링 된 이름을 살펴보면
$ nm test.o
000000000000001d T _Z4funcc
000000000000000f T _Z4funci
0000000000000000 T _Z4funcPKc
000000000000004a T _ZN1n4funcEc
000000000000003c T _ZN1n4funcEi
000000000000002d T _ZN1n4funcEPKc
와 같이 전부다 다른 이름으로 변환된 것을 볼 수 있죠. 참고로 컴파일러마다 이름 맹글링을 하는 방식이 조금씩 다르기 때문에 A 라는 컴파일러에서 생성한 목적 코드를 B 컴파일러가 링킹할 때 문제가 될 수 있습니다.
아무튼 C 에서 C++ 의 함수를 호출하기 위해서는 반드시 이름 맹글링이 되지 않는 함수 심볼을 생성해야 합니다. 따라서 extern "C"
를 통해서 이 함수는 이름 맹글링을 하지 마! 라고 컴파일러에게 전달할 수 있습니다.
extern "C" int func ( const char * s) {}
int func ( char c) {}
위 코드를 컴파일 하면
$ nm test.o
0000000000000000 T func
000000000000000f T _Z4funcc
위와 같이 extern "C"
로 표기된 func
은 이름 맹글링이 되지 않았지만 밑에 보통의 int func
의 경우 이름 맹글링이 된 것을 알 수 있습니다.
당연히도 extern "C"
가 붙은 함수들 끼리는 오버로딩을 할 수 없습니다. 왜냐하면 심볼 생성시 두 함수를 구분할 수 있는 방법이 없기 때문이죠. (이름이 같으니까.)
위 단계에서 아무런 문제가 없었더라면 이제 비로소 진짜 링킹(Linking)을 수행할 수 있습니다. 링킹이란, 각각의 TU 들에서 생성된 목적 코드들을 한데 모아서 하나의 실행 파일 을 만들어내는 작업입니다. 물론 단순히 목적 코드들을 이어 붙이는 작업만 하는 것은 아닙니다.
링킹 과정이 끝나기 전 까지 변수들과 함수, 그리고 데이터들의 위치를 확정시킬 수 없습니다. 따라서 TU 들이 생성한 목적 코드들에게는 각각의 심볼들의 저장 방식과 링크 방식에 따라서 여기 여기에 배치했으면 좋겠다 라는 희망 사항만 써져있을 뿐입니다. 예를 들어서
static int a = 3 ;
int b = 3 ;
const int c = 3 ;
static int d;
int func () {}
static int func2 () {}
위와 같은 코드를 생각해봅시다. 위 코드에 정의된 심볼들의 희망 위치들은 어떻게 나타내질까요?
$ nm test.o
0000000000000004 D b
0000000000000000 T _Z4funcv
0000000000000000 d _ZL1a
0000000000000000 r _ZL1c
0000000000000000 b _ZL1d
000000000000000b t _ZL5func2v
nm
프로그램은 심볼들의 이름들 왼쪽에 어떠한 방식으로 링크시에 심볼을 배치할지 에 대한 정보를 보여줍니다. 먼저 가운데 알파벳을 봅시다. 대문자 알파벳의 경우 해당 심볼은 외부 링크 방식으로 선언된 심볼이란 의미 입니다. 즉 해당 심볼은 다른 TU 에서 접근할 수 있는 심볼입니다. 반면에 소문자 알파벳의 경우 해당 심볼은 내부 링크 방식으로 선언된 심볼이란 의미 입니다. 따라서 해당 심볼은 이 TU 안에서만 접근 가능하죠.
위 대문자로 된 심볼들을 보면 b
, func
을 볼 수 있는데 두 함수 다 외부 링크 방식임을 알 수 있습니다. 반면에 나머지 a
, c
, d
, func2
는 모두 static
이므로 내부 링크 방식이죠.
그 다음에 알파벳 자체는 어떠한 방식으로 해당 심볼들을 배치할 지 알려줍니다. nm 의 man 페이지 에서 전체 알파벳들에 대한 설명을 볼 수 있지만 일부만 소개해본다면
B, b
: 초기화 되지 않은 데이터 섹션 (BSS 섹션)
D, d
: 초기화 된 데이터 섹션
T, t
: 텍스트 (코드) 섹션
R, r
: 읽기 전용 (read only) 섹션
입니다. 예를 들어 전역 변수인 b
를 볼까요?
0000000000000004 D b
b
는 값을 3 으로 초기화 하였으므로 당연히 초기화 된 데이터 섹션에 가게 됩니다.
반면에 static int d
의 경우
0000000000000000 b _ZL1d
값을 초기화 하지 않았으므로 초기화 되지 않은 데이터 섹션인 BSS
로 지정되어 있음을 알 수 있습니다.
0000000000000000 T _Z4funcv // func()
000000000000000b t _ZL5func2v // func2()
마찬가지로 두 개의 함수들만 보아도 static
이 아닌 func
는 T
, static
인 func2
는 t
로 표시되어 있음을 알 수 있습니다.
맨 앞에 오는 정수값은 섹션의 시작으로 부터 해당 심볼이 어디에 위치해 있는지 알려줍니다. 예를 들어서 func
함수의 경우 텍스트 섹션 시작 부분에 있다는 의미 이고 (오프셋이 0 이니까), func2
의 경우 b
만큼 떨어진 부분에 위치해있다는 의미죠. 실제로 objdump 로 코드를 살펴보면;
objdump - S s . o
s . o : file format elf64 - x86 - 64
Disassembly of section . text :
0000000000000000 <_Z4funcv>:
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp , %rbp
8: 90 nop
9: 5d pop %rbp
a: c3 retq
000000000000000b <_ZL5func2v>:
b: f3 0f 1e fa endbr64
f: 55 push %rbp
10: 48 89 e5 mov %rsp , %rbp
13: 90 nop
14: 5d pop %rbp
15: c3 retq
정확히 0xb
부분에 func2
가 자리하고 있음을 알 수 있습니다.
지난 강의에서도 이야기 하였듯이 TU 에서 생성된 목적 코드들은 링킹 과정 전 까지 심볼들의 위치를 확정할 수 없기 때문에 추후에 심볼들의 위치가 확정이 되면 값을 바꿔야 할 부분들을 적어놓은 재배치 테이블 (Relocation Table) 을 생성한다고 하였습니다. 예를 들어서 아래와 같은 코드를 살펴봅시다.
static int a = 3 ;
int b = 3 ;
static int c;
static int func2 () {
c += a + b;
return c;
}
int func3 () {
b += c;
return b;
}
int func () {
a += func2 ();
a += func3 ();
return a;
}
objdump 에 -r
옵션을 주면 재배치가 필요한 부분들을 보여줍니다. 예를 들어서 func2
의 목적 코드가 어떤 식으로 생겼는지 살펴봅시다.
objdump - Sr s . o
s . o : file format elf64 - x86 - 64
Disassembly of section . text :
0000000000000000 <_ZL5func2v>:
static int a = 3 ;
int b = 3 ;
static int c ;
static int func2 () {
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp , %rbp
c = a + b ;
8: 8b 15 00 00 00 00 mov 0x0 ( %rip ) , %edx # e <_ZL5func2v+0xe>
a: R_X86_64_PC32 .data - 0x4
e: 8b 05 00 00 00 00 mov 0x0 ( %rip ) , %eax # 14 <_ZL5func2v+0x14>
10: R_X86_64_PC32 b - 0x4
14: 01 d0 add %edx , %eax
16: 89 05 00 00 00 00 mov %eax , 0x0 ( %rip ) # 1c <_ZL5func2v+0x1c>
18: R_X86_64_PC32 .bss - 0x4
return c ;
1c: 8b 05 00 00 00 00 mov 0x0 ( %rip ) , %eax # 22 <_ZL5func2v+0x22>
1e: R_X86_64_PC32 .bss - 0x4
}
22: 5d pop %rbp
23: c3 retq
예상했던대로, 내부 및 외부 링크 방식인 변수들인 a, b, c
들은 데이터 섹션과 BSS
섹션의 위치가 확정되기 전까지 어디에 위치할 지 모르기 때문에 추후에 재배치 시켜야만 합니다. 예를 들어서 a
의 값을 읽어들이는 부분부터 봅시다.
8: 8b 15 00 00 00 00 mov 0x0(%rip),%edx # e <_ZL5func2v+0xe>
먼저 0x0(%rip),%edx
의 어셈블리는 C 코드로 바꿔서 생각했을 때 %edx = *(int*)(%rip + 0x0)
이라고 보시면 됩니다. 즉 RIP
레지스터에다 0 만큼 더한 주소값에 있는 데이터를 읽어라 라는 의미가 됩니다.
여기서 a
의 상대적 위치가 결정되지 않았기 때문에 일단 0 으로 대체되어 있습니다. 그 대신에, 만일 a
가 어디에 배치되는지 위치가 확정이 된다면,
$ readelf -r s.o
Offset Info Type Sym. Value Sym. Name + Addend
00000000000a 000300000002 R_X86_64_PC32 0000000000000000 .data - 4
위와 같이 해당 부분을 R_X86_64_PC32
의 형태로 재배치 하라고 써져 있습니다. (위 objdump 출력에도 나와있죠.) 레퍼런스에 따르면 R_X86_64_PC32
은 해당 부분 4 바이트 영역을 S + A - P 를 계산한 값으로 치환해라 라는 의미 입니다. 이 때 S, A, P
는 각각
일단 readelf
를 통해 확인했을 때 일단 A 의 값은 -4
임을 알 수 있습니다 (Addend 부분). 나머지 부분은 링킹 후에 심볼들의 위치가 정해져야지 알 수 있겠죠. 따라서 간단히 int main{}
만 있는 파일과 같이 링크해보도록 합시다.
nm
을 통해서 우리의 경우 a
는 4010
에 위치 되어 있는 것을 확인했습니다.
$ nm s
0000000000004010 d _ZL1a
따라서 S 는 0x4010
이 되겠죠.
또한 func2
는 1138
에 위치해있으므로 (마찬가지로 nm
을 통해서 확인 가능)
$ nm s
0000000000001138 t _ZL5func2v
재배치 해야 할 위치는 0x1138
에서 a 를 더한 만큼인 0x1142
가 됩니다. 따라서 P 는 0x1142
이므로, S + A - P = 0x4010 - 0x4 - 0x1142 = 0x2ECA
가 되겠죠.
과연 우리의 계산이 맞는지 확인해볼까요?
0000000000001138 <_ZL5func2v>:
static int a = 3 ;
int b = 3 ;
static int c ;
static int func2 () {
1138: f3 0f 1e fa endbr64
113c: 55 push %rbp
113d: 48 89 e5 mov %rsp , %rbp
c = a + b ;
1140: 8b 15 ca 2e 00 00 mov 0x2eca ( %rip ) , %edx # 4010 <_ZL1a>
1146: 8b 05 c8 2e 00 00 mov 0x2ec8 ( %rip ) , %eax # 4014 <b>
114c: 01 d0 add %edx , %eax
114e: 89 05 c8 2e 00 00 mov %eax , 0x2ec8 ( %rip ) # 401c <_ZL1c>
return c ;
1154: 8b 05 c2 2e 00 00 mov 0x2ec2 ( %rip ) , %eax # 401c <_ZL1c>
}
115a: 5d pop %rbp
115b: c3 retq
실제로 해당 부분이 ca 2e 00 00
으로 바뀐 것이 보이죠! 리틀 엔디언임을 고려하면 해당 값이 0x2ECA
임을 알 수 있습니다. 0x2eca(%rip)
의 의미는 RIP
레지스터에서 0x2ECA
만큼 떨어진 곳에 있는 곳에서 4 바이트 만큼 읽어서 EDX
레지스터에 저장하라는 의미 입니다. 해당 명령어를 실행할 때 RIP
에는 다음에 실행할 명령어의 위치가 들어가 있으니, 0x2ECA + 0x1146 = 0x4010
에 위치한 곳의 4 바이트를 읽어들이겠죠. 즉 정확히 우리의 변수인 a
가 위치해있는 곳입니다!
나머지 변수들의 위치도 비슷하게 계산됩니다. 여러분이 직접 한 번 계산해보세요.
이번에는 func3
를 한 번 살펴보겠습니다.
45: 48 89 e5 mov %rsp , %rbp
a += func2 () ;
48: e8 b3 ff ff ff callq 0 < _ZL5func2v >
4d: 8b 15 00 00 00 00 mov 0x0 ( %rip ) , %edx # 53 <_Z4funcv+0x13>
4f: R_X86_64_PC32 .data - 0x4
53: 01 d0 add %edx , %eax
55: 89 05 00 00 00 00 mov %eax , 0x0 ( %rip ) # 5b <_Z4funcv+0x1b>
57: R_X86_64_PC32 .data - 0x4
a += func3 () ;
5b: e8 00 00 00 00 callq 60 < _Z4funcv + 0x20 >
5c: R_X86_64_PLT32 _Z5func3v - 0x4
60: 8b 15 00 00 00 00 mov 0x0 ( %rip ) , %edx # 66 <_Z4funcv+0x26>
62: R_X86_64_PC32 .data - 0x4
66: 01 d0 add %edx , %eax
68: 89 05 00 00 00 00 mov %eax , 0x0 ( %rip ) # 6e <_Z4funcv+0x2e>
6a: R_X86_64_PC32 .data - 0x4
return a ;
6e: 8b 05 00 00 00 00 mov 0x0 ( %rip ) , %eax # 74 <_Z4funcv+0x34>
70: R_X86_64_PC32 .data - 0x4
}
74: 5d pop %rbp
75: c3 retq
먼저 static
함수인 func2
를 호출하는 부분부터 살펴봅시다.
a += func2 () ;
48: e8 b3 ff ff ff callq 0 < _ZL5func2v >
놀랍게도 이 부분의 경우 재배치가 지정되지 않고 실제 func2
의 위치가 그대로 들어가 있음을 알 수 있습니니다. 왜냐하면 이 callq
의 경우 현재의 RIP
에서 상대 위치를 받는데, 0xFFFFFFB3
가 2 의 보수 표현법으로 -0x4D
이므로, 정확히 주소값 0 을 의미합니다 (0x4D - 0x4D = 0). 그리고 실제로 0 번에 func2
함수가 위치하고 있죠.
그 이유는 static
함수의 경우 내부 링크 방식이기 때문에 TU 밖에서 참조될 일이 없기 때문입니다. 이 때문에 컴파이 타임에 함수의 위치를 확정시킬 수 있습니다. 반면에 외부 링크 방식으로 된 일반적인 func3
함수를 호출하는 부분을 봅시다.
a += func3 () ;
5b: e8 00 00 00 00 callq 60 < _Z4funcv + 0x20 >
5c: R_X86_64_PLT32 _Z5func3v - 0x4
이 경우 R_X86_64_PLT32
의 형태로 링크를 하고 있습니다. R_X86_64_PLT32
의 경우 뒤에서 다루겠지만 프로시져 링크 테이블 (Procedure Linkage Table) 을 사용한 링킹 방식으로 후에 설명할 동적 링크 방식 (Dynamic linking) 에서 사용됩니다. 하지만 동적 링크 방식을 사용하지 않았을 경우, 그냥 R_X86_64_PC32
와 동일하다고 보시면 됩니다.
우리의 경우 실행 파일을 생성하기 위해 동적 링크 방식을 사용하지 않았으므로 그냥 R_X86_64_PC32
와 같은 식으로 계산됩니다. 실제로 완성된 코드를 살펴보자면
1194: e8 c4 ff ff ff callq 115d < _Z5func3v >
와 같이 되어 있는데, 00 00 00 00
부분이 현재의 RIP
로 부터 상대적 위치값으로 변경되어 있음을 알 수 있습니다.
위에서 잠깐 동적 링크 방식을 언급하였는데, 컴파일러가 여러 목적 파일들을 링크하는 방식은 정적 링킹 (Static linking) 과 동적 링킹 (Dynamic Linking) 두 가지로 구분됩니다. 이 두 방식의 차이는 간단합니다. 정적 링킹은 정적 라이브러리 (Static library) 를 링크하는 방식이고, 동적 링킹은 동적 라이브러리 (Dynamic library), 다른 말로 공유 라이브러리 (Shared library) 를 링크하는 방식입니다. 뭔가 말장난 같죠? 이 두 라이브러리의 차이를 이해하기 위해서 먼저 정적 라이브러리가 뭔지 알아보도록 합시다.
정적 라이브러리 (Static library) 가 뭔지 설명하기 전에 먼저 라이브러리 라는 개념이 무엇인지 뭔지 생각해봅시다. 라이브러리란 그냥 프로그램이 동작하기 위해 필요한 외부 목적 코드들이라고 생각하시면 됩니다.
예를 들어서 우리가 C++ 에서 iostream 헤더파일을 include
했다면, 이 프로그램이 실행하기 위해서는 iostream 라이브러리가 있어야 하겠죠.
이 때 정적 라이브러리는 우리가 필요로 하는 라이브러리가 링킹 후에 완성된 프로그램 안에 포함된다고 생각하시면 됩니다. 쉽게 말해 실행 파일 자체에 해당 라이브러리 코드가 딱 박혀서 있기 때문에 정적 (static)이라고 하는 것입니다. 예를 들어서 어떤 프로그램이 A 라는 라이브러리와 B 라는 라이브러리를 사용하고 있다면 프로그램의 어셈블리를 출력하였을 때 A 와 B 라이브러리의 모든 코드들이 들어있게 됩니다.
두 개의 정적 라이브러리를 링크한 프로그램
어떻게 생각하면 당연한 일이기도 합니다. 프로그램을 실행하기 위해선 당연히 해당 프로그램이 필요로 하는 코드들이 프로그램 안에 있어야 되기 때문이죠.
정적 라이브러리가 어떻게 링크 되는지 GCC 컴파일러를 사용해서 간단한 정적 라이브러리를 만들어봅시다.
예를 들어서 foo
라는 함수를 제공하는 foo.cc 파일과 bar
라는 함수를 제공하는 bar.cc 파일이 있다고 해봅시다.
// bar.h
void bar ();
// bar.cc
void bar () {}
// foo.h
int foo ();
// foo.cc
#include "bar.h"
int x = 1 ;
int foo () {
bar ();
x ++ ;
return 1 ;
}
이 두 파일들을 각각 컴파일 하면 foo.o 와 bar.o 라는 목적 코드가 생성이 되겠죠. 만일 이 두 함수를 제공하는 정적 라이브러리를 만들기 위해서는, 이 두 목적 파일들을 하나로 묶어주기만 하면 됩니다. 이를 위해선
$ ar crf libfoobar.a foo.o bar.o
라고 치면 libfoobar.a 라는 정적 라이브러리 파일이 만들어집니다. 리눅스에선 통상적으로 정적 라이브러리 파일은 .a 의 확장자를 가집니다. 이 libfoobar.a 은 거창한 것이 아니고 그냥 foo.o 의 내용과 bar.o 의 내용을 하나로 합쳐놓은 것이라 보시면 됩니다. 실제로 objdump 로 libfoobar.a 의 내용을 열어보면;
objdump - S libfoobar . a
In archive libfoobar . a :
foo . o : file format elf64 - x86 - 64
Disassembly of section . text :
0000000000000000 <_Z3foov>:
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp , %rbp
8: e8 00 00 00 00 callq d < _Z3foov + 0xd >
d: 8b 05 00 00 00 00 mov 0x0 ( %rip ) , %eax # 13 <_Z3foov+0x13>
13: 83 c0 01 add $0x1 , %eax
16: 89 05 00 00 00 00 mov %eax , 0x0 ( %rip ) # 1c <_Z3foov+0x1c>
1c: b8 01 00 00 00 mov $0x1 , %eax
21: 5d pop %rbp
22: c3 retq
bar . o : file format elf64 - x86 - 64
Disassembly of section . text :
0000000000000000 <_Z3barv>:
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp , %rbp
8: 90 nop
9: 5d pop %rbp
a: c3 retq
와 같이 그냥 foo.o 와 bar.o 가 하나로 합쳐진 파일 이라 보시면 됩니다 (마치 리눅스에서 tar
로 파일들을 합친 것과 비슷)
이 정적 라이브러리를 사용하는 방법은 간단합니다.
예를 들어서 main.cc 라는 파일에서 foo
함수를 사용하고 싶다고 해봅시다. 그렇다면 우리가 필요한 것은 foo
함수가 선언 되어 있는 헤더파일 하나 뿐입니다.
#include "foo.h"
int main () { foo (); }
통상적인 상황이라면 main
을 컴파일 하면서 실행파일을 생성할 때, foo.cc 코드와 bar.cc 코드를 같이 컴파일 해서 링킹해야 했을 것입니다. 하지만 우리는 이미 foo.cc 와 bar.cc 가 이미 컴파일 되어 있는 libfoobar.a 라는 라이브러리가 있기 때문에 굳이 이들을 다시 컴파일 할 필요가 없습니다.
따라서 아래와 같이 실행 파일을 생성 시에
$ g++ main.cc libfoobar.a -o main
위 처럼 링크해주기만 하면 땡입니다. 그래고 실제로 main
의 내용을 objdump 로 살펴보면
objdump - S main
... (생략) ...
0000000000001129 <main>:
1129: f3 0f 1e fa endbr64
112d: 55 push %rbp
112e: 48 89 e5 mov %rsp , %rbp
1131: e8 07 00 00 00 callq 113d < _Z3foov >
1136: b8 00 00 00 00 mov $0x0 , %eax
113b: 5d pop %rbp
113c: c3 retq
000000000000113d <_Z3foov>:
113d: f3 0f 1e fa endbr64
1141: 55 push %rbp
1142: 48 89 e5 mov %rsp , %rbp
1145: e8 16 00 00 00 callq 1160 < _Z3barv >
114a: 8b 05 c0 2e 00 00 mov 0x2ec0 ( %rip ) , %eax # 4010 <x>
1150: 83 c0 01 add $0x1 , %eax
1153: 89 05 b7 2e 00 00 mov %eax , 0x2eb7 ( %rip ) # 4010 <x>
1159: b8 01 00 00 00 mov $0x1 , %eax
115e: 5d pop %rbp
115f: c3 retq
0000000000001160 <_Z3barv>:
1160: f3 0f 1e fa endbr64
1164: 55 push %rbp
1165: 48 89 e5 mov %rsp , %rbp
1168: 90 nop
1169: 5d pop %rbp
116a: c3 retq
116b: 0f 1f 44 00 00 nopl 0x0 ( %rax , %rax , 1 )
위 처럼 libfoobar.a 의 내용이 그대로 박혀있는 것 을 볼 수 있습니다.
이렇게 정적 라이브러리는 링크 타임에 바인딩 된다고 생각하시면 됩니다.
정적 라이브러리에는 프로그램 실행에 필요한 모든 코드가 들어가 있기 때문에 환경에 크게 관계 없이 프로그램을 실행 시킬 수 있습니다. 그런데 이 방식은 몇 가지 문제점들이 있습니다.
표준 C 라이브러리인 libc 의 경우 많은 프로그램들이 필요로 합니다. 그런데 libc 라이브러리에는 C 라이브러리의 모든 함수들의 구현이 들어가 있기 때문에 크기가 매우 큽니다 (제 경우 2MB 정도). 따라서 libc 를 프로그램에 정적으로 링크하게 된다면 모든 프로그램의 크기가 최소 2 MB
나 된다는 뜻이겠죠? 심지어 모든 프로그램들이 동일한 libc 라이브러리를 사용하고 있다고 해도 말이죠!
물론 요즘 세상에 2 MB 정도야 라고 생각할 수 있습니다. 하드 디스크는 용량이 크기 때문이죠. 하지만 문제는 메모리 입니다. 프로그램이 실행되면 프로그램이 메모리에 로드 되는데, 모든 프로그램들이 똑같은 libc 코드들을 메모리에 올린다면 엄청난 메모리 낭비가 되겠죠. 게다가 메모리는 하드 디스크 보다 훨씬 더 귀한 자원입니다.
예를 들어서 새 버전의 libc 나와서 이를 내 시스템에 적용시키고 싶다고 해봅시다. 만일 프로그램들이 libc 를 정적으로 링킹하고 있다면 이 프로그램들을 다시 컴파일해야 합니다.
마지막 문제로 정적 라이브러리 전체를 링킹하면서 사용하지 않는 함수들 까지 전부다 프로그램에 포함된다는 것입니다. 이도 마찬가지로 용량 낭비를 유발합니다.
따라서 컴퓨터 개발자들은 이 문제를 해결하기 위해 획기적인 방법을 제시합니다. 앞서 정적 라이브러리의 가장 큰 문제점으로 모든 프로그램들이 같은 라이브러리를 링킹 하더라도 정적으로 링킹할 경우 프로그램 내에 동일한 라이브러리 코드를 포함해야 한다 였습니다. 그렇다면 만약에 이렇게 많은 프로그램 상에서 사용되는 라이브러리를 컴퓨터 메모리 상에 딱 하나 올려놓고, 이를 사용하는 프로그램들이 해당 라이브러리를 공유 하면 어떨까요? 이 것이 바로 공유 라이브러리 (Shared library) 의 출발 입니다.
아래 그림은 여러 프로그램들이 메모리에 올라가 있을 때 정적 라이브러리를 사용한 프로그램과 공유 라이브러리를 사용한 라이브러리의 차이 입니다.
공유 라이브러리와 정적 라이브러리의 차이
보시다시피 libc 의 경우 정적 라이브러리를 사용하게 되면 각 프로그램마다 libc 를 가지고 있게 되지만 공유 라이브러리 형태로 사용한다면 메모리에 딱 한 군데에만 libc 가 있으면 충분합니다. 예를 들어서 현재 제 프로그램에서 libc 라이브러리를 사용하는 프로세스들을 보면
$ lsof /usr/lib/x86_64-linux-gnu/libc-2.31.so
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/125/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1632 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
onedrive 1645 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
pulseaudi 1646 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
tracker-m 1648 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
dbus-daem 1665 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
gvfsd 1672 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
gvfsd-fus 1682 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
gvfs-udis 1700 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
gvfs-goa- 1707 jaebum mem REG 8,6 2029224 8390793 /usr/lib/x86_64-linux-gnu/libc-2.31.so
... (생략) ...
lsof
프로그램을 사용하면 우리가 지정한 공유 라이브러리를 어떤 프로그램이 사용하고 있는지 알 수 있습니다. 위 처럼 많은 수의 프로그램들이 사용하고 있죠.
그런데 여기서 잠깐! 컴퓨터 구조를 배우신 분들은 각 프로세스들은 메모리는 다른 프로세스들과 독립적이고 서로 접근할 수 없는 것으로 알고 있을 것입니다. 그런데 어떻게 서로 다른 프로그램이 같은 메모리를 공유할 수 있는 것일까요? 그 이유는 간단합니다.
공유라이브러리가 메모리에 올라가 있는 모습
위 처럼 각각의 프로세스에는 고유의 페이지 테이블이 있습니다. 실제 프로세스가 보는 가상 메모리 에서는 (위 그림에서 왼쪽 부분) 는 오른쪽과 같습니다. 문제는 프로세스마다 코드의 크기가 다르기 때문에 공유 라이브러리가 각 프로세스의 가상 메모리에 놓이는 위치가 다르게 된다는 점입니다. 위 그림 처럼 프로세스 1 의 libc 는 0x1234
에, 프로세스 2 의 libc 는 0xABCD
에, 프로세스 3 의 libc 는 0x10
에 놓여 있습니다.
하지만 걱정할 필요 없습니다. 프로세스 마다 가상 메모리를 물리 메모리로 변환하는 페이지 테이블이 있기 때문입니다 (페이지 테이블의 뭔지 모르신다면 여기 를 참조하시면 됩니다.)
따라서 실제 물리 메모리에 libc 코드를 딱 한 군데만 올려 놓고 각 프로세스의 페이지 테이블 내용을 바꿔줌으로써 마치 프로세스 마다 고유의 위치에 libc 코드가 있는 것 마냥 사용할 수 있습니다.
그렇다면 한 가지 궁금한 것이 있습니다.
그러면 그냥 정적 라이브러리를 공유 라이브러리 처럼 쓰면 안되나?
좋은 질문입니다. 앞서 말했듯이 공유 라이브러리의 경우 프로세스의 가상 메모리 안의 임의의 위치에 로드될 수 있어야 된다고 하였습니다. 그런데, 만약에 앞서 보았던 libfoobar.a 에서의 foo
함수의 어셈블리 코드를 다시 봅시다.
000000000000113d <_Z3foov>:
113d: f3 0f 1e fa endbr64
1141: 55 push %rbp
1142: 48 89 e5 mov %rsp , %rbp
1145: e8 16 00 00 00 callq 1160 < _Z3barv >
114a: 8b 05 c0 2e 00 00 mov 0x2ec0 ( %rip ) , %eax # 4010 <x>
1150: 83 c0 01 add $0x1 , %eax
1153: 89 05 b7 2e 00 00 mov %eax , 0x2eb7 ( %rip ) # 4010 <x>
1159: b8 01 00 00 00 mov $0x1 , %eax
115e: 5d pop %rbp
115f: c3 retq
위 처럼 x 의 값을 읽는 부분에서 실제 x
의 주소값으로 값이 대체된 것을 볼 수 있습니다. 다시 말해 정적 라이브러리는 외부 링크 방식을 가지는 심볼들을 호출하는 부분이 모두 해당 심볼들의 실제 주소값으로 대체되었다는 점입니다. 해당 라이브러리 코드를 메모리 임의의 지점에 불러온다면 우리가 원하는 심볼들을 찾을 수 없게 됩니다.
따라서 공유 라이브러리의 경우 정적 라이브러리와 다른 방식으로 외부 링크 방식을 가지는 심볼들을 불러옵니다. 그 차이를 알기 위해 먼저 공유 라이브러리를 한 번 만들어보겠습니다.
공유 라이브러리는 컴파일러를 통해서 제작할 수 있습니다. 만약에 원래 하던 것 처럼 foo.cc 와 bar.cc 를 컴파일 했다고 해봅시다.
$ g++ -shared foo.o bar.o -o libfoobar.so
/usr/bin/ld: foo.o: relocation R_X86_64_PC32 against symbol `x' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
그렇다면 위와 같은 오류 메세지를 볼 수 있습니다. 오류 메세지를 그대로 해석해보면 x
심볼에 적용된 R_X86_64_PC32
방식은 공유 라이브러리를 만드는데 사용할 수 없다는 의미죠. 한 번 objdump 로 x
심볼이 사용되는 foo.o 의 재배치 방식을 살펴보겠습니다.
objdump - Sr foo . o
foo . o : file format elf64 - x86 - 64
Disassembly of section . text :
0000000000000000 <_Z3foov>:
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp , %rbp
8: e8 00 00 00 00 callq d < _Z3foov + 0xd >
9: R_X86_64_PLT32 _Z3barv - 0x4
d: 8b 05 00 00 00 00 mov 0x0 ( %rip ) , %eax # 13 <_Z3foov+0x13>
f: R_X86_64_PC32 x - 0x4
13: 83 c0 01 add $0x1 , %eax
16: 89 05 00 00 00 00 mov %eax , 0x0 ( %rip ) # 1c <_Z3foov+0x1c>
18: R_X86_64_PC32 x - 0x4
1c: b8 01 00 00 00 mov $0x1 , %eax
21: 5d pop %rbp
22: c3 retq
실제로 x
심볼을 참조하는 부분에서 R_X86_64_PC32
방식을 사용하고 있는 것을 알 고 있습니다. 그렇다면 왜 R_X86_64_PC32
재배치 방식을 공유 라이브러리를 만드는데 사용할 수 없을까요? 그 이유는 R_X86_64_PC32
방식을 계산할 때 S + A - P
였던 것을 기억하시죠? 그런데 공유 라이브러리의 경우 임의의 위치에 라이브러리가 위치할 수 있기 때문에 섹션의 위치를 특정할 수 없습니다. 따라서 S + A - P
의 값 자체를 계산할 수 가 없죠.
따라서 결국에는 foo.cc 와 bar.cc 를 다시 컴파일 해야 합니다. 이 때 컴파일 시에 인자로 위치와 무관한 코드 (Position Independent Code - PIC) 를 만들라는 의미의 -fpic
인자를 전달해줘야 합니다.
$ g++ -c -fpic foo.cc
$ g++ -c -fpic bar.cc
$ g++ -shared foo.o bar.o -o libfoobar.so
를 하면 공유 라이브러리인 libfoobar.so
가 잘 생성된 것을 볼 수 있습니다. 참고로 리눅스에선 보통 공유 라이브러리의 확장자로 so
를 사용합니다 (shared object)
그렇다면 libfoobar.so
한 번 간단한 프로그램에 링크해서 사용해 보도록 하겠습니다.
#include "bar.h"
#include "foo.h"
int main () {
bar ();
foo ();
}
링크 하는 방법은 이전과도 똑같이 그냥
$ g++ main.cc libfoobar.so -g -o main
하면 됩니다. 그렇다면 main
의 내용은 어떻게 생겼는지 한 번 objdump 로 까봅시다.
objdump - S main
main : file format elf64 - x86 - 64
Disassembly of section . plt :
0000000000001020 <.plt>:
1020: ff 35 92 2f 00 00 pushq 0x2f92 ( %rip ) # 3fb8 <_GLOBAL_OFFSET_TABLE_+0x8>
1026: f2 ff 25 93 2f 00 00 bnd jmpq * 0x2f93 ( %rip ) # 3fc0 <_GLOBAL_OFFSET_TABLE_+0x10>
102d: 0f 1f 00 nopl ( %rax )
1030: f3 0f 1e fa endbr64
1034: 68 00 00 00 00 pushq $0x0
1039: f2 e9 e1 ff ff ff bnd jmpq 1020 < .plt >
103f: 90 nop
1040: f3 0f 1e fa endbr64
1044: 68 01 00 00 00 pushq $0x1
1049: f2 e9 d1 ff ff ff bnd jmpq 1020 < .plt >
104f: 90 nop
Disassembly of section . plt . sec :
0000000000001060 <_Z3foov@plt>:
1060: f3 0f 1e fa endbr64
1064: f2 ff 25 5d 2f 00 00 bnd jmpq * 0x2f5d ( %rip ) # 3fc8 <_Z3foov>
106b: 0f 1f 44 00 00 nopl 0x0 ( %rax , %rax , 1 )
0000000000001070 <_Z3barv@plt>:
1070: f3 0f 1e fa endbr64
1074: f2 ff 25 55 2f 00 00 bnd jmpq * 0x2f55 ( %rip ) # 3fd0 <_Z3barv>
107b: 0f 1f 44 00 00 nopl 0x0 ( %rax , %rax , 1 )
Disassembly of section . text :
0000000000001169 <main>:
int main () {
1169: f3 0f 1e fa endbr64
116d: 55 push %rbp
116e: 48 89 e5 mov %rsp , %rbp
bar () ;
1171: e8 fa fe ff ff callq 1070 < _Z3barv@plt >
foo () ;
1176: e8 e5 fe ff ff callq 1060 < _Z3foov@plt >
}
117b: b8 00 00 00 00 mov $0x0 , %eax
1180: 5d pop %rbp
1181: c3 retq
1182: 66 2e 0f 1f 84 00 00 nopw %cs : 0x0 ( %rax , %rax , 1 )
1189: 00 00 00
118c: 0f 1f 40 00 nopl 0x0 ( %rax )
참고로 위 코드는 전체 objdump 로 출력된 부분에서 설명에서 필요한 부분만 잘라낸 것입니다. 나머지 부분들이 무슨 역할을 하는지는 다음 강의에서 살펴볼 예정입니다.
아무튼 흥미롭게도, 이전에 정적으로 링크했을 경우와는 다르게 foo
나 bar
의 내용이 전혀 없음을 알 수 있습니다. foo
나 bar
의 내용이 없는데 그러면 main
은 foo
와 bar
함수를 어떻게 호출하고 있을까요?
신기하게도
bar () ;
1171: e8 fa fe ff ff callq 1070 < _Z3barv@plt >
foo () ;
1176: e8 e5 fe ff ff callq 1060 < _Z3foov@plt >
위와 같이 foo
나 bar
을 직접 호출하는 대신에 (어차피 호출할 수 도 없습니다.), PLT 섹션에 있는 foo@plt
와 bar@plt
를 호출하고 있습니다. 그렇다면 이들은 어떻게 정의되어 있을까요?
0000000000001060 <_Z3foov@plt>:
1060: f3 0f 1e fa endbr64
1064: f2 ff 25 5d 2f 00 00 bnd jmpq * 0x2f5d ( %rip ) # 3fc8 <_Z3foov>
106b: 0f 1f 44 00 00 nopl 0x0 ( %rax , %rax , 1 )
0000000000001070 <_Z3barv@plt>:
1070: f3 0f 1e fa endbr64
1074: f2 ff 25 55 2f 00 00 bnd jmpq * 0x2f55 ( %rip ) # 3fd0 <_Z3barv>
107b: 0f 1f 44 00 00 nopl 0x0 ( %rax , %rax , 1 )
흥미롭네요. jmpq *0x2f5d(%rip)
이 명령어에 의미는, rip + 0x2f5d
위치에 써져 있는 주소값으로 점프해라 라는 의미 입니다. 위 경우 rip + 0x2f5d
가 0x3FC8
이므로 0x3FC8
의 위치에 무엇이 써져 있는지 살펴 보아야 겠습니다. 이를 위해서 objdump 에 -s
를 주고 실행해보면 모든 섹션들의 데이터를 볼 수 있습니다. 참고로 nopl 은 그냥 아무 것도 하지 않는 명령어로 컴파일러가 plt 엔트리들의 위치를 8 의 배수로 맞추기 위해 넣어 놓은 것입니다.
$ objdump -s main
... (생략) ...
Contents of section .got:
3fb0 a03d0000 00000000 00000000 00000000 .=..............
3fc0 00000000 00000000 30100000 00000000 ........0.......
3fd0 40100000 00000000 00000000 00000000 @...............
3fe0 00000000 00000000 00000000 00000000 ................
3ff0 00000000 00000000 00000000 00000000 ................
와 같이 나옴을 알 수 있습니다. 여기서 0x3FC8
부분에 무엇이 써져 있는지 보면 0x1030
임을 알 수 있죠 (리틀 엔디안 임을 감안해서!). 다시 말해 위 문장은 jmpq 0x1030
과 동일한 의미 입니다. 마찬가지로 bar
부분을 보면 0x3FD0
에 써져 있는 주소값으로 점프하라는 의미 인데, 해당 부분에는 0x1040
이 쓰여 있습니다. 따라서 main
에서 bar@plt
를 호출하게 되면 0x1040
으로 점프하게 됩니다.
그렇다면 0x1040
에는 뭐가 있을까요?
0000000000001020 <.plt>:
1020: ff 35 92 2f 00 00 pushq 0x2f92 ( %rip ) # 3fb8 <_GLOBAL_OFFSET_TABLE_+0x8>
1026: f2 ff 25 93 2f 00 00 bnd jmpq * 0x2f93 ( %rip ) # 3fc0 <_GLOBAL_OFFSET_TABLE_+0x10>
102d: 0f 1f 00 nopl ( %rax )
1030: f3 0f 1e fa endbr64
1034: 68 00 00 00 00 pushq $0x0
1039: f2 e9 e1 ff ff ff bnd jmpq 1020 < .plt >
103f: 90 nop
1040: f3 0f 1e fa endbr64
1044: 68 01 00 00 00 pushq $0x1
1049: f2 e9 d1 ff ff ff bnd jmpq 1020 < .plt >
104f: 90 nop
흥미롭네요. 스택에 1 을 푸시하고 PLT 맨 위로 점프합니다. 그리고 다시 스택에 0x2f92(%rip)
를 푸시하고, *0x2f93(%rip)
로 점프합니다. 흥미롭네요. 도대체 뭔 일이 벌어지고 있는 것일까요? 도대체 bar
함수는 어디에서 실행되는 것일까요?
일단 한 번 아래 그림으로 정리 해보도록 하겠습니다.
공유 라이브러리의 함수가 처음 실행될 때
가장 먼저 main
함수에서 공유 라이브러리 안에 있는 bar
함수를 호출합니다. 만일 bar
가 정적으로 링크된 라이브러리의 함수였다면 그냥 bar
가 정의된 위치를 호출하였겠죠. 하지만 공유 라이브러리의 경우 프로그램 어디에 위치 되었는지 알 수 없기 때문에 해당 함수를 직접 호출하는 것은 불가능 합니다.
따라서 어떤 방식을 취하게 되냐면 GOT (Global Offset Table) 라는 이름의 데이터 테이블을 프로그램 내부에 만든 다음에, 실제 함수들의 주소값을 이 테이블에 적어놓습니다. 그리고 우리가 함수를 호출하게 되면 해당 함수의 실제 위치를 이 테이블을 통해서 알아내게 됩니다.
예를 들어서 bar
함수가 GOT
에 두 번째 위치에 (GOT[1]
) 써져 있다고 해봅시다. 그렇다면 그냥 call *GOT[1]
을 하게 되면 bar
함수를 호출할 수 있는 것입니다. 하지만 처음 프로그램을 갓 실행한 상태에서는 bar
함수가 어디에 위치할 지 알 수 없기 때문에 GOT[1]
에 bar
의 위치를 써 넣을 수 없습니다. 따라서 이를 위해서 처음에 GOT[1]
에 bar 의 실제 위치를 알아낸 후 해당 주소값을 GOT[1] 자리에 덮어 씌우는 함수 를 써 놓는 것입니다.
자 그렇다면 위 그림을 살펴봅시다.
먼저 main
에서 진짜 bar
을 호출 시켜주는 함수인 bar@plt
를 호출합니다.
bar@plt
는 GOT
에서 bar
에 해당하는 엔트리인 GOT[1]
로 점프합니다.
이 경우 bar
가 처음 호출된 상황 이므로 GOT[1]
에는 bar
의 주소값이 들어 있지 않고 PLT 안에 정의된 bar 의 실제 위치를 찾는 루틴 으로 점프합니다. 참고로 PLT 는 Procedure Linkage Table 의 약자로 링크 타임 시에 위치를 알 수 없는 함수들의 위치를 찾아내주는 루틴들을 모아놓은 테이블 입니다.
bar
의 GOT
상의 위치는 1 이므로, 스택에 1 을 푸시한 뒤, 해당 심볼의 위치를 찾는 루틴 으로 점프합니다. 해당 루틴은 보통 PLT 맨 상단에 정의되어 있습니다.
해당 루틴에선 곧바로 Dynamic Loader
라이브러리 코드로 점프합니다. 이제 이 라이브러리에서 우리가 원하는 bar 함수가 도대체 어디에 정의되어 있는지 찾게 됩니다. 참고로 왜 그냥 4 번을 거칠 필요 없이 3 에서 5 로 바로 점프할 수 없냐 궁금하실 수 있는데 일단 (1) 동적 로더 (Dynamic loader) 자체도 공유 라이브러리이고 (2) GOT
의 위치를 전달해야 하기 때문 입니다.
참고로 리눅스의 경우 ld.so
라는 이름의 동적 로더를 사용하고 있습니다. ld.so
는 필요로 하는 심볼을 찾은 뒤 해당 GOT
위치를 업데이트 합니다. 따라서 GOT[1]
에는 이제 bar
의 실제 주소값이 들어가게 됩니다. 어떤 로더를 사용할지는 프로그램의 interop
섹션에 정의되어 있습니다.
마지막으로 bar
함수로 점프합니다.
자 그렇다면 만약에 두 번째로 bar
을 호출하게 된다면 어떨까요?
공유 라이브러리의 함수가 두 번째로 실행될 때
이제는 GOT[1]
안에 bar
의 주소값이 들어 있기 때문에 복잡한 루틴 필요 없이 그냥 바로 bar
을 호출할 수 있게 됩니다.
이와 같이 함수가 실행 될 때 GOT
엔트리에 등록되는 방식을 lazy binding 이라고 합니다.
Lazy binding 의 장점으로는 만약에 bar
이 프로그램 상에서 한 번도 호출되지 않았더라면 굳이 bar
의 위치를 찾을 필요가 없습니다. 동적 라이브러리에서 사용하는 함수의 위치를 찾는 작업은 결코 공짜가 아니기에 시간을 절약할 수 있습니다.
그 대신 lazy binding 의 문제로는 해당 함수를 첫 번째로 실행하는 시점에서 많은 시간이 소요된다는 것입니다. 따라서 프로그램이 실행 중에 뜨문 뜨문 렉이 걸리는 상황이 발생할 수 있죠. 차라리 프로그램 시작 시에 모든 동적으로 바인딩 되는 심볼들을 찾아버리는 것이 오히려 나을 수 도 있습니다.
따라서 프로그램에 따라서 ld
로 하여금 lazy binding 을 하지 않고 아예 프로그램 시작 시에 모든 심볼들을 GOT
에 등록하라고 설정할 수 도 있습니다. (예를 들어서 포토샵을 실행해보신 분들은 아시겠지만 프로그램 시작 시 꽤 오래걸리는 것을 알 수 있죠? 이게 대부분 공유 라이브러리에서 사용되는 함수들을 찾느라 걸리는 시간 입니다.)
그렇다면 마지막으로 동적 링킹되는 라이브러리에서 재배치가 어떤 식으로 이루어지는지 살펴봅시다. 이전에 foo.cc 의 내용을 다시 가져오면
// foo.cc
#include "bar.h"
int x = 1 ;
int foo () {
bar ();
x ++ ;
return 1 ;
}
컴파일 시에 아래와 같이 구성됩니다.
objdump - Sr foo . o
foo . o : file format elf64 - x86 - 64
Disassembly of section . text :
0000000000000000 <_Z3foov>:
#include "bar.h"
int x = 1 ;
int foo () {
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp , %rbp
bar () ;
8: e8 00 00 00 00 callq d < _Z3foov + 0xd >
9: R_X86_64_PLT32 _Z3barv - 0x4
x ++ ;
d: 48 8b 05 00 00 00 00 mov 0x0 ( %rip ) , %rax # 14 <_Z3foov+0x14>
10: R_X86_64_REX_GOTPCRELX x - 0x4
14: 8b 00 mov ( %rax ) , %eax
16: 8d 50 01 lea 0x1 ( %rax ) , %edx
19: 48 8b 05 00 00 00 00 mov 0x0 ( %rip ) , %rax # 20 <_Z3foov+0x20>
1c: R_X86_64_REX_GOTPCRELX x - 0x4
20: 89 10 mov %edx , ( %rax )
return 1 ;
22: b8 01 00 00 00 mov $0x1 , %eax
}
27: 5d pop %rbp
28: c3 retq
먼저 bar
함수를 호출하는 부분부터 봅시다. 당연히도 R_X86_64_PLT32
방식으로 bar
을 재배치 해야 한다고 명시하고 있습니다. R_X86_64_PLT32
의 경우 재배치 주소 계산 방식이 L + A - P
입니다. 여기서 A 와 P 는 기존과 동일하고 L 은 프로시져 링킹 테이블 (PLT) 의 주소값 입니다.
그 이유는 당연히도 bar
을 직접 호출하는 것이 아니라 PLT 에 등록되어 있는 bar
을 호출해주는 루틴을 호출해야 하기 때문에 (bar@plt
) PLT 섹션의 위치 기준으로 계산되어야 하기 때문입니다.
그렇다면 전역 변수인 x 는 어떨까요? 이 경우 R_X86_64_REX_GOTPCRELX
형태의 재배치 방식을 사용하는데, 이 경우 계산하는 방식은 G + GOT + A - P
입니다. 여기서 G 는 GOT
안에서 해당 심볼 까지의 오프셋을 말하고, GOT
의 경우 GOT
테이블 자체의 오프셋을 의미합니다. 쉽게 말해서 G + GOT
가 프로그램 시작 부터 GOT
안에 정의 되어 있는 해당 심볼 까지의 오프셋이라 보시면 됩니다.
변수의 경우 함수와는 다르게 PLT 를 사용할 필요가 없습니다. 그냥 해당 변수를 GOT
안에 위치시키면 되기 때문이죠. 따라서 위 처럼 R_X86_64_REX_GOTPCRELX
재배치 방식을 사용해서 GOT
안에 전역 변수를 정의하는 것을 알 수 있습니다. 생각보다 간단하죠!
사실 여기 까지 다룬 재배치 방식 말고도 몇 가지 더 다른 재배치 방식들이 있습니다. 하지만 여기서 다룬 내용들을 모두 이해했다면 다른 방식들도 큰 무리 없이 이해하실 수 있을 것이라 봅니다. 이 부분에 대해서 더 공부하고 싶으신 분들은 x86-64 ABI 를 읽어보시기 바랍니다.
이렇게 C++ 에서 링킹이 어떤 식으로 구성되는지 살펴보았습니다. 생각보다 링커에서 정말 많은 일을 하고 있는 것을 알 수 있죠. 물론 아직 모든 궁금증이 해결 된 것은 아닙니다. 앞서 컴파일 된 프로그램을 objdump 로 살펴보았을 때 우리가 작성한 코드 말고도 수 많은 다른 섹션들이 있는 것을 확인할 수 있었을 것입니다. (__libc_csu_init
, __do_global_dtors_aux
, register_tm_clones
등등 말이죠)
도대체 얘네들은 어디서 온 녀석이고 무슨 일들을 하는 것인지, 다음 강의에서 살펴보도록 하겠습니다.
강좌를 보다가 조금이라도
궁금한 것이나 이상한 점이 있다면 꼭 댓글 을 남겨주시기 바랍니다. 그 외에도 강좌에 관련된 것이라면 어떠한 것도 질문해 주셔도 상관 없습니다. 생각해 볼 문제도 정 모르겠다면 댓글을 달아주세요.
현재 여러분이 보신 강좌는
<씹어먹는 C++ - <20 - 3. 코드 부터 실행 파일 까지 - 링킹 (Linking)>> 입니다. 이번 강좌의 모든 예제들의 코드를 보지 않고 짤 수준까지 강좌를 읽어 보시기 전까지 다음 강좌로 넘어가지 말아주세요
 이전 강좌
씹어먹는 C++ - <20 - 2. 코드 부터 실행 파일 까지 - 컴파일 (Compile)>
다음 강좌 
씹어먹는 C++ - <20 - 4. 코드 부터 실행 파일 까지 - main 으로의 여정>
{"":{"C":{"files":["231","315","5","6","19","21","7","8","308","9","10","12","14","16","17","18","20","23","24","25","26","27","28","30","31","29","32","33","43","55","60","71","83","87","88","89","98","100","99","103","117","123","125","129","130","184","187","214"]},"C Reference":{"files":[],"stdio.h":{"files":["34","37","38","39","40","41","44","45","36","46","47","48","49","50","51","52","54","53","57","58","59","61","62","64","65","66","68","69","70","72","73","74","75","35","67"]},"stdlib.h":{"files":["244","243","121","124","131","132","139","140"]},"string.h":{"files":["77","76","78","79","80","81","82","84","85","86","92","90","91","93","94","95","96","97","101","102","104","105","106"]},"time.h":{"files":["110","111","109","108","113","116","112","114","118","119","120","122"]}},"C++":{"files":["135","134","136","138","141","169","172","173","188","197","198","253","202","203","204","209","210","211","213","215","217","218","219","290","221","222","223","224","225","292","230","227","228","229","252","254","269","270","271","284","285","286","293","294","295","303","304","306","309","310","311","332","319","320","321","322","326","335","189","195","196","208","220","255","312"]},"C++ Reference":{"Containers":{"deque":{"files":["176"]},"files":["174"],"list":{"files":["177"]},"vector":{"files":["175","178","183","186","185"]}},"algorithm":{"files":["256","257","258","261","260","259","262","265","263","264","267","266","272","273","275","288","289","291","298","305","317","318","268","324","323","325"]},"array":{"files":["314"]},"files":[],"iostream":{"files":["143","145","144","146","147","151","150","152","149","153","154","157","155","156","160","158","159","161","163","162","166","167","165","164","168","170","180","181","182","171","179","190","192","191","193","194","276","279","277","278","280","281","282","283"]},"string":{"files":["234","233","237","240","241","249","236","238","250","235","297","296","307"]},"string_view":{"files":["239","242"]},"utility":{"files":["299","301","302"]}},"Rust":{"files":["333","334"]},"X86-64 명령어 레퍼런스":{"A":{"files":["aaa","aad","aam","aas","adc","adcx","add","addpd","addps","addsd","addss","addsubpd","addsubps","adox","aesdec","aesdeclast","aesenc","aesenclast","aesimc","aeskeygenassist","and","andn","andnpd","andnps","andpd","andps","arpl"]},"B":{"files":["bextr","blendpd","blendps","blendvpd","blendvps","blsi","blsmsk","blsr","bndcl","bndcu-bndcn","bndldx","bndmk","bndmov","bndstx","bound","bsf","bsr","bswap","bt","btc","btr","bts","bzhi"]},"C":{"files":["call","cbw-cwde-cdqe","clac","clc","cld","clflush","clflushopt","cli","clts","clwb","cmc","cmovcc","cmp","cmppd","cmpps","cmps-cmpsb-cmpsw-cmpsd-cmpsq","cmpsd","cmpss","cmpxchg","cmpxchg8b-cmpxchg16b","comisd","comiss","cpuid","crc32","cvtdq2pd","cvtdq2ps","cvtpd2dq","cvtpd2pi","cvtpd2ps","cvtpi2pd","cvtpi2ps","cvtps2dq","cvtps2pd","cvtps2pi","cvtsd2si","cvtsd2ss","cvtsi2sd","cvtsi2ss","cvtss2sd","cvtss2si","cvttpd2dq","cvttpd2pi","cvttps2dq","cvttps2pi","cvttsd2si","cvttss2si","cwd-cdq-cqo"]},"D":{"files":["daa","das","dec","div","divpd","divps","divsd","divss","dppd","dpps"]},"E":{"files":["emms","enter","extractps"]},"F":{"files":["f2xm1","fabs","fadd-faddp-fiadd","fbld","fbstp","fchs","fclex-fnclex","fcmovcc","fcom-fcomp-fcompp","fcomi-fcomip--fucomip","fcos","fdecstp","fdiv-fdivp-fidiv","fdivr-fdivrp-fidivr","ffree","ficom-ficomp","fild","fincstp","finit-fninit","fist-fistp","fisttp","fld","fld1-fldl2t-fldl2e-fldpi-fldlg2-fldln2-fldz","fldcw","fldenv","fmul-fmulp-fimul","fnop","fpatan","fprem","fprem1","fptan","frndint","frstor","fsave-fnsave","fscale","fsin","fsincos","fsqrt","fst-fstp","fstcw-fnstcw","fstenv-fnstenv","fstsw-fnstsw","fsub-fsubp-fisub","fsubr-fsubrp-fisubr","ftst","fucom-fucomp-fucompp","fxam","fxch","fxrstor","fxsave","fxtract","fyl2x","fyl2xp1"]},"G":{"files":["getsec[exitac]","getsec[parameters]","getsec[senter]","getsec[sexit]","getsec[smctrl]","getsec[wakeup]"]},"H":{"files":["haddpd","haddps","hlt","hsubpd","hsubps"]},"I":{"files":["idiv","imul","in","inc","ins-insb-insw-insd","insertps","int n-into-int 3","invd","invlpg","invpcid","iret-iretd"]},"J":{"files":["jmp","jcc"]},"K":{"files":["kaddw-kaddb-kaddq-kaddd","kandnw-kandnb-kandnq-kandnd","kandw-kandb-kandq-kandd","kmovw-kmovb-kmovq-kmovd","knotw-knotb-knotq-knotd","kortestw-kortestb-kortestq-kortestd","korw-korb-korq-kord","kshiftlw-kshiftlb-kshiftlq-kshiftld","kshiftrw-kshiftrb-kshiftrq-kshiftrd","ktestw-ktestb-ktestq-ktestd","kunpckbw-kunpckwd-kunpckdq","kxnorw-kxnorb-kxnorq-kxnord","kxorw-kxorb-kxorq-kxord"]},"L":{"files":["lahf","lar","lddqu","ldmxcsr","lds-les-lfs-lgs-lss","lea","leave","lfence","lgdt-lidt","lldt","lmsw","lock","lods-lodsb-lodsw-lodsd-lodsq","loop-loopcc","lsl","ltr","lzcnt"]},"M":{"files":["maskmovdqu","maskmovq","maxpd","maxps","maxsd","maxss","mfence","minpd","minps","minsd","minss","monitor","mov_2","mov","mov_1","movapd","movaps","movbe","movd-movq","movddup","movdq2q","movdqa-vmovdqa32-vmovdqa64","movdqu-vmovdqu8-vmovdqu16-vmovdqu32-vmovdqu64","movhlps","movhpd","movhps","movlhps","movlpd","movlps","movmskpd","movmskps","movntdq","movntdqa","movnti","movntpd","movntps","movntq","movq","movq2dq","movs-movsb-movsw-movsd-movsq","movsd","movshdup","movsldup","movss","movsx-movsxd","movupd","movups","movzx","mpsadbw","mul","mulpd","mulps","mulsd","mulss","mulx","mwait"]},"N":{"files":["neg","nop","not"]},"O":{"files":["or","orpd","orps","out","outs-outsb-outsw-outsd"]},"P":{"files":["pabsb-pabsw-pabsd-pabsq","packsswb-packssdw","packusdw","packuswb","paddb-paddw-paddd-paddq","paddsb-paddsw","paddusb-paddusw","palignr","pand","pandn","pause","pavgb-pavgw","pblendvb","pblendw","pcmpeqb-pcmpeqw-pcmpeqd","pcmpeqq","pcmpestri","pcmpestrm","pcmpgtb-pcmpgtw-pcmpgtd","pcmpgtq","pcmpistri","pcmpistrm","pdep","pext","pextrb-pextrd-pextrq","pextrw","phaddsw","phaddw-phaddd","phminposuw","phsubsw","phsubw-phsubd","pinsrb-pinsrd-pinsrq","pinsrw","pmaddubsw","pmaddwd","pmaxsb-pmaxsw-pmaxsd-pmaxsq","pmaxub-pmaxuw","pmaxud-pmaxuq","pminsb-pminsw","pminsd-pminsq","pminub-pminuw","pminud-pminuq","pmovmskb","pmovsx","pmovzx","pmuldq","pmulhrsw","pmulhuw","pmulhw","pmulld-pmullq","pmullw","pmuludq","pop","popa-popad","popcnt","popf-popfd-popfq","por","prefetchw","prefetchwt1","prefetchh","prold-prolvd-prolq-prolvq","prord-prorvd-prorq-prorvq","psadbw","pshufb","pshufd","pshufhw","pshuflw","pshufw","psignb-psignw-psignd","pslldq","psllw-pslld-psllq","psraw-psrad-psraq","psrldq","psrlw-psrld-psrlq","psubb-psubw-psubd","psubq","psubsb-psubsw","psubusb-psubusw","punpckhbw-punpckhwd-punpckhdq-punpckhqdq","punpcklbw-punpcklwd-punpckldq-punpcklqdq","push","pusha-pushad","pushf-pushfd","pxor"]},"R":{"files":["rcl-rcr-rol-ror","rcpps","rcpss","rdfsbase-rdgsbase","rdmsr","rdpid","rdpkru","rdpmc","rdrand","rdseed","rdtsc","rdtscp","rep-repe-repz-repne-repnz","ret","rorx","roundpd","roundps","roundsd","roundss","rsm","rsqrtps","rsqrtss"]},"S":{"files":["sahf","sal-sar-shl-shr","sarx-shlx-shrx","sbb","scas-scasb-scasw-scasd","setcc","sfence","sgdt","sha1msg1","sha1msg2","sha1nexte","sha1rnds4","sha256msg1","sha256msg2","sha256rnds2","shld","shrd","shufpd","shufps","sidt","sldt","smsw","sqrtpd","sqrtps","sqrtsd","sqrtss","stac","stc","std","sti","stmxcsr","stos-stosb-stosw-stosd-stosq","str","sub","subpd","subps","subsd","subss","swapgs","syscall","sysenter","sysexit","sysret"]},"T":{"files":["test","tzcnt"]},"U":{"files":["ucomisd","ucomiss","ud2","unpckhpd","unpckhps","unpcklpd","unpcklps"]},"V":{"files":["valignd-valignq","vblendmpd-vblendmps","vbroadcast","vcompresspd","vcompressps","vcvtpd2qq","vcvtpd2udq","vcvtpd2uqq","vcvtph2ps","vcvtps2ph","vcvtps2qq","vcvtps2udq","vcvtps2uqq","vcvtqq2pd","vcvtqq2ps","vcvtsd2usi","vcvtss2usi","vcvttpd2qq","vcvttpd2udq","vcvttpd2uqq","vcvttps2qq","vcvttps2udq","vcvttps2uqq","vcvttsd2usi","vcvttss2usi","vcvtudq2pd","vcvtudq2ps","vcvtuqq2pd","vcvtuqq2ps","vcvtusi2sd","vcvtusi2ss","vdbpsadbw","verr-verw","vexp2pd","vexp2ps","vexpandpd","vexpandps","vextractf128-vextractf32x4-vextractf64x2-vextractf32x8-vextractf64x4","vextracti128-vextracti32x4-vextracti64x2-vextracti32x8-vextracti64x4","vfixupimmpd","vfixupimmps","vfixupimmsd","vfixupimmss","vfmadd132pd-vfmadd213pd-vfmadd231pd","vfmadd132ps-vfmadd213ps-vfmadd231ps","vfmadd132sd-vfmadd213sd-vfmadd231sd","vfmadd132ss-vfmadd213ss-vfmadd231ss","vfmaddsub132pd-vfmaddsub213pd-vfmaddsub231pd","vfmaddsub132ps-vfmaddsub213ps-vfmaddsub231ps","vfmsub132pd-vfmsub213pd-vfmsub231pd","vfmsub132ps-vfmsub213ps-vfmsub231ps","vfmsub132sd-vfmsub213sd-vfmsub231sd","vfmsub132ss-vfmsub213ss-vfmsub231ss","vfmsubadd132pd-vfmsubadd213pd-vfmsubadd231pd","vfmsubadd132ps-vfmsubadd213ps-vfmsubadd231ps","vfnmadd132pd-vfnmadd213pd-vfnmadd231pd","vfnmadd132ps-vfnmadd213ps-vfnmadd231ps","vfnmadd132sd-vfnmadd213sd-vfnmadd231sd","vfnmadd132ss-vfnmadd213ss-vfnmadd231ss","vfnmsub132pd-vfnmsub213pd-vfnmsub231pd","vfnmsub132ps-vfnmsub213ps-vfnmsub231ps","vfnmsub132sd-vfnmsub213sd-vfnmsub231sd","vfnmsub132ss-vfnmsub213ss-vfnmsub231ss","vfpclasspd","vfpclassps","vfpclasssd","vfpclassss","vgatherdpd-vgatherqpd","vgatherdps-vgatherdpd","vgatherdps-vgatherqps","vgatherpf0dps-vgatherpf0qps-vgatherpf0dpd-vgatherpf0qpd","vgatherpf1dps-vgatherpf1qps-vgatherpf1dpd-vgatherpf1qpd","vgatherqps-vgatherqpd","vgetexppd","vgetexpps","vgetexpsd","vgetexpss","vgetmantpd","vgetmantps","vgetmantsd","vgetmantss","vinsertf128-vinsertf32x4-vinsertf64x2-vinsertf32x8-vinsertf64x4","vinserti128-vinserti32x4-vinserti64x2-vinserti32x8-vinserti64x4","vmaskmov","vpblendd","vpblendmb-vpblendmw","vpblendmd-vpblendmq","vpbroadcast","vpbroadcastb-vpbroadcastw-vpbroadcastd-vpbroadcastq","vpbroadcastm","vpcmpb-vpcmpub","vpcmpd-vpcmpud","vpcmpq-vpcmpuq","vpcmpw-vpcmpuw","vpcompressd","vpcompressq","vpconflictd-vpconflictq","vperm2f128","vperm2i128","vpermd-vpermw","vpermi2w-vpermi2d-vpermi2q-vpermi2ps-vpermi2pd","vpermilpd","vpermilps","vpermpd","vpermps","vpermq","vpexpandd","vpexpandq","vpgatherdd-vpgatherdq","vpgatherdd-vpgatherqd","vpgatherdq-vpgatherqq","vpgatherqd-vpgatherqq","vplzcntd-vplzcntq","vpmaskmov","vpmovb2m-vpmovw2m-vpmovd2m-vpmovq2m","vpmovdb-vpmovsdb-vpmovusdb","vpmovdw-vpmovsdw-vpmovusdw","vpmovm2b-vpmovm2w-vpmovm2d-vpmovm2q","vpmovqb-vpmovsqb-vpmovusqb","vpmovqd-vpmovsqd-vpmovusqd","vpmovqw-vpmovsqw-vpmovusqw","vpmovwb-vpmovswb-vpmovuswb","vpscatterdd-vpscatterdq-vpscatterqd-vpscatterqq","vpsllvw-vpsllvd-vpsllvq","vpsravw-vpsravd-vpsravq","vpsrlvw-vpsrlvd-vpsrlvq","vpternlogd-vpternlogq","vptestmb-vptestmw-vptestmd-vptestmq","vptestnmb-vptestnmw-vptestnmd-vptestnmq","vrangepd","vrangesd","vrangess","vrcp14pd","vrcp14ps","vrcp14sd","vrcp14ss","vrcp28pd","vrcp28ps","vrcp28sd","vrcp28ss","vreducepd","vreduceps","vreducess","vrndscalepd","vrndscaleps","vrndscalesd","vrndscaless","vrsqrt14pd","vrsqrt14ps","vrsqrt14sd","vrsqrt14ss","vrsqrt28pd","vrsqrt28ps","vrsqrt28sd","vrsqrt28ss","vscalefpd","vscalefps","vscalefsd","vscalefss","vscatterdps-vscatterdpd-vscatterqps-vscatterqpd","vscatterpf0dps-vscatterpf0qps-vscatterpf0dpd-vscatterpf0qpd","vscatterpf1dps-vscatterpf1qps-vscatterpf1dpd-vscatterpf1qpd","vshuff32x4-vshuff64x2-vshufi32x4-vshufi64x2","vtestpd-vtestps","vzeroall","vzeroupper"]},"W":{"files":["wait-fwait","wbinvd","wrfsbase-wrgsbase","wrmsr","wrpkru"]},"X":{"files":["xabort","xacquire-xrelease","xadd","xbegin","xchg","xend","xgetbv","xlat-xlatb","xor","xorpd","xorps","xrstor","xrstors","xsave","xsavec","xsaveopt","xsaves","xsetbv","xtest"]},"files":["316"]},"files":[],"알고리즘":{"files":["246","247","248","274","287","245"]},"자료 구조":{"files":["328","329"]},"잡담":{"files":["232","115","142","300","327"],"본인 소개":{"files":["251"]}},"프로그래밍":{"files":["199","201","313"]}},"files":[]}
{"5":{"cat_title":"1. C 언어가 뭐야?","chapter":"C 언어의 세계로","next_page":"6","path":"/C","prev_page":"315","publish_date":"2009-04-16","title":"씹어먹는 C 언어 - <1. C 언어가 뭐야?>"},"6":{"cat_title":"2 - 1. C 언어 본격 맛보기","next_page":"19","path":"/C","prev_page":"5","publish_date":"2009-04-17","tex_title":"C 언어 본격 맛보기","title":"씹어먹는 C 언어 - <2 - 1. C 언어 본격 맛보기>"},"7":{"cat_title":"3. 변수가 뭐지?","chapter":"변수 (variable)","next_page":"8","path":"/C","prev_page":"21","publish_date":"2009-04-22","title":"씹어먹는 C 언어 - <3. 변수가 뭐지? >"},"8":{"cat_title":"4 - 1. 계산하리","chapter":"계산 하기","next_page":"308","path":"/C","prev_page":"7","publish_date":"2009-04-24","title":"씹어먹는 C 언어 - <4 - 1. 계산하리>"},"9":{"cat_title":"5. 문자 입력 받기","chapter":"문자 입력 받기","next_page":"10","path":"/C","prev_page":"308","publish_date":"2009-04-27","title":"씹어먹는 C 언어 - <5. 문자 입력 받기>"},"10":{"cat_title":"6. 만약에... (if 문)","chapter":"만약에... (조건문)","next_page":"12","path":"/C","prev_page":"9","publish_date":"2009-04-28","title":"씹어먹는 C 언어 - <6. 만약에...(if 문)>"},"12":{"cat_title":"7. 뱅글 뱅글 (for, while)","chapter":"반복문 (for, while)","next_page":"14","path":"/C","prev_page":"10","publish_date":"2009-08-06","title":"씹어먹는 C 언어 - <7. 뱅글 뱅글 (for, while) >"},"14":{"cat_title":"8. 우분투 리눅스에서 C 프로그래밍 하기","next_page":"16","path":"/C","prev_page":"12","publish_date":"2009-08-06","tex_title":"리눅스에서 C 프로그래밍 하기","title":"씹어 먹는 C 언어 - <8. 우분투 리눅스에서 C 프로그래밍 하기>"},"16":{"cat_title":"9. 만약에... 2탄 (switch 문)","chapter":"switch 문","next_page":"17","path":"/C","prev_page":"14","publish_date":"2009-08-15","title":"씹어먹는 C 언어 - <9. 만약에... 2탄 (switch 문)>"},"17":{"cat_title":"10. 연예인 캐스팅(?) (C 언어에서의 형 변환)","chapter":"형 변환 (타입 캐스팅)","next_page":"18","path":"/C","prev_page":"16","publish_date":"2009-08-15","title":"씹어 먹는 C 언어 - <10. 연예인 캐스팅(?) (C 언어에서의 형 변환)>"},"18":{"cat_title":"11 - 1. C 언어의 아파트 (배열), 상수","chapter":"C 언어의 아파트 - 배열","next_page":"20","path":"/C","prev_page":"17","publish_date":"2009-11-14","title":"씹어먹는 C 언어 - <11 - 1. C 언어의 아파트 (배열), 상수>"},"19":{"cat_title":"2 - 2. 주석(Comment)에 대한 이해","next_page":"21","path":"/C","prev_page":"6","publish_date":"2009-09-24","tex_title":"주석(Comment)","title":"씹어먹는 C 언어 - <2 - 2. 주석(Comment)에 대한 이해>"},"20":{"cat_title":"11 - 2. C 언어의 아파트2 (고차원의 배열)","next_page":"23","path":"/C","prev_page":"18","publish_date":"2009-10-29","tex_title":"다차원 배열","title":"씹어먹는 C 언어 - <11 - 2. C 언어의 아파트2 (고차원의 배열)>"},"21":{"cat_title":"2 - 3. 수를 표현하는 방법(기수법)","next_page":"7","path":"/C","prev_page":"19","publish_date":"2009-10-12","tex_title":"컴퓨터에서 수를 표현하는 방법","title":"씹어먹는 C 언어 - <2 - 3. 수를 표현하는 방법(기수법)>"},"23":{"cat_title":"12 - 1. 포인터는 영희이다! (포인터)","chapter":"포인터","next_page":"24","path":"/C","prev_page":"20","publish_date":"2009-11-09","title":"씹어먹는 C 언어 - <12 - 1. 포인터는 영희이다! (포인터)>"},"24":{"cat_title":"12 - 2. 포인터는 영희이다! (포인터)","next_page":"25","path":"/C","prev_page":"23","publish_date":"2009-11-14","tex_title":"상수 포인터, 포인터의 덧셈 뺄셈, 배열과 포인터","title":"씹어먹는 C 언어 - <12 - 2. 포인터는 영희이다! (포인터)>"},"25":{"cat_title":"12 - 3. 포인터는 영희이다! (포인터)","next_page":"26","path":"/C","prev_page":"24","publish_date":"2009-11-26","tex_title":"포인터의 포인터","title":"씹어먹는 C 언어 - <12 - 3. 포인터는 영희이다! (포인터)>"},"26":{"cat_title":"13 - 1. 마술 상자 함수(function)","chapter":"함수 (function)","next_page":"27","path":"/C","prev_page":"25","publish_date":"2009-12-14","title":"씹어먹는 C 언어 - <13 - 1. 마술 상자 함수(function)>"},"27":{"cat_title":"13 - 2. 마술 상자 함수 2 (function)","next_page":"28","path":"/C","prev_page":"26","publish_date":"2009-12-19","tex_title":"포인터로 받는 인자","title":"씹어먹는 C 언어 - <13 - 2. 마술 상자 함수 2 (function)>"},"28":{"cat_title":"13 - 3. 마술 상자 함수 3 (function)","next_page":"30","path":"/C","prev_page":"27","publish_date":"2009-12-22","tex_title":"여러가지 인자들","title":"씹어먹는 C 언어 - <13 - 3. 마술 상자 함수 3 (function)>"},"29":{"cat_title":"15 - 1. 일로와봐, 문자열(string)","chapter":"문자열 (string)","next_page":"32","path":"/C","prev_page":"31","publish_date":"2009-12-29","title":"씹어먹는 C 언어 - <15 - 1. 일로와봐, 문자열(string)>"},"30":{"cat_title":"13 - 4. 마술 상자 함수 (생각해볼 문제에 대한 아이디어)","next_page":"31","path":"/C","prev_page":"28","publish_date":"2009-12-27","tex_title":"생각해볼 문제에 대한 아이디어","title":"씹어먹는 C 언어 - <13 - 4. 마술 상자 함수 (생각해볼 문제에 대한 아이디어)>"},"31":{"cat_title":"14. 컴퓨터의 머리로 따라가보자 - 디버깅(debugging)","chapter":"디버깅(Debugging)","next_page":"29","path":"/C","prev_page":"30","publish_date":"2009-12-29","title":"씹어먹는 C 언어 - <14. 컴퓨터의 머리로 따라가보자 - 디버깅(debugging)>"},"32":{"cat_title":"15 - 2. 일로와봐, 문자열(string) - 버퍼에 관한 이해","next_page":"33","path":"/C","prev_page":"29","publish_date":"2010-01-25","tex_title":"버퍼에 대한 이해","title":"씹어먹는 C 언어 - <15 - 2. 일로와봐, 문자열(string) - 버퍼에 관한 이해>"},"33":{"cat_title":"15 - 3. 일로와봐, 문자열(string) - 문자열 지지고 볶기 & 리터럴","next_page":"43","path":"/C","prev_page":"32","publish_date":"2010-02-01","tex_title":"문자열 리터럴에 대한 이해","title":"씹어먹는 C 언어 - <15 - 3. 일로와봐, 문자열(string) - 문자열 지지고 볶기 & 리터럴>"},"34":{"cat_title":"stdio.h (cstdio)","path":"/C Reference/stdio.h","publish_date":"2010-01-25","ref_title":"<stdio.h>, <cstdio>, stdio.h, cstdio","title":"C 언어 레퍼런스 - stdio.h (cstdio) 헤더파일"},"35":{"cat_title":"printf","path":"/C Reference/stdio.h","publish_date":"2010-11-27","ref_title":"printf","title":"C 언어 레퍼런스 - printf 함수"},"36":{"cat_title":"scanf","path":"/C Reference/stdio.h","publish_date":"2010-02-03","ref_title":"scanf","title":"C 언어 레퍼런스 - scanf 함수"},"37":{"cat_title":"fgetc","path":"/C Reference/stdio.h","publish_date":"2010-01-28","ref_title":"fgetc","title":"C 언어 레퍼런스 - fgetc 함수"},"38":{"cat_title":"fgets","path":"/C Reference/stdio.h","publish_date":"2010-01-28","ref_title":"fgets","title":"C 언어 레퍼런스 - fgets 함수"},"39":{"cat_title":"fputc","path":"/C Reference/stdio.h","publish_date":"2010-01-29","ref_title":"fputc","title":"C 언어 레퍼런스 - fputc 함수"},"40":{"cat_title":"fputs","path":"/C Reference/stdio.h","publish_date":"2010-02-02","ref_title":"fputs","title":"C 언어 레퍼런스 - fputs 함수"},"41":{"cat_title":"getc","path":"/C Reference/stdio.h","publish_date":"2010-02-02","ref_title":"getc","title":"C 언어 레퍼런스 - getc 함수"},"43":{"cat_title":"15 - 4. 일로와봐, 문자열(string) - 도서 관리 프로젝트","next_page":"55","path":"/C","prev_page":"33","publish_date":"2010-02-08","tex_title":"도서 관리 프로젝트","title":"씹어먹는 C 언어 - <15 - 4. 일로와봐, 문자열(string) - 도서 관리 프로젝트>"},"44":{"cat_title":"getchar","path":"/C Reference/stdio.h","publish_date":"2010-02-03","ref_title":"getchar","title":"C 언어 레퍼런스 - getchar 함수"},"45":{"cat_title":"gets","path":"/C Reference/stdio.h","publish_date":"2010-02-03","ref_title":"gets","title":"C 언어 레퍼런스 - gets 함수"},"46":{"cat_title":"putc","path":"/C Reference/stdio.h","publish_date":"2010-02-04","ref_title":"putc","title":"C 언어 레퍼런스 - putc 함수"},"47":{"cat_title":"putchar","path":"/C Reference/stdio.h","publish_date":"2010-02-04","ref_title":"putchar","title":"C 언어 레퍼런스 - putchar 함수"},"48":{"cat_title":"puts","path":"/C Reference/stdio.h","publish_date":"2010-02-04","ref_title":"puts","title":"C 언어 레퍼런스 - puts 함수"},"49":{"cat_title":"ungetc","path":"/C Reference/stdio.h","publish_date":"2010-02-04","ref_title":"ungetc","title":"C 언어 레퍼런스 - ungetc 함수"},"50":{"cat_title":"clearerr","path":"/C Reference/stdio.h","publish_date":"2010-02-05","ref_title":"clearerr","title":"C 언어 레퍼런스 - clearerr 함수"},"51":{"cat_title":"feof","path":"/C Reference/stdio.h","publish_date":"2010-02-05","ref_title":"feof","title":"C 언어 레퍼런스 - feof 함수"},"52":{"cat_title":"ferror","path":"/C Reference/stdio.h","publish_date":"2010-02-05","ref_title":"ferror","title":"C 언어 레퍼런스 - ferror 함수"},"53":{"cat_title":"perror","path":"/C Reference/stdio.h","publish_date":"2010-02-08","ref_title":"perror","title":"C 언어 레퍼런스 - perror 함수"},"54":{"cat_title":"fclose","path":"/C Reference/stdio.h","publish_date":"2010-02-08","ref_title":"fclose","title":"C 언어 레퍼런스 - fclose 함수"},"55":{"cat_title":"16 - 1. 모아 모아 구조체(struct)","chapter":"구조체 (struct)","next_page":"60","path":"/C","prev_page":"43","publish_date":"2010-02-14","title":"씹어먹는 C 언어 - <16 - 1. 모아 모아 구조체(struct)>"},"57":{"cat_title":"fflush","path":"/C Reference/stdio.h","publish_date":"2010-02-10","ref_title":"fflush","title":"C 언어 레퍼런스 - fflush 함수"},"58":{"cat_title":"fopen","path":"/C Reference/stdio.h","publish_date":"2010-02-11","ref_title":"fopen","title":"C 언어 레퍼런스 - fopen 함수"},"59":{"cat_title":"freopen","path":"/C Reference/stdio.h","publish_date":"2010-02-13","ref_title":"freopen","title":"C 언어 레퍼런스 - freopen 함수"},"60":{"cat_title":"16 - 2. 모아 모아 구조체(struct) - 구조체 인자로 가진 함수","next_page":"71","path":"/C","prev_page":"55","publish_date":"2010-04-11","tex_title":"구조체를 인자로 받는 함수","title":"씹어먹는 C 언어 - <16 - 2. 모아 모아 구조체(struct) - 구조체 인자로 가진 함수>"},"61":{"cat_title":"setbuf","path":"/C Reference/stdio.h","publish_date":"2010-02-16","ref_title":"setbuf","title":"C 언어 레퍼런스 - setbuf 함수"},"62":{"cat_title":"setvbuf","path":"/C Reference/stdio.h","publish_date":"2010-02-18","ref_title":"setvbuf","title":"C 언어 레퍼런스 - setvbuf 함수"},"64":{"cat_title":"fprintf","path":"/C Reference/stdio.h","publish_date":"2010-02-19","ref_title":"fprintf","title":"C 언어 레퍼런스 - fprintf 함수"},"65":{"cat_title":"fscanf","path":"/C Reference/stdio.h","publish_date":"2010-02-22","ref_title":"fscanf","title":"C 언어 레퍼런스 - fscanf 함수"},"66":{"cat_title":"sprintf","path":"/C Reference/stdio.h","publish_date":"2010-02-22","ref_title":"sprintf","title":"C 언어 레퍼런스 - sprintf 함수"},"67":{"cat_title":"sscanf","path":"/C Reference/stdio.h","publish_date":"2011-01-03","ref_title":"sscanf","title":"C 언어 레퍼런스 - sscanf 함수"},"68":{"cat_title":"fread","path":"/C Reference/stdio.h","publish_date":"2010-03-21","ref_title":"fread","title":"C 언어 레퍼런스 - fread 함수"},"69":{"cat_title":"fwrite","path":"/C Reference/stdio.h","publish_date":"2010-04-11","ref_title":"fwrite","title":"C 언어 레퍼런스 - fwrite 함수"},"70":{"cat_title":"fgetpos","path":"/C Reference/stdio.h","publish_date":"2010-04-18","ref_title":"fgetpos","title":"C 언어 레퍼런스 - fgetpos 함수"},"71":{"cat_title":"16 - 3. 구조체와 친구들(공용체(union), 열거형(enum)","next_page":"83","path":"/C","prev_page":"60","publish_date":"2010-06-13","tex_title":"공용체(union)와 열거형(enum)","title":"씹어먹는 C 언어 - <16 - 3. 구조체와 친구들(공용체(union), 열거형(enum))>"},"72":{"cat_title":"fseek","path":"/C Reference/stdio.h","publish_date":"2010-04-24","ref_title":"fseek","title":"C 언어 레퍼런스 - fseek 함수"},"73":{"cat_title":"fsetpos","path":"/C Reference/stdio.h","publish_date":"2010-04-24","ref_title":"fsetpos","title":"C 언어 레퍼런스 - fsetpos 함수"},"74":{"cat_title":"ftell","path":"/C Reference/stdio.h","publish_date":"2010-04-24","ref_title":"ftell","title":"C 언어 레퍼런스 - ftell 함수"},"75":{"cat_title":"rewind","path":"/C Reference/stdio.h","publish_date":"2010-04-24","ref_title":"rewind","title":"C 언어 레퍼런스 - rewind 함수"},"76":{"cat_title":"string.h (cstring)","path":"/C Reference/string.h","publish_date":"2010-04-24","ref_title":"<string.h>, <cstring>, string.h, cstring","title":"C 언어 레퍼런스 - string.h (cstring) 헤더파일"},"77":{"cat_title":"memcpy","path":"/C Reference/string.h","publish_date":"2010-04-24","ref_title":"memcpy","title":"C 언어 레퍼런스 - memcpy 함수"},"78":{"cat_title":"memmove","path":"/C Reference/string.h","publish_date":"2010-04-25","ref_title":"memmove","title":"C 언어 레퍼런스 - memmove 함수"},"79":{"cat_title":"strcpy","path":"/C Reference/string.h","publish_date":"2010-05-02","ref_title":"strcpy","title":"C 언어 레퍼런스 - strcpy 함수"},"80":{"cat_title":"strncpy","path":"/C Reference/string.h","publish_date":"2010-05-09","ref_title":"strncpy","title":"C 언어 레퍼런스 - strncpy 함수"},"81":{"cat_title":"strcat","path":"/C Reference/string.h","publish_date":"2010-05-21","ref_title":"strcat","title":"C 언어 레퍼런스 - strcat 함수"},"82":{"cat_title":"strncat","path":"/C Reference/string.h","publish_date":"2010-05-23","ref_title":"strncat","title":"C 언어 레퍼런스 - strncat 함수"},"83":{"cat_title":"17. 변수의 생존 조건 및 데이터 세그먼트의 구조","chapter":"변수의 생존 조건과 데이터 세그먼트의 구조","next_page":"87","path":"/C","prev_page":"71","publish_date":"2010-06-19","title":"씹어먹는 C 언어 - <17. 변수의 생존 조건 및 데이터 세그먼트의 구조>"},"84":{"cat_title":"memcmp","path":"/C Reference/string.h","publish_date":"2010-06-25","ref_title":"memcmp","title":"C 언어 레퍼런스 - memcmp 함수"},"85":{"cat_title":"strcmp","path":"/C Reference/string.h","publish_date":"2010-06-25","ref_title":"strcmp","title":"C 언어 레퍼런스 - strcmp 함수"},"86":{"cat_title":"strcoll","path":"/C Reference/string.h","publish_date":"2010-07-10","ref_title":"strcoll","title":"C 언어 레퍼런스- strcoll 함수"},"87":{"cat_title":"18 - 1. 파일 뽀개기 (헤더파일과 #include)","chapter":"여러 파일로 나누기","next_page":"88","path":"/C","prev_page":"83","publish_date":"2010-07-16","title":"씹어먹는 C 언어 - <18 - 1. 파일 뽀개기 (헤더파일과 #include) >"},"88":{"cat_title":"18 - 2. 파일 뽀개기 (# 친구들, 라이브러리)","next_page":"89","path":"/C","prev_page":"87","publish_date":"2010-07-20","tex_title":"여러 전처리기 구문과 라이브러리 사용법","title":"씹어먹는 C 언어 - <18 - 2. 파일 뽀개기 (# 친구들, 라이브러리)>"},"89":{"cat_title":"19. main 함수의 인자, 텅 빈 void 형","chapter":"void 타입과 main 함수에 대한 이해","next_page":"98","path":"/C","prev_page":"88","publish_date":"2010-08-02","title":"씹어먹는 C 언어 - <19. main 함수의 인자, 텅 빈 void 형>"},"90":{"cat_title":"strncmp","path":"/C Reference/string.h","publish_date":"2010-08-01","ref_title":"strncmp","title":"C 언어 레퍼런스 - strncmp 함수"},"91":{"cat_title":"strxfrm","path":"/C Reference/string.h","publish_date":"2010-08-01","ref_title":"strxfrm","title":"C 언어 레퍼런스 - strxfrm 함수"},"92":{"cat_title":"memchr","path":"/C Reference/string.h","publish_date":"2010-08-01","ref_title":"memchr","title":"C 언어 레퍼런스 - memchr 함수"},"93":{"cat_title":"strchr","path":"/C Reference/string.h","publish_date":"2010-08-02","ref_title":"strchr","title":"C 언어 레퍼런스 - strchr 함수"},"94":{"cat_title":"strcspn","path":"/C Reference/string.h","publish_date":"2010-08-02","ref_title":"strcspn","title":"C 언어 레퍼런스 - strcspn 함수"},"95":{"cat_title":"strpbrk","path":"/C Reference/string.h","publish_date":"2010-08-02","ref_title":"strpbrk","title":"C 언어 레퍼런스 - strpbrk 함수"},"96":{"cat_title":"strrchr","path":"/C Reference/string.h","publish_date":"2010-08-02","ref_title":"strrchr","title":"C 언어 레퍼런스 - strrchr 함수"},"97":{"cat_title":"strspn","path":"/C Reference/string.h","publish_date":"2010-11-21","ref_title":"strspn","title":"C 언어 레퍼런스 - strspn 함수"},"98":{"cat_title":"20 - 1. 동동동 메모리 동적할당(Dynamic Memory Allocation)","chapter":"동적 메모리 할당 (dynamic memory allocation)","next_page":"100","path":"/C","prev_page":"89","publish_date":"2010-08-03","title":"씹어먹는 C 언어 - <20 - 1. 동동동 메모리 동적할당(Dynamic Memory Allocation)>"},"99":{"cat_title":"21. 매크로 함수, 인라인 함수","chapter":"매크로 함수, 인라인 함수","next_page":"103","path":"/C","prev_page":"100","publish_date":"2010-11-21","title":"씹어먹는 C 언어 - <21. 매크로 함수, 인라인 함수>"},"100":{"cat_title":"20 - 2. 메모리 동적할당 + 메모리 갖고 놀기","next_page":"99","path":"/C","prev_page":"98","publish_date":"2010-09-13","tex_title":"구조체의 동적 할당과 메모리 관리 함수","title":"씹어먹는 C 언어 - <20 - 2. 메모리 동적할당 + 메모리 갖고 놀기>"},"101":{"cat_title":"strstr","path":"/C Reference/string.h","publish_date":"2010-11-27","ref_title":"strstr","title":"C 언어 레퍼런스 - strstr 함수"},"102":{"cat_title":"strtok","path":"/C Reference/string.h","publish_date":"2010-11-27","ref_title":"strtok","title":"C 언어 레퍼런스 - strtok 함수"},"103":{"cat_title":"22. C 언어의 잡다한 키워드들 (typedef, volatile, #pragma)","chapter":"그 밖에 키워드들","next_page":"117","path":"/C","prev_page":"99","publish_date":"2010-12-25","title":"씹어먹는 C 언어 - <22. C 언어의 잡다한 키워드들 (typedef, volatile, #pragma)>"},"104":{"cat_title":"memset","path":"/C Reference/string.h","publish_date":"2010-11-28","ref_title":"memset","title":"C 언어 레퍼런스 - memset 함수"},"105":{"cat_title":"strerror","path":"/C Reference/string.h","publish_date":"2010-12-12","ref_title":"strerror","title":"C 언어 레퍼런스 - strerror 함수"},"106":{"cat_title":"strlen","path":"/C Reference/string.h","publish_date":"2010-12-12","ref_title":"strlen","title":"C 언어 레퍼런스 - strlen 함수"},"108":{"cat_title":"time.h","path":"/C Reference/time.h","publish_date":"2010-12-25","ref_title":"<time.h>","title":"C 언어 레퍼런스 - time.h 헤더파일"},"109":{"cat_title":"struct tm","path":"/C Reference/time.h","publish_date":"2010-12-25","ref_title":"tm 구조체, tm, struct tm","title":"C 언어 레퍼런스 - struct tm ( tm 구조체 )"},"110":{"cat_title":"clock","path":"/C Reference/time.h","publish_date":"2010-12-25","ref_title":"clock","title":"C 언어 레퍼런스 - clock 함수"},"111":{"cat_title":"difftime","path":"/C Reference/time.h","publish_date":"2010-12-25","ref_title":"difftime","title":"C 언어 레퍼런스 - difftime 함수"},"112":{"cat_title":"mktime","path":"/C Reference/time.h","publish_date":"2010-12-26","ref_title":"mktime","title":"C 언어 레퍼런스 - mktime 함수"},"113":{"cat_title":"time_t 형","path":"/C Reference/time.h","publish_date":"2010-12-25","ref_title":"time_t","title":"C 언어 레퍼런스 - time_t 형"},"114":{"cat_title":"time","path":"/C Reference/time.h","publish_date":"2010-12-26","ref_title":"time","title":"C 언어 레퍼런스 - time 함수"},"115":{"path":"/잡담","publish_date":"2010-12-28","title":"100 번째 글을 돌파하며"},"116":{"cat_title":"asctime","path":"/C Reference/time.h","publish_date":"2010-12-26","ref_title":"asctime","title":"C 언어 레퍼런스 - asctime 함수"},"117":{"cat_title":"23 - 1. 파일 하고 이야기 하기 (파일 입출력에 대한 기본적 이해)","chapter":"파일 입출력","next_page":"123","path":"/C","prev_page":"103","publish_date":"2010-12-28","title":"씹어먹는 C 언어 - <23 - 1. 파일 하고 이야기 하기 (파일 입출력에 대한 기본적 이해)>"},"118":{"cat_title":"ctime","path":"/C Reference/time.h","publish_date":"2010-12-29","ref_title":"ctime","title":"C 언어 레퍼런스 - ctime 함수"},"119":{"cat_title":"gmtime","path":"/C Reference/time.h","publish_date":"2010-12-29","ref_title":"gmtime","title":"C 언어 레퍼런스 - gmtime 함수"},"120":{"cat_title":"localtime","path":"/C Reference/time.h","publish_date":"2010-12-30","ref_title":"localtime","title":"C 언어 레퍼런스 - localtime 함수"},"121":{"cat_title":"stdlib.h (cstdlib)","path":"/C Reference/stdlib.h","publish_date":"2011-01-05","ref_title":"<stdlib.h>, cstdlib","title":"C 언어 레퍼런스 - stdlib.h (cstdlib)"},"122":{"cat_title":"strftime","path":"/C Reference/time.h","publish_date":"2011-01-05","ref_title":"strftime","title":"C 언어 레퍼런스 - strftime 함수"},"123":{"cat_title":"23 - 2. 파일 하고 이야기 하기 (파일 입출력)","next_page":"125","path":"/C","prev_page":"117","publish_date":"2011-01-10","tex_title":"파일 안에서 이동하기","title":"씹어먹는 C 언어 - <23 - 2. 파일 하고 이야기 하기 (파일 입출력)>"},"124":{"cat_title":"atof","path":"/C Reference/stdlib.h","publish_date":"2011-01-09","ref_title":"atof","title":"C 언어 레퍼런스 - atof 함수"},"125":{"cat_title":"23 - 3. 파일 하고 이야기 하기 (파일 입출력 - 마무리)","next_page":"129","path":"/C","prev_page":"123","publish_date":"2011-01-17","tex_title":"도서 관리 프로그램의 완성","title":"씹어먹는 C 언어 - <23 - 3. 파일 하고 이야기 하기 (파일 입출력 - 마무리)>"},"129":{"cat_title":"24. 더 빠르게 실행되는 코드를 위하여 (C 코드 최적화)","chapter":"C 코드 최적화","next_page":"130","path":"/C","prev_page":"125","publish_date":"2011-01-18","title":"씹어먹는 C 언어 - <24. 더 빠르게 실행되는 코드를 위하여 (C 코드 최적화)>"},"130":{"path":"/C","prev_page":"129","publish_date":"2011-01-20","title":"초보자를 위한 C 언어 강좌 - 씹어먹는 C 언어 (완결)"},"131":{"cat_title":"atoi","path":"/C Reference/stdlib.h","publish_date":"2011-01-27","ref_title":"atoi","title":"C 언어 레퍼런스 - atoi 함수"},"132":{"cat_title":"atol","path":"/C Reference/stdlib.h","publish_date":"2011-01-27","ref_title":"atol","title":"C 언어 레퍼런스 - atol 함수"},"134":{"cat_title":"1. 자~ C++ 의 세계로","chapter":"C++ 시작하기","next_page":"136","path":"/C++","prev_page":"135","publish_date":"2011-03-06","title":"씹어먹는 C++ - <1. 자~ C++ 의 세계로>"},"135":{"chapter":"C++ 을 시작하기에 앞서","next_page":"134","path":"/C++","publish_date":"2011-03-05","title":"씹어먹는 C++ 강좌 계획"},"136":{"cat_title":"1 - 2. 첫 C++ 프로그램 분석하기","next_page":"138","path":"/C++","prev_page":"134","publish_date":"2011-03-06","tex_title":"첫 C++ 프로그램 분석하기","title":"씹어먹는 C++ - <1 - 2. 첫 C++ 프로그램 분석하기>"},"138":{"cat_title":"1 - 3. C++ 은 C 친구 - C 와 공통점","next_page":"141","path":"/C++","prev_page":"136","publish_date":"2011-05-15","tex_title":"C++ 와 C 언어의 공통 문법 구조","title":"씹어먹는 C++ - <1 - 3. C++ 은 C 친구 - C 와 공통점>"},"139":{"cat_title":"rand","path":"/C Reference/stdlib.h","publish_date":"2011-05-05","ref_title":"rand","title":"C 언어 레퍼런스 - rand 함수"},"140":{"cat_title":"srand","path":"/C Reference/stdlib.h","publish_date":"2011-05-05","ref_title":"srand","title":"C 언어 레퍼런스 - srand 함수"},"141":{"cat_title":"2. C++ 참조자(레퍼런스)의 도입","chapter":"C++ 의 참조자 (레퍼런스)","next_page":"169","path":"/C++","prev_page":"138","publish_date":"2012-01-01","title":"씹어먹는 C++ - <2. C++ 참조자(레퍼런스)의 도입>"},"142":{"path":"/잡담","publish_date":"2011-08-16","title":"비주얼 스튜디오에서 소스 한꺼번에 정렬하기"},"143":{"path":"/C++ Reference/iostream","publish_date":"2011-08-17","ref_title":"iostream, <iostream>","title":"C++ IOstream (입출력) 라이브러리"},"144":{"cat_title":"ios_base 클래스","path":"/C++ Reference/iostream","publish_date":"2011-08-17","ref_title":"ios_base","title":"C++ 레퍼런스 - ios_base 클래스"},"145":{"cat_title":"ios 클래스","path":"/C++ Reference/iostream","publish_date":"2011-08-17","ref_title":"ios, <ios>","title":"C++ 레퍼런스 - ios 클래스"},"146":{"cat_title":"istream 클래스","path":"/C++ Reference/iostream","publish_date":"2011-08-17","ref_title":"istream, <istream>, std::basic_istream, basic_istream","title":"C++ 레퍼런스 - istream 클래스"},"147":{"cat_title":"istream::operator>> (추출 연산자)","path":"/C++ Reference/iostream","publish_date":"2011-08-17","ref_title":"istream::operator>>","title":"C++ 레퍼런스 - istream::operator>> (추출 연산자)"},"149":{"cat_title":"istream::getline","path":"/C++ Reference/iostream","publish_date":"2011-08-18","ref_title":"getline","title":"C++ 레퍼런스 - istream::getline 함수"},"150":{"cat_title":"ios::exceptions","path":"/C++ Reference/iostream","publish_date":"2011-08-18","ref_title":"ios::exceptions","title":"C++ 레퍼런스 - ios::exceptions"},"151":{"cat_title":"ifstream 클래스","path":"/C++ Reference/iostream","publish_date":"2011-08-18","ref_title":"ifstream","title":"C++ 레퍼런스 - ifstream 클래스"},"152":{"cat_title":"ios_base::width","path":"/C++ Reference/iostream","publish_date":"2011-08-18","ref_title":"ios_base::width, width","title":"C++ 레퍼런스 - ios_base::width"},"153":{"cat_title":"ios_base::flags","path":"/C++ Reference/iostream","publish_date":"2011-08-19","ref_title":"flags, ios_base::flags","title":"C++ 레퍼런스 - ios_base::flags 함수"},"154":{"cat_title":"ios_base::fmtflags 타입","path":"/C++ Reference/iostream","publish_date":"2011-08-19","ref_title":"ios_base::fmtflags, fmtflags","title":"C++ 레퍼런스 - ios_base::fmtflags 타입"},"155":{"cat_title":"ios_base::setf","path":"/C++ Reference/iostream","publish_date":"2011-08-19","ref_title":"setf","title":"C++ 레퍼런스 - ios_base::setf 함수"},"156":{"cat_title":"ios_base::unsetf","path":"/C++ Reference/iostream","publish_date":"2011-08-19","ref_title":"unsetf, ios_base::unsetf","title":"C++ 레퍼런스 - ios_base::unsetf 함수"},"157":{"cat_title":"ios_base::precision","path":"/C++ Reference/iostream","publish_date":"2011-08-19","ref_title":"precision","title":"C++ 레퍼런스 - ios_base::precision 함수"},"158":{"cat_title":"ios_base::imbue","path":"/C++ Reference/iostream","publish_date":"2011-08-20","ref_title":"imbue, ios_base::imbue","title":"C++ 레퍼런스 - ios_base::imbue"},"159":{"cat_title":"ios_base::register_callback","path":"/C++ Reference/iostream","publish_date":"2011-08-20","ref_title":"ios_base::register_callback, register_callback","title":"C++ 레퍼런스 - ios_base::register_callback 함수"},"160":{"cat_title":"ios_base::getloc","path":"/C++ Reference/iostream","publish_date":"2011-08-20","ref_title":"getloc, ios_base::getloc","title":"C++ 레퍼런스 - ios_base::getloc 함수"},"161":{"cat_title":"ios_base::iword","path":"/C++ Reference/iostream","publish_date":"2011-10-22","ref_title":"ios_base::iword, iword","title":"C++ 레퍼런스 - ios_base::iword"},"162":{"cat_title":"ios_base::xalloc","path":"/C++ Reference/iostream","publish_date":"2011-10-22","ref_title":"xalloc, ios_base::xalloc","title":"C++ 레퍼런스 - ios_base::xalloc 함수"},"163":{"cat_title":"ios_base::pword","path":"/C++ Reference/iostream","publish_date":"2011-10-22","ref_title":"ios_base::pword, pword","title":"C++ 레퍼런스 - ios_base::pword 함수"},"164":{"cat_title":"ios::good","path":"/C++ Reference/iostream","publish_date":"2011-10-23","ref_title":"good, ios::good","title":"C++ 레퍼런스 - ios::good 함수"},"165":{"cat_title":"ios::fail","path":"/C++ Reference/iostream","publish_date":"2011-10-23","ref_title":"fail, ios::fail","title":"C++ 레퍼런스 - ios::fail 함수"},"166":{"cat_title":"ios::bad","path":"/C++ Reference/iostream","publish_date":"2011-10-23","ref_title":"bad, ios::bad","title":"C++ 레퍼런스 - ios::bad 함수"},"167":{"cat_title":"ios::eof","path":"/C++ Reference/iostream","publish_date":"2011-10-23","ref_title":"eof, ios::eof","title":"C++ 레퍼런스 - ios::eof 함수"},"168":{"cat_title":"ios::operator!","path":"/C++ Reference/iostream","publish_date":"2011-10-23","ref_title":"ios::operator!","title":"C++ 레퍼런스 - ios::operator!"},"169":{"cat_title":"3. C++ 의 세계로 오신 것을 환영합니다. (new, delete)","chapter":"C++ 의 세계로","next_page":"172","path":"/C++","prev_page":"141","publish_date":"2012-01-01","title":"씹어먹는 C++ - <3. C++ 의 세계로 오신 것을 환영합니다. (new, delete)>"},"170":{"cat_title":"ios::operator void*","path":"/C++ Reference/iostream","publish_date":"2012-01-01","ref_title":"ios::operator void*","title":"C++ 레퍼런스 - ios::operator void*"},"171":{"cat_title":"ios::rdstate","path":"/C++ Reference/iostream","publish_date":"2012-03-25","ref_title":"rdstate, ios::rdstate","title":"C++ 레퍼런스 - ios::rdstate 함수"},"172":{"cat_title":"4 - 1. 이 세상은 객체로 이루어져 있다","chapter":"객체지향프로그래밍의 시작","next_page":"173","path":"/C++","prev_page":"169","publish_date":"2012-02-29","title":"씹어먹는 C++ - <4 - 1. 이 세상은 객체로 이루어져 있다>"},"173":{"cat_title":"4 - 2. 클래스의 세계로 오신 것을 환영합니다. (함수의 오버로딩, 생성자)","next_page":"188","path":"/C++","prev_page":"172","publish_date":"2012-08-04","tex_title":"생성자와 함수의 오버로딩","title":"씹어먹는 C++ - <4 - 2. 클래스의 세계로 오신 것을 환영합니다. (함수의 오버로딩, 생성자)>"},"174":{"cat_title":"STL 컨테이너 (STL Container)","path":"/C++ Reference/Containers","publish_date":"2012-03-24","title":"C++ 레퍼런스 - STL 컨테이너 (STL Container)"},"175":{"cat_title":"vector","path":"/C++ Reference/Containers/vector","publish_date":"2012-03-24","title":"C++ 레퍼런스 - STL 컨테이너 - vector"},"176":{"cat_title":"deque","path":"/C++ Reference/Containers/deque","publish_date":"2012-03-24","ref_title":"<deque>","title":"C++ 레퍼런스 - STL 컨테이너 - deque"},"177":{"cat_title":"list","path":"/C++ Reference/Containers/list","publish_date":"2012-03-24","title":"C++ 레퍼런스 - STL 컨테이너 - list"},"178":{"cat_title":"vector 생성자","path":"/C++ Reference/Containers/vector","publish_date":"2012-03-25","title":"C++ 레퍼런스 - STL 컨테이너 - vector 생성자"},"179":{"cat_title":"ios::setstate","path":"/C++ Reference/iostream","publish_date":"2012-03-25","ref_title":"setstate, ios::setstate","title":"C++ 레퍼런스 - ios::setstate 함수"},"180":{"cat_title":"ios::clear","path":"/C++ Reference/iostream","publish_date":"2012-03-25","ref_title":"clear, ios::clear","title":"C++ 레퍼런스 - ios::clear"},"181":{"cat_title":"ios::fill","path":"/C++ Reference/iostream","publish_date":"2012-03-25","ref_title":"ios::fill","title":"C++ 레퍼런스 - ios::fill 함수"},"182":{"cat_title":"ios::rdbuf","path":"/C++ Reference/iostream","publish_date":"2012-03-25","ref_title":"ios::rdbuf, rdbuf","title":"C++ 레퍼런스 - ios::rdbuf 함수"},"183":{"cat_title":"vector::assign","path":"/C++ Reference/Containers/vector","publish_date":"2012-03-25","ref_title":"assign","title":"C++ 레퍼런스 - STL 컨테이너 - vector::assign 함수"},"184":{"path":"/C","publish_date":"2012-03-25","title":"씹어먹는 C 언어 - 찾아보기"},"185":{"cat_title":"vector::push_back","path":"/C++ Reference/Containers/vector","publish_date":"2012-08-05","ref_title":"push_back","title":"C++ 레퍼런스 - vector::push_back"},"186":{"cat_title":"vector::insert","path":"/C++ Reference/Containers/vector","publish_date":"2012-08-05","ref_title":"insert","title":"C++ 레퍼런스 - vector::insert"},"187":{"cat_title":"씹어먹는 C 언어 강좌 - PDF 파일","path":"/C","publish_date":"2012-08-06","title":"씹어먹는 C 언어 강좌 - PDF 파일 (2020 업데이트)"},"188":{"cat_title":"4 - 3. 스타크래프트를 만들자 ① (복사 생성자, 소멸자)","next_page":"197","path":"/C++","prev_page":"173","publish_date":"2013-01-06","tex_title":"복사 생성자와 소멸자","title":"씹어먹는 C++ - <4 - 3. 스타크래프트를 만들자 ① (복사 생성자, 소멸자)>"},"189":{"path":"/C++","publish_date":"2012-11-03","title":"씹어먹는 C++ 토막글 ① - Rvalue(우측값) 레퍼런스에 관해"},"190":{"cat_title":"ios::tie","path":"/C++ Reference/iostream","publish_date":"2012-11-07","ref_title":"ios::tie, tie","title":"C++ 레퍼런스 - ios::tie 함수"},"191":{"cat_title":"istream::get","path":"/C++ Reference/iostream","publish_date":"2012-11-07","ref_title":"get","title":"C++ 레퍼런스 - istream::get 함수"},"192":{"cat_title":"istream::gcount","path":"/C++ Reference/iostream","publish_date":"2012-11-07","ref_title":"gcount","title":"C++ 레퍼런스 - istream::gcount 함수"},"193":{"cat_title":"istream::ignore","path":"/C++ Reference/iostream","publish_date":"2012-11-07","ref_title":"ignore","title":"C++ 레퍼런스 - istream::ignore 함수"},"194":{"cat_title":"istream::peek","path":"/C++ Reference/iostream","publish_date":"2012-11-09","ref_title":"peek","title":"C++ 레퍼런스 - istream::peek 함수"},"195":{"path":"/C++","publish_date":"2013-01-05","title":"비주얼 스튜디오 2010 에서 C 및 C++ 프로그래밍 하기"},"196":{"path":"/C++","publish_date":"2013-01-08","title":"씹어먹는 C++ 토막글 ② - 람다(lambda) 함수"},"197":{"cat_title":"4 - 4. 스타크래프트를 만들자 ② (const, static)","next_page":"198","path":"/C++","prev_page":"188","publish_date":"2013-05-26","tex_title":"const, const, const!","title":"씹어먹는 C++ - <4 - 4. 스타크래프트를 만들자 ② (const, static)>"},"198":{"cat_title":"4 - 5. 내가 만드는 String 클래스","next_page":"253","path":"/C++","prev_page":"197","publish_date":"2013-08-15","tex_title":"내가 만들어보는 문자열 클래스","title":"씹어먹는 C++ - <4 - 5. 내가 만드는 String 클래스>"},"199":{"path":"/프로그래밍","publish_date":"2013-08-04","title":"모든 컴퓨터 과학자가 알아야 할 부동 소수점의 모든 것(What Every Computer Scientists Should Know About Floating Point Arithmetic)"},"201":{"path":"/프로그래밍","publish_date":"2013-08-04","title":"오픈북 프로젝트 - 양질의 컴퓨터 문서 공급 프로젝트"},"202":{"cat_title":"5 - 1. 내가 만든 연산자 - 연산자 오버로딩","chapter":"연산자 오버로딩(overloading)","next_page":"203","path":"/C++","prev_page":"253","publish_date":"2013-08-25","title":"씹어먹는 C++ - <5 - 1. 내가 만든 연산자 - 연산자 오버로딩>"},"203":{"cat_title":"5 - 2. 입출력, 첨자, 타입변환, 증감 연산자 오버로딩","next_page":"204","path":"/C++","prev_page":"202","publish_date":"2013-08-29","tex_title":"잡다한 연산자들의 오버로딩","title":"씹어먹는 C++ - <5 - 2. 입출력, 첨자, 타입변환, 증감 연산자 오버로딩>"},"204":{"cat_title":"5 - 3. 연산자 오버로딩 프로젝트 - N 차원 배열","next_page":"209","path":"/C++","prev_page":"203","publish_date":"2013-09-04","tex_title":"N 차원 배열 만들기 프로젝트","title":"씹어먹는 C++ - <5 - 3. 연산자 오버로딩 프로젝트 - N 차원 배열>"},"208":{"path":"/C++","publish_date":"2013-10-02","title":"C++ 11 자주 질문되는 것들 모음 (C++ 11 FAQs - Bjarne Stroustup)"},"209":{"cat_title":"6 - 1. C++ 표준 문자열 & 부모의 것을 물려쓰자 - 상속","chapter":"클래스의 상속","next_page":"210","path":"/C++","prev_page":"204","publish_date":"2014-03-30","title":"씹어먹는 C++ - <6 - 1. C++ 표준 문자열 & 부모의 것을 물려쓰자 - 상속>"},"210":{"cat_title":"6 - 2. 가상(virtual) 함수와 다형성","next_page":"211","path":"/C++","prev_page":"209","publish_date":"2014-03-31","tex_title":"가상 함수와 다형성","title":"씹어먹는 C++ - <6 - 2. 가상(virtual) 함수와 다형성>"},"211":{"cat_title":"6 - 3. 가상함수와 상속에 관련한 잡다한 내용들","next_page":"213","path":"/C++","prev_page":"210","publish_date":"2014-04-13","tex_title":"상속에 관련된 잡다한 내용들","title":"씹어먹는 C++ - <6 - 3. 가상함수와 상속에 관련한 잡다한 내용들>"},"213":{"cat_title":"7 - 1. C++ 에서의 입출력 (istream, ostream)","chapter":"C++ 표준 입출력 라이브러리","next_page":"215","path":"/C++","prev_page":"211","publish_date":"2015-05-04","title":"씹어먹는 C++ - <7 - 1. C++ 에서의 입출력 (istream, ostream)>"},"214":{"path":"/C","publish_date":"2015-08-11","title":"C 언어 및 강좌 관련 자주 질문되는 것들에 대한 답변"},"215":{"cat_title":"7 - 2. C++ 에서 파일 입출력 - std::ifstream. std::ofstream, std::stringstream","next_page":"217","path":"/C++","prev_page":"213","publish_date":"2016-07-14","tex_title":"C++ 파일 입출력","title":"씹어먹는 C++ - <7 - 2. C++ 에서 파일 입출력 - std::ifstream. std::ofstream, std::stringstream>"},"217":{"cat_title":"8 - 1. Excel 만들기 프로젝트 1부","chapter":"엑셀 만들기 프로젝트","next_page":"218","path":"/C++","prev_page":"215","publish_date":"2016-07-18","title":"씹어먹는 C++ - <8 - 1. Excel 만들기 프로젝트 1부>"},"218":{"cat_title":"8 - 2. Excel 만들기 프로젝트 2부","next_page":"219","path":"/C++","prev_page":"217","publish_date":"2016-07-19","tex_title":"엑셀 만들기 프로젝트 2부","title":"씹어먹는 C++ - <8 - 2. Excel 만들기 프로젝트 2부>"},"219":{"cat_title":"9 - 1. 코드를 찍어내는 틀 - C++ 템플릿(template)","chapter":"C++ 템플릿","next_page":"290","path":"/C++","prev_page":"218","publish_date":"2017-04-07","title":"씹어먹는 C++ - <9 - 1. 코드를 찍어내는 틀 - C++ 템플릿(template)>"},"220":{"cat_title":"비주얼 스튜디오 2017 커뮤니티에서 C/C++ 프로그래밍 하기","path":"/C++","publish_date":"2017-03-30","title":"비주얼 스튜디오 2017 커뮤니티에서 C/C++ 프로그래밍 하기"},"221":{"cat_title":"9 - 3. 템플릿 메타 프로그래밍 (Template Meta programming)","next_page":"222","path":"/C++","prev_page":"290","publish_date":"2017-06-26","tex_title":"템플릿 메타프로그래밍 1 부","title":"씹어먹는 C++ - <9 - 3. 템플릿 메타 프로그래밍 (Template Meta programming)>"},"222":{"cat_title":"9 - 4. 템플릿 메타 프로그래밍 2","next_page":"223","path":"/C++","prev_page":"221","publish_date":"2017-07-02","tex_title":"템플릿 메타프로그래밍 2 부","title":"씹어먹는 C++ - <9 - 4. 템플릿 메타 프로그래밍 2>"},"223":{"cat_title":"10 - 1. C++ STL - 벡터(std::vector), 리스트(list), 데크(deque)","chapter":"C++ 표준 라이브러리 (컨테이너와 알고리즘)","next_page":"224","path":"/C++","prev_page":"222","publish_date":"2017-07-04","tex_title":"C++ 표준 컨테이너","title":"씹어먹는 C++ - <10 - 1. C++ STL - 벡터(std::vector), 리스트(list), 데크(deque)>"},"224":{"cat_title":"10 - 2. C++ STL - 셋(set), 맵(map), unordered_set, unordered_map","next_page":"225","path":"/C++","prev_page":"223","publish_date":"2017-07-08","tex_title":"C++ 의 표준 연관 컨테이너들","title":"씹어먹는 C++ - <10 - 2. C++ STL - 셋(set), 맵(map), unordered_set, unordered_map>"},"225":{"cat_title":"10 - 3. C++ STL - 알고리즘(algorithm)","next_page":"292","path":"/C++","prev_page":"224","publish_date":"2017-07-09","tex_title":"C++ 표준 알고리즘 라이브러리","title":"씹어먹는 C++ - <10 - 3. C++ STL - 알고리즘(algorithm)>"},"227":{"cat_title":"12 - 1. 우측값 레퍼런스와 이동 생성자","chapter":"우측값과 이동 연산","next_page":"228","path":"/C++","prev_page":"230","publish_date":"2018-03-24","tex_title":"우측값 레퍼런스와 이동 생성자","title":"씹어먹는 C++ - <12 - 1. 우측값 레퍼런스와 이동 생성자>"},"228":{"cat_title":"12 - 2. Move 문법 (std::move semantics) 과 완벽한 전달 (perfect forwarding)","next_page":"229","path":"/C++","prev_page":"227","publish_date":"2018-03-27","tex_title":"move 문법과 완벽한 전달","title":"씹어먹는 C++ - <12 - 2. Move 문법 (std::move semantics) 과 완벽한 전달 (perfect forwarding)>"},"229":{"cat_title":"13 - 1. 객체의 유일한 소유권 - unique_ptr","chapter":"스마트 포인터","next_page":"252","path":"/C++","prev_page":"228","publish_date":"2018-09-18","title":"씹어먹는 C ++ - <13 - 1. 객체의 유일한 소유권 - unique_ptr>"},"230":{"cat_title":"11. C++ 에서 예외 처리","chapter":"C++ 에서의 예외 처리","next_page":"227","path":"/C++","prev_page":"292","publish_date":"2018-09-17","title":"씹어먹는 C ++ - <11. C++ 에서 예외 처리>"},"231":{"cat_title":"씹어먹는 C 언어 시작하기","next_page":"315","path":"/C","publish_date":"2009-04-15","title":"씹어먹는 C 언어 시작하기"},"232":{"is_published":"false","path":"/잡담","publish_date":"2010-09-01","title":"옛날 본인 소개"},"233":{"cat_title":"<string>","path":"/C++ Reference/string","ref_title":"<string>","title":"C++ 레퍼런스 - string 라이브러리","publish_date":"2018-12-31"},"234":{"cat_title":"basic_string","path":"/C++ Reference/string","ref_title":"basic_string, std::basic_string","title":"C++ 레퍼런스 - basic_string","publish_date":"2018-12-31"},"235":{"cat_title":"substr","path":"/C++ Reference/string","ref_title":"substr, basic_string::substr","title":"C++ 레퍼런스 - string 의 substr 함수","publish_date":"2018-12-31"},"236":{"cat_title":"getline","path":"/C++ Reference/string","ref_title":"getline, string::getline","title":"C++ 레퍼런스 - string 의 getline 함수","publish_date":"2018-12-31"},"237":{"cat_title":"string 생성자","path":"/C++ Reference/string","ref_title":"string, wstring, std::string, std::wstring, std::u16string, std::u32string","title":"C++ 레퍼런스 - string 생성자","publish_date":"2018-12-31"},"238":{"cat_title":"insert","path":"/C++ Reference/string","ref_title":"insert","title":"C++ 레퍼런스 - string 의 insert 함수","publish_date":"2018-12-31"},"239":{"cat_title":"basic_string_view","path":"/C++ Reference/string_view","ref_title":"basic_string_view, std::basic_string_view","title":"C++ 레퍼런스 - basic_string_view","publish_date":"2018-12-31"},"240":{"cat_title":"erase","path":"/C++ Reference/string","ref_title":"erase, basic_string::erase","title":"C++ 레퍼런스 - string 의 erase 함수","publish_date":"2018-12-31"},"241":{"cat_title":"find","path":"/C++ Reference/string","ref_title":"find, basic_string::find","title":"C++ 레퍼런스 - string 의 find 함수","publish_date":"2018-12-31"},"242":{"cat_title":"string_view","path":"/C++ Reference/string_view","ref_title":"string_view, std::string_view, wstring_view, std::wstring_view","title":"C++ 레퍼런스 - string_view 생성자","publish_date":"2018-12-31"},"243":{"cat_title":"malloc","path":"/C Reference/stdlib.h","ref_title":"malloc","title":"C 언어 레퍼런스 - malloc 함수","publish_date":"2018-12-31"},"244":{"cat_title":"free","path":"/C Reference/stdlib.h","ref_title":"free","title":"C 언어 레퍼런스 - free 함수","publish_date":"2018-12-31"},"245":{"cat_title":"모두의 알고리즘 강좌 시작하기","next_page":"246","path":"/알고리즘","title":"모두의 알고리즘 강좌 시작하기","publish_date":"2018-12-31"},"246":{"cat_title":"1. 어떤 알고리즘이 효율적인가?","next_page":"247","path":"/알고리즘","prev_page":"245","title":"모두의 알고리즘 - 1. 어떤 알고리즘이 효율적인가?","publish_date":"2018-12-31"},"247":{"cat_title":"2 - 1. 정렬 알고리즘과 분할 정복","next_page":"248","path":"/알고리즘","prev_page":"246","title":"모두의 알고리즘 - 2 - 1. 정렬 알고리즘과 분할 정복","publish_date":"2018-12-31"},"248":{"cat_title":"2 - 2. 정렬 알고리즘의 꽃 - 퀵 소트(Quicksort)","next_page":"274","path":"/알고리즘","prev_page":"247","title":"모두의 알고리즘 - 2 - 2. 정렬 알고리즘의 꽃 - 퀵 소트(Quicksort)","publish_date":"2018-12-31"},"249":{"cat_title":"find_first_of","path":"/C++ Reference/string","ref_title":"find_first_of, basic_string::find_first_of","title":"C++ 레퍼런스 - string 의 find_first_of 함수","publish_date":"2018-12-31"},"250":{"cat_title":"replace","path":"/C++ Reference/string","ref_title":"replace, basic_string::replace","title":"C++ 레퍼런스 - string 의 replace 함수","publish_date":"2018-12-31"},"251":{"cat_title":"본인 소개","path":"/잡담/본인 소개","publish_date":"2018-12-08","title":"본인 소개 (2018-12-08) 업데이트"},"252":{"cat_title":"13 - 2. 자원을 공유할 때 - shared_ptr 와 weak_ptr","next_page":"254","path":"/C++","prev_page":"229","publish_date":"2018-12-21","tex_title":"여러 객체가 소유할 수 있는 포인터","title":"씹어먹는 C ++ - <13 - 2. 자원을 공유할 때 - shared_ptr 와 weak_ptr>"},"253":{"cat_title":"4 - 6. 클래스의 explicit 과 mutable 키워드","next_page":"202","path":"/C++","prev_page":"198","publish_date":"2018-12-26","tex_title":"클래스의 explicit 과 mutable 키워드","title":"씹어먹는 C ++ - <4 - 6. 클래스의 explicit 과 mutable 키워드>"},"254":{"cat_title":"14. 함수를 객체로! (C++ std::function, std::mem_fn, std::bind)","chapter":"함수 객체","next_page":"269","path":"/C++","prev_page":"252","publish_date":"2019-02-24","title":"씹어먹는 C ++ - <14. 함수를 객체로! (C++ std::function, std::mem_fn, std::bind)>"},"255":{"cat_title":"씹어먹는 C ++ 토막글 3 - SFINAE 와 enable_if","path":"/C++","publish_date":"2019-01-05","title":"씹어먹는 C ++ 토막글 3 - SFINAE 와 enable_if"},"256":{"cat_title":"<algorithm>","path":"/C++ Reference/algorithm","publish_date":"2019-01-16","ref_title":"algorithm, <algorithm>","title":"C++ 레퍼런스 - algorithm 라이브러리"},"257":{"cat_title":"all_of","path":"/C++ Reference/algorithm","publish_date":"2019-01-16","ref_title":"all_of, std::all_of","title":"C++ 레퍼런스 - all_of 함수"},"258":{"cat_title":"any_of","path":"/C++ Reference/algorithm","publish_date":"2019-01-17","ref_title":"any_of, std::any_of","title":"C++ 레퍼런스 - any_of 함수"},"259":{"cat_title":"none_of","path":"/C++ Reference/algorithm","publish_date":"2019-01-19","ref_title":"none_of, std::none_of","title":"C++ 레퍼런스 - none_of 함수"},"260":{"cat_title":"for_each","path":"/C++ Reference/algorithm","publish_date":"2019-01-19","ref_title":"for_each, std::for_each","title":"C++ 레퍼런스 - for_each 함수"},"261":{"cat_title":"find","path":"/C++ Reference/algorithm","publish_date":"2019-01-19","ref_title":"find, std::find","title":"C++ 레퍼런스 - find 함수 (<algorithm>)"},"262":{"cat_title":"count, count_if","path":"/C++ Reference/algorithm","publish_date":"2019-02-01","ref_title":"count, std::count, count_if, std::count_if","title":"C++ 레퍼런스 - count 와 count_if 함수 (<algorithm>)"},"263":{"cat_title":"find_if","path":"/C++ Reference/algorithm","publish_date":"2019-02-04","ref_title":"find_if, std::find_if","title":"C++ 레퍼런스 - find_if 함수 (<algorithm>)"},"264":{"cat_title":"find_if_not","path":"/C++ Reference/algorithm","publish_date":"2019-02-04","ref_title":"find_if_not, std::find_if_not","title":"C++ 레퍼런스 - find_if_not 함수 (<algorithm>)"},"265":{"cat_title":"find_end","path":"/C++ Reference/algorithm","publish_date":"2019-02-04","ref_title":"find_end, std::find_end","title":"C++ 레퍼런스 - find_end 함수 (<algorithm>)"},"266":{"cat_title":"remove, remove_if","path":"/C++ Reference/algorithm","publish_date":"2019-02-18","ref_title":"remove, std::remove, remove_if, std::remove_if","title":"C++ 레퍼런스 - remove 와 remove_if 함수 (<algorithm>)"},"267":{"cat_title":"fill","path":"/C++ Reference/algorithm","publish_date":"2019-02-18","ref_title":"fill, std::fill","title":"C++ 레퍼런스 - fill 함수 (<algorithm>)"},"268":{"cat_title":"search","path":"/C++ Reference/algorithm","publish_date":"2020-10-16","ref_title":"std::search, search","title":"C++ 레퍼런스 - std::search (<algorithm>)"},"269":{"cat_title":"15 - 1. 동시에 실행을 시킨다고? - C++ 쓰레드(thread)","chapter":"C++ 쓰레드","next_page":"270","path":"/C++","prev_page":"254","publish_date":"2019-04-01","title":"씹어먹는 C ++ - <15 - 1. 동시에 실행을 시킨다고? - C++ 쓰레드(thread)>"},"270":{"cat_title":"15 - 2. C++ 뮤텍스(mutex) 와 조건 변수(condition variable)","next_page":"271","path":"/C++","prev_page":"269","publish_date":"2019-04-03","tex_title":"뮤텍스와 조건변수","title":"씹어먹는 C ++ - <15 - 2. C++ 뮤텍스(mutex) 와 조건 변수(condition variable)>"},"271":{"cat_title":"15 - 3. C++ memory order 와 atomic 객체","next_page":"284","path":"/C++","prev_page":"270","publish_date":"2019-04-07","tex_title":"atomic 객체와 명령어 재배치","title":"씹어먹는 C++ - <15 - 3. C++ memory order 와 atomic 객체>"},"272":{"cat_title":"sort","path":"/C++ Reference/algorithm","publish_date":"2019-04-10","ref_title":"sort, std::sort","title":"C++ 레퍼런스 - sort 함수 (<algorithm>)"},"273":{"cat_title":"partition","path":"/C++ Reference/algorithm","publish_date":"2019-04-13","ref_title":"partition, std::partition","title":"C++ 레퍼런스 - partition 함수 (<algorithm>)"},"274":{"cat_title":"2 - 3. 비교 기반 정렬 알고리즘의 한계와 정수 정렬 알고리즘들","next_page":"287","path":"/알고리즘","prev_page":"248","publish_date":"2019-04-17","title":"모두의 알고리즘 - 2 - 3. 비교 기반 정렬 알고리즘의 한계와 정수 정렬 알고리즘들"},"275":{"cat_title":"transform","path":"/C++ Reference/algorithm","publish_date":"2019-04-19","ref_title":"transform, std::transform","title":"C++ 레퍼런스 - transform 함수"},"276":{"cat_title":"istream::read","path":"/C++ Reference/iostream","publish_date":"2019-04-19","ref_title":"read, istream::read","title":"C++ 레퍼런스 - istream::read 함수"},"277":{"cat_title":"istream::sentry","path":"/C++ Reference/iostream","publish_date":"2019-04-19","ref_title":"sentry, istream::sentry","title":"C++ 레퍼런스 - istream::sentry 클래스"},"278":{"cat_title":"istream::tellg","path":"/C++ Reference/iostream","publish_date":"2019-04-19","ref_title":"tellg, istream::tellg","title":"C++ 레퍼런스 - istream::tellg 함수"},"279":{"cat_title":"istream::seekg","path":"/C++ Reference/iostream","publish_date":"2019-04-19","ref_title":"seekg, istream::seekg","title":"C++ 레퍼런스 - istream::seekg 함수"},"280":{"cat_title":"cin, wcin","path":"/C++ Reference/iostream","publish_date":"2019-04-25","ref_title":"cin, wcin, std::cin, std::wcin","title":"C++ 레퍼런스 - cin, wcin 객체"},"281":{"cat_title":"ios_base::sync_with_stdio","path":"/C++ Reference/iostream","publish_date":"2019-04-26","ref_title":"ios_base::sync_with_stdio, sync_with_stdio","title":"C++ 레퍼런스 - ios_base::sync_with_stdio 함수"},"282":{"cat_title":"std::dec, hex, oct","path":"/C++ Reference/iostream","publish_date":"2019-04-27","ref_title":"std::dec, std::hex, std::oct, dec, hex, oct","title":"C++ 레퍼런스 - std::dec, hex, oct 조작자들"},"283":{"cat_title":"ifstream 생성자","path":"/C++ Reference/iostream","publish_date":"2019-04-28","ref_title":"ifstream::ifstream","title":"C++ 레퍼런스 - ifstream 생성자"},"284":{"cat_title":"15 - 4. C++ future, promise, packaged_task, async","next_page":"285","path":"/C++","prev_page":"271","publish_date":"2019-05-18","tex_title":"비동기 연산을 위한 도구들","title":"씹어먹는 C++ - <15 - 4. C++ future, promise, packaged_task, async>"},"285":{"cat_title":"15 - 5. C++ 쓰레드풀(ThreadPool) 만들기","next_page":"286","path":"/C++","prev_page":"284","publish_date":"2019-05-19","tex_title":"ThreadPool 만들기","title":"씹어먹는 C++ - <15 - 5. C++ 쓰레드풀(ThreadPool) 만들기>"},"286":{"cat_title":"16 - 1. C++ 유니폼 초기화(Uniform Initialization)","chapter":"C++ 유니폼 초기화","next_page":"293","path":"/C++","prev_page":"285","publish_date":"2019-06-23","title":"씹어먹는 C++ - <16 - 1. C++ 유니폼 초기화(Uniform Initialization)>"},"287":{"cat_title":"2 - 4. k 번째 원소를 찾는 알고리즘 - QuickSelect","path":"/알고리즘","prev_page":"274","publish_date":"2019-06-28","title":"모두의 알고리즘 - 2 - 4. k 번째 원소를 찾는 알고리즘 - QuickSelect"},"288":{"cat_title":"iter_swap","path":"/C++ Reference/algorithm","publish_date":"2019-06-30","ref_title":"iter_swap, std::iter_swap","title":"C++ 레퍼런스 - iter_swap 함수 (<algorithm>)"},"289":{"cat_title":"reverse","path":"/C++ Reference/algorithm","publish_date":"2019-07-02","ref_title":"reverse, std::reverse","title":"C++ 레퍼런스 - reverse 함수 (<algorithm>)"},"290":{"cat_title":"9 - 2. 가변 길이 템플릿 (Variadic template)","next_page":"221","path":"/C++","prev_page":"219","publish_date":"2019-07-08","tex_title":"가변 길이 템플릿","title":"씹어먹는 C++ - <9 - 2. 가변 길이 템플릿 (Variadic template)>"},"291":{"cat_title":"nth_element","path":"/C++ Reference/algorithm","publish_date":"2019-07-05","ref_title":"nth_element, std::nth_element","title":"C++ 레퍼런스 - nth_element 함수 (<algorithm>)"},"292":{"cat_title":"10 - 4. C++ 문자열의 모든 것 (string 과 string_view)","next_page":"230","path":"/C++","prev_page":"225","publish_date":"2019-07-17","tex_title":"C++ 문자열의 모든 것 (string 과 string_view)","title":"씹어먹는 C++ - <10 - 4. C++ 문자열의 모든 것 (string 과 string_view)>"},"293":{"cat_title":"16 - 2. constexpr 와 함께라면 컴파일 타임 상수는 문제없어","chapter":"컴파일 타임 상수 constexpr","next_page":"294","path":"/C++","prev_page":"286","publish_date":"2019-08-18","title":"씹어먹는 C++ - <16 - 2. constexpr 와 함께라면 컴파일 타임 상수는 문제없어>"},"294":{"cat_title":"16 - 3. 타입을 알려주는 키워드 decltype 와 친구 std::declval","chapter":"decltype 와 std::decval","next_page":"295","path":"/C++","prev_page":"293","publish_date":"2019-09-15","title":"씹어먹는 C++ - <16 - 3. 타입을 알려주는 키워드 decltype 와 친구 std::declval>"},"295":{"cat_title":"17 - 1. type_traits 라이브러리, SFINAE, enable_if","chapter":"다양한 C++ 표준 라이브러리 소개","next_page":"303","path":"/C++","prev_page":"294","publish_date":"2019-12-2","tex_title":"type_traits 라이브러리, SFINAE, enable_if","title":"씹어먹는 C++ - <17 - 1. type_traits 라이브러리, SFINAE, enable_if>"},"296":{"cat_title":"stoi, stol, stoll","path":"/C++ Reference/string","publish_date":"2019-09-19","ref_title":"stoi, stol, stoll, std::stoi, std::stol, std::stoll","title":"C++ 레퍼런스 - string 의 stoi, stol, stoll 함수"},"297":{"cat_title":"c_str","path":"/C++ Reference/string","publish_date":"2019-09-19","ref_title":"c_str, std::c_str","title":"C++ 레퍼런스 - string 의 c_str 함수"},"298":{"cat_title":"lower_bound, upper_bound","path":"/C++ Reference/algorithm","publish_date":"2019-09-20","ref_title":"lower_bound, upper_bound, std::lower_bound, std::upper_bound","title":"C++ 레퍼런스 - std::lower_bound 와 upper_bound (<algorithm>)"},"299":{"cat_title":"<utility>","path":"/C++ Reference/utility","publish_date":"2019-09-20","ref_title":"<utility>","title":"C++ 레퍼런스 - utility 라이브러리"},"300":{"cat_title":"300 번째 글을 올리면서","path":"/잡담","publish_date":"2019-09-26","title":"300 번째 글을 올리면서"},"301":{"cat_title":"move","path":"/C++ Reference/utility","publish_date":"2019-09-26","ref_title":"move, std::move","title":"C++ 레퍼런스 - std::move 함수"},"302":{"cat_title":"forward","path":"/C++ Reference/utility","publish_date":"2019-09-28","ref_title":"forward, std::forward","title":"C++ 레퍼런스 - std::forward 함수"},"303":{"cat_title":"17 - 2. C++ 정규 표현식(<regex>) 라이브러리 소개","next_page":"304","path":"/C++","prev_page":"295","publish_date":"2020-1-3","tex_title":"정규 표현식(<regex>) 라이브러리 소개","title":"씹어먹는 C++ - <17 - 2. C++ 정규 표현식(<regex>) 라이브러리 소개>"},"304":{"cat_title":"17 - 3. 난수 생성(<random>)과 시간 관련 라이브러리(<chrono>) 소개","next_page":"306","path":"/C++","prev_page":"303","publish_date":"2020-1-6","tex_title":"난수 생성(<random>)과 시간 관련 라이브러리(<chrono>) 소개","title":"씹어먹는 C++ - <17 - 3. 난수 생성(<random>)과 시간 관련 라이브러리(<chrono>) 소개>"},"305":{"cat_title":"copy, copy_if","path":"/C++ Reference/algorithm","publish_date":"2020-01-30","ref_title":"copy, copy_if, std::copy, std::copy_if","title":"C++ 레퍼런스 - std::copy 와 copy_if (<algorithm>)"},"306":{"cat_title":"17 - 4. C++ 파일 시스템(<filesystem>) 라이브러리 소개","next_page":"309","path":"/C++","prev_page":"304","publish_date":"2020-03-11","tex_title":"C++ 파일 시스템(<filesystem>) 라이브러리 소개","title":"씹어먹는 C++ - <17 - 4. C++ 파일 시스템(<filesystem>) 라이브러리 소개>"},"307":{"cat_title":"append","path":"/C++ Reference/string","publish_date":"2020-03-10","ref_title":"append","title":"C++ 레퍼런스 - string 의 append 함수"},"308":{"cat_title":"4 - 2. 컴퓨터가 수를 표현하는 방법 (2의 보수)","next_page":"9","path":"/C","prev_page":"8","publish_date":"2020-04-29","tex_title":"컴퓨터가 음수를 표현하는 방법 (2의 보수)","title":"씹어먹는 C 언어 - <4 - 2. 컴퓨터가 음수를 표현하는 방법 (2의 보수)>"},"309":{"cat_title":"17 - 5. C++ 17 의 std::optional, variant, tuple 살펴보기","next_page":"310","path":"/C++","prev_page":"306","publish_date":"2020-05-05","tex_title":"C++ 유틸리티 라이브러리 소개","title":"씹어먹는 C++ - <17 - 5. C++ 17 의 std::optional, variant, tuple 살펴보기>"},"310":{"cat_title":"초보자를 위한 C++ 강좌 - 씹어먹는 C++ (완결)","chapter":"강의를 마무리 하면서","next_page":"311","path":"/C++","prev_page":"309","publish_date":"2020-05-10","title":"초보자를 위한 C++ 강좌 - 씹어먹는 C++ (완결)"},"311":{"cat_title":"19 - 1. Make 사용 가이드 (Makefile 만들기)","chapter":"C++ 개발자가 알면 좋을 것들","next_page":"332","path":"/C++","prev_page":"310","publish_date":"2020-06-10","tex_title":"Make 사용 가이드 (Makefile 만들기)","title":"씹어먹는 C++ - <19 - 1. Make 사용 가이드 (Makefile 만들기)>"},"312":{"cat_title":"씹어먹는 C++ 강좌 - PDF 파일","path":"/C++","publish_date":"2020-06-17","title":"씹어먹는 C++ 강좌 - PDF 파일"},"313":{"cat_title":"컴파일러는 정수 나눗셈을 어떻게 최적화 할까?","path":"/프로그래밍","publish_date":"2020-07-06","title":"컴파일러는 정수 나눗셈을 어떻게 최적화 할까?"},"314":{"cat_title":"std::array","path":"/C++ Reference/array","publish_date":"2020-07-17","ref_title":"std::array, array","title":"C++ 레퍼런스 - std::array (안전한 배열)"},"315":{"next_page":"5","path":"/C","prev_page":"231","publish_date":"2020-09-06","title":"내가 C 언어를 공부하기 전에 알았으면 좋았을 것들"},"316":{"path":"/X86-64 명령어 레퍼런스","publish_date":"2020-09-09","title":"x86-64 명령어 레퍼런스 읽는 법"},"317":{"cat_title":"replace, replace_if","path":"/C++ Reference/algorithm","publish_date":"2020-09-20","ref_title":"std::replace, replace, std::replace_if, replace_if","title":"C++ 레퍼런스 - std::replace 와 std::replace_if (<algorithm>)"},"318":{"cat_title":"generate","path":"/C++ Reference/algorithm","publish_date":"2020-09-23","ref_title":"std::generate, generate","title":"C++ 레퍼런스 - std::generate (<algorithm>)"},"319":{"cat_title":"20 - 1. 코드 부터 실행 파일 까지","next_page":"320","path":"/C++","prev_page":"332","publish_date":"2020-10-20","title":"씹어먹는 C++ - <20 - 1. 코드 부터 실행 파일 까지 - 전체적인 개요>"},"320":{"cat_title":"20 - 2.코드 부터 실행 파일 까지 - 컴파일 (Compile)","next_page":"321","path":"/C++","prev_page":"319","publish_date":"2020-10-20","title":"씹어먹는 C++ - <20 - 2. 코드 부터 실행 파일 까지 - 컴파일 (Compile)>"},"321":{"cat_title":"20 - 3. 코드 부터 실행 파일 까지 - 링킹 (Linking)","next_page":"322","path":"/C++","prev_page":"320","publish_date":"2020-11-25","title":"씹어먹는 C++ - <20 - 3. 코드 부터 실행 파일 까지 - 링킹 (Linking)>"},"322":{"cat_title":"20 - 4. 코드 부터 실행 파일 까지 - main 으로의 여정","next_page":"326","path":"/C++","prev_page":"321","publish_date":"2020-11-30","title":"씹어먹는 C++ - <20 - 4. 코드 부터 실행 파일 까지 - main 으로의 여정>"},"323":{"cat_title":"stable_sort","path":"/C++ Reference/algorithm","publish_date":"2020-12-06","ref_title":"std::stable_sort, stable_sort","title":"C++ 레퍼런스 - std::stable_sort (<algorithm>)"},"324":{"cat_title":"partial_sort","path":"/C++ Reference/algorithm","publish_date":"2020-12-06","ref_title":"std::partial_sort, partial_sort","title":"C++ 레퍼런스 - std::partial_sort (<algorithm>)"},"325":{"cat_title":"binary_search","path":"/C++ Reference/algorithm","publish_date":"2020-12-07","ref_title":"std::binary_search, binary_search","title":"C++ 레퍼런스 - std::binary_search (<algorithm>)"},"326":{"cat_title":"21. C++ 표준 라이브러리에서 자주 쓰이는 패턴 모음","next_page":"335","path":"/C++","prev_page":"322","publish_date":"2021-01-15","title":"씹어먹는 C++ - <21. C++ 표준 라이브러리에서 자주 쓰이는 패턴 모음>"},"327":{"path":"/잡담","publish_date":"2021-01-18","title":"2020년 마무리 및 2021년 계획"},"328":{"next_page":"329","path":"/자료 구조","publish_date":"2021-02-05","title":"모두를 위한 자료구조"},"329":{"path":"/자료 구조","prev_page":"328","publish_date":"2021-02-05","title":"모두의 자료구조 - 1. 배열(Array)"},"332":{"cat_title":"19 - 2. C++ 프로젝트를 위한 CMake 사용법","next_page":"319","path":"/C++","prev_page":"311","publish_date":"2021-02-24","tex_title":"CMake 사용 가이드","title":"씹어먹는 C++ - <19 - 2. C++ 프로젝트를 위한 CMake 사용법>"},"333":{"cat_title":"Rust 의 static 키워드","path":"/Rust","publish_date":"2021-06-10","title":"Rust 의 static 키워드"},"334":{"cat_title":"Rust 의 다형성 - static 과 dynamic dispatch","path":"/Rust","publish_date":"2021-08-15","title":"Rust 의 다형성 - static 과 dynamic dispatch (C++ 을 곁들인..)"},"335":{"cat_title":"22. 구글에서는 C++ 을 어떻게 쓰는가?","path":"/C++","prev_page":"326","publish_date":"2022-02-15","tex_title":"구글에서는 C++ 을 어떻게 쓰는가?","title":"씹어먹는 C++ - <22. 구글에서는 C++ 을 어떻게 쓰는가?>"},"aaa":{"cat_title":"AAA","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AAA","title":"AAA (Intel x86/64 assembly instruction)"},"aad":{"cat_title":"AAD","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AAD","title":"AAD (Intel x86/64 assembly instruction)"},"aam":{"cat_title":"AAM","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AAM","title":"AAM (Intel x86/64 assembly instruction)"},"aas":{"cat_title":"AAS","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AAS","title":"AAS (Intel x86/64 assembly instruction)"},"adc":{"cat_title":"ADC","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADC","title":"ADC (Intel x86/64 assembly instruction)"},"adcx":{"cat_title":"ADCX","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADCX","title":"ADCX (Intel x86/64 assembly instruction)"},"add":{"cat_title":"ADD","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADD","title":"ADD (Intel x86/64 assembly instruction)"},"addpd":{"cat_title":"ADDPD","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADDPD","title":"ADDPD (Intel x86/64 assembly instruction)"},"addps":{"cat_title":"ADDPS","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADDPS","title":"ADDPS (Intel x86/64 assembly instruction)"},"addsd":{"cat_title":"ADDSD","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADDSD","title":"ADDSD (Intel x86/64 assembly instruction)"},"addss":{"cat_title":"ADDSS","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADDSS","title":"ADDSS (Intel x86/64 assembly instruction)"},"addsubpd":{"cat_title":"ADDSUBPD","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADDSUBPD","title":"ADDSUBPD (Intel x86/64 assembly instruction)"},"addsubps":{"cat_title":"ADDSUBPS","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADDSUBPS","title":"ADDSUBPS (Intel x86/64 assembly instruction)"},"adox":{"cat_title":"ADOX","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ADOX","title":"ADOX (Intel x86/64 assembly instruction)"},"aesdec":{"cat_title":"AESDEC","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AESDEC","title":"AESDEC (Intel x86/64 assembly instruction)"},"aesdeclast":{"cat_title":"AESDECLAST","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AESDECLAST","title":"AESDECLAST (Intel x86/64 assembly instruction)"},"aesenc":{"cat_title":"AESENC","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AESENC","title":"AESENC (Intel x86/64 assembly instruction)"},"aesenclast":{"cat_title":"AESENCLAST","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AESENCLAST","title":"AESENCLAST (Intel x86/64 assembly instruction)"},"aesimc":{"cat_title":"AESIMC","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AESIMC","title":"AESIMC (Intel x86/64 assembly instruction)"},"aeskeygenassist":{"cat_title":"AESKEYGENASSIST","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AESKEYGENASSIST","title":"AESKEYGENASSIST (Intel x86/64 assembly instruction)"},"and":{"cat_title":"AND","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"AND","title":"AND (Intel x86/64 assembly instruction)"},"andn":{"cat_title":"ANDN","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ANDN","title":"ANDN (Intel x86/64 assembly instruction)"},"andnpd":{"cat_title":"ANDNPD","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ANDNPD","title":"ANDNPD (Intel x86/64 assembly instruction)"},"andnps":{"cat_title":"ANDNPS","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ANDNPS","title":"ANDNPS (Intel x86/64 assembly instruction)"},"andpd":{"cat_title":"ANDPD","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ANDPD","title":"ANDPD (Intel x86/64 assembly instruction)"},"andps":{"cat_title":"ANDPS","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ANDPS","title":"ANDPS (Intel x86/64 assembly instruction)"},"arpl":{"cat_title":"ARPL","path":"/X86-64 명령어 레퍼런스/A","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ARPL","title":"ARPL (Intel x86/64 assembly instruction)"},"bextr":{"cat_title":"BEXTR","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BEXTR","title":"BEXTR (Intel x86/64 assembly instruction)"},"blendpd":{"cat_title":"BLENDPD","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BLENDPD","title":"BLENDPD (Intel x86/64 assembly instruction)"},"blendps":{"cat_title":"BLENDPS","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BLENDPS","title":"BLENDPS (Intel x86/64 assembly instruction)"},"blendvpd":{"cat_title":"BLENDVPD","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BLENDVPD","title":"BLENDVPD (Intel x86/64 assembly instruction)"},"blendvps":{"cat_title":"BLENDVPS","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BLENDVPS","title":"BLENDVPS (Intel x86/64 assembly instruction)"},"blsi":{"cat_title":"BLSI","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BLSI","title":"BLSI (Intel x86/64 assembly instruction)"},"blsmsk":{"cat_title":"BLSMSK","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BLSMSK","title":"BLSMSK (Intel x86/64 assembly instruction)"},"blsr":{"cat_title":"BLSR","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BLSR","title":"BLSR (Intel x86/64 assembly instruction)"},"bndcl":{"cat_title":"BNDCL","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BNDCL","title":"BNDCL (Intel x86/64 assembly instruction)"},"bndcu-bndcn":{"cat_title":"BNDCU, BNDCN","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BNDCU, BNDCN","title":"BNDCU, BNDCNs (Intel x86/64 assembly instruction)"},"bndldx":{"cat_title":"BNDLDX","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BNDLDX","title":"BNDLDX (Intel x86/64 assembly instruction)"},"bndmk":{"cat_title":"BNDMK","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BNDMK","title":"BNDMK (Intel x86/64 assembly instruction)"},"bndmov":{"cat_title":"BNDMOV","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BNDMOV","title":"BNDMOV (Intel x86/64 assembly instruction)"},"bndstx":{"cat_title":"BNDSTX","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BNDSTX","title":"BNDSTX (Intel x86/64 assembly instruction)"},"bound":{"cat_title":"BOUND","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BOUND","title":"BOUND (Intel x86/64 assembly instruction)"},"bsf":{"cat_title":"BSF","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BSF","title":"BSF (Intel x86/64 assembly instruction)"},"bsr":{"cat_title":"BSR","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BSR","title":"BSR (Intel x86/64 assembly instruction)"},"bswap":{"cat_title":"BSWAP","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BSWAP","title":"BSWAP (Intel x86/64 assembly instruction)"},"bt":{"cat_title":"BT","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BT","title":"BT (Intel x86/64 assembly instruction)"},"btc":{"cat_title":"BTC","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BTC","title":"BTC (Intel x86/64 assembly instruction)"},"btr":{"cat_title":"BTR","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BTR","title":"BTR (Intel x86/64 assembly instruction)"},"bts":{"cat_title":"BTS","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BTS","title":"BTS (Intel x86/64 assembly instruction)"},"bzhi":{"cat_title":"BZHI","path":"/X86-64 명령어 레퍼런스/B","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"BZHI","title":"BZHI (Intel x86/64 assembly instruction)"},"call":{"cat_title":"CALL","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CALL","title":"CALL (Intel x86/64 assembly instruction)"},"cbw-cwde-cdqe":{"cat_title":"CBW, CWDE, CDQE","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CBW, CWDE, CDQE","title":"CBW, CWDE, CDQEs (Intel x86/64 assembly instruction)"},"clac":{"cat_title":"CLAC","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLAC","title":"CLAC (Intel x86/64 assembly instruction)"},"clc":{"cat_title":"CLC","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLC","title":"CLC (Intel x86/64 assembly instruction)"},"cld":{"cat_title":"CLD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLD","title":"CLD (Intel x86/64 assembly instruction)"},"clflush":{"cat_title":"CLFLUSH","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLFLUSH","title":"CLFLUSH (Intel x86/64 assembly instruction)"},"clflushopt":{"cat_title":"CLFLUSHOPT","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLFLUSHOPT","title":"CLFLUSHOPT (Intel x86/64 assembly instruction)"},"cli":{"cat_title":"CLI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLI","title":"CLI (Intel x86/64 assembly instruction)"},"clts":{"cat_title":"CLTS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLTS","title":"CLTS (Intel x86/64 assembly instruction)"},"clwb":{"cat_title":"CLWB","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CLWB","title":"CLWB (Intel x86/64 assembly instruction)"},"cmc":{"cat_title":"CMC","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMC","title":"CMC (Intel x86/64 assembly instruction)"},"cmovcc":{"cat_title":"CMOVcc","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMOVcc","title":"CMOVcc (Intel x86/64 assembly instruction)"},"cmp":{"cat_title":"CMP","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMP","title":"CMP (Intel x86/64 assembly instruction)"},"cmppd":{"cat_title":"CMPPD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMPPD","title":"CMPPD (Intel x86/64 assembly instruction)"},"cmpps":{"cat_title":"CMPPS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMPPS","title":"CMPPS (Intel x86/64 assembly instruction)"},"cmps-cmpsb-cmpsw-cmpsd-cmpsq":{"cat_title":"CMPS, CMPSB, CMPSW, CMPSD, CMPSQ","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMPS, CMPSB, CMPSW, CMPSD, CMPSQ","title":"CMPS, CMPSB, CMPSW, CMPSD, CMPSQs (Intel x86/64 assembly instruction)"},"cmpsd":{"cat_title":"CMPSD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMPSD","title":"CMPSD (Intel x86/64 assembly instruction)"},"cmpss":{"cat_title":"CMPSS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMPSS","title":"CMPSS (Intel x86/64 assembly instruction)"},"cmpxchg":{"cat_title":"CMPXCHG","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMPXCHG","title":"CMPXCHG (Intel x86/64 assembly instruction)"},"cmpxchg8b-cmpxchg16b":{"cat_title":"CMPXCHG8B, CMPXCHG16B","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CMPXCHG8B, CMPXCHG16B","title":"CMPXCHG8B, CMPXCHG16Bs (Intel x86/64 assembly instruction)"},"comisd":{"cat_title":"COMISD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"COMISD","title":"COMISD (Intel x86/64 assembly instruction)"},"comiss":{"cat_title":"COMISS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"COMISS","title":"COMISS (Intel x86/64 assembly instruction)"},"cpuid":{"cat_title":"CPUID","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CPUID","title":"CPUID (Intel x86/64 assembly instruction)"},"crc32":{"cat_title":"CRC32","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CRC32","title":"CRC32 (Intel x86/64 assembly instruction)"},"cvtdq2pd":{"cat_title":"CVTDQ2PD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTDQ2PD","title":"CVTDQ2PD (Intel x86/64 assembly instruction)"},"cvtdq2ps":{"cat_title":"CVTDQ2PS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTDQ2PS","title":"CVTDQ2PS (Intel x86/64 assembly instruction)"},"cvtpd2dq":{"cat_title":"CVTPD2DQ","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPD2DQ","title":"CVTPD2DQ (Intel x86/64 assembly instruction)"},"cvtpd2pi":{"cat_title":"CVTPD2PI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPD2PI","title":"CVTPD2PI (Intel x86/64 assembly instruction)"},"cvtpd2ps":{"cat_title":"CVTPD2PS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPD2PS","title":"CVTPD2PS (Intel x86/64 assembly instruction)"},"cvtpi2pd":{"cat_title":"CVTPI2PD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPI2PD","title":"CVTPI2PD (Intel x86/64 assembly instruction)"},"cvtpi2ps":{"cat_title":"CVTPI2PS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPI2PS","title":"CVTPI2PS (Intel x86/64 assembly instruction)"},"cvtps2dq":{"cat_title":"CVTPS2DQ","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPS2DQ","title":"CVTPS2DQ (Intel x86/64 assembly instruction)"},"cvtps2pd":{"cat_title":"CVTPS2PD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPS2PD","title":"CVTPS2PD (Intel x86/64 assembly instruction)"},"cvtps2pi":{"cat_title":"CVTPS2PI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTPS2PI","title":"CVTPS2PI (Intel x86/64 assembly instruction)"},"cvtsd2si":{"cat_title":"CVTSD2SI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTSD2SI","title":"CVTSD2SI (Intel x86/64 assembly instruction)"},"cvtsd2ss":{"cat_title":"CVTSD2SS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTSD2SS","title":"CVTSD2SS (Intel x86/64 assembly instruction)"},"cvtsi2sd":{"cat_title":"CVTSI2SD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTSI2SD","title":"CVTSI2SD (Intel x86/64 assembly instruction)"},"cvtsi2ss":{"cat_title":"CVTSI2SS","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTSI2SS","title":"CVTSI2SS (Intel x86/64 assembly instruction)"},"cvtss2sd":{"cat_title":"CVTSS2SD","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTSS2SD","title":"CVTSS2SD (Intel x86/64 assembly instruction)"},"cvtss2si":{"cat_title":"CVTSS2SI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTSS2SI","title":"CVTSS2SI (Intel x86/64 assembly instruction)"},"cvttpd2dq":{"cat_title":"CVTTPD2DQ","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTTPD2DQ","title":"CVTTPD2DQ (Intel x86/64 assembly instruction)"},"cvttpd2pi":{"cat_title":"CVTTPD2PI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTTPD2PI","title":"CVTTPD2PI (Intel x86/64 assembly instruction)"},"cvttps2dq":{"cat_title":"CVTTPS2DQ","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTTPS2DQ","title":"CVTTPS2DQ (Intel x86/64 assembly instruction)"},"cvttps2pi":{"cat_title":"CVTTPS2PI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTTPS2PI","title":"CVTTPS2PI (Intel x86/64 assembly instruction)"},"cvttsd2si":{"cat_title":"CVTTSD2SI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTTSD2SI","title":"CVTTSD2SI (Intel x86/64 assembly instruction)"},"cvttss2si":{"cat_title":"CVTTSS2SI","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CVTTSS2SI","title":"CVTTSS2SI (Intel x86/64 assembly instruction)"},"cwd-cdq-cqo":{"cat_title":"CWD, CDQ, CQO","path":"/X86-64 명령어 레퍼런스/C","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"CWD, CDQ, CQO","title":"CWD, CDQ, CQOs (Intel x86/64 assembly instruction)"},"daa":{"cat_title":"DAA","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DAA","title":"DAA (Intel x86/64 assembly instruction)"},"das":{"cat_title":"DAS","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DAS","title":"DAS (Intel x86/64 assembly instruction)"},"dec":{"cat_title":"DEC","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DEC","title":"DEC (Intel x86/64 assembly instruction)"},"div":{"cat_title":"DIV","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DIV","title":"DIV (Intel x86/64 assembly instruction)"},"divpd":{"cat_title":"DIVPD","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DIVPD","title":"DIVPD (Intel x86/64 assembly instruction)"},"divps":{"cat_title":"DIVPS","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DIVPS","title":"DIVPS (Intel x86/64 assembly instruction)"},"divsd":{"cat_title":"DIVSD","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DIVSD","title":"DIVSD (Intel x86/64 assembly instruction)"},"divss":{"cat_title":"DIVSS","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DIVSS","title":"DIVSS (Intel x86/64 assembly instruction)"},"dppd":{"cat_title":"DPPD","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DPPD","title":"DPPD (Intel x86/64 assembly instruction)"},"dpps":{"cat_title":"DPPS","path":"/X86-64 명령어 레퍼런스/D","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"DPPS","title":"DPPS (Intel x86/64 assembly instruction)"},"emms":{"cat_title":"EMMS","path":"/X86-64 명령어 레퍼런스/E","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"EMMS","title":"EMMS (Intel x86/64 assembly instruction)"},"enter":{"cat_title":"ENTER","path":"/X86-64 명령어 레퍼런스/E","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ENTER","title":"ENTER (Intel x86/64 assembly instruction)"},"extractps":{"cat_title":"EXTRACTPS","path":"/X86-64 명령어 레퍼런스/E","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"EXTRACTPS","title":"EXTRACTPS (Intel x86/64 assembly instruction)"},"f2xm1":{"cat_title":"F2XM1","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"F2XM1","title":"F2XM1 (Intel x86/64 assembly instruction)"},"fabs":{"cat_title":"FABS","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FABS","title":"FABS (Intel x86/64 assembly instruction)"},"fadd-faddp-fiadd":{"cat_title":"FADD, FADDP, FIADD","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FADD, FADDP, FIADD","title":"FADD, FADDP, FIADDs (Intel x86/64 assembly instruction)"},"fbld":{"cat_title":"FBLD","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FBLD","title":"FBLD (Intel x86/64 assembly instruction)"},"fbstp":{"cat_title":"FBSTP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FBSTP","title":"FBSTP (Intel x86/64 assembly instruction)"},"fchs":{"cat_title":"FCHS","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FCHS","title":"FCHS (Intel x86/64 assembly instruction)"},"fclex-fnclex":{"cat_title":"FCLEX, FNCLEX","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FCLEX, FNCLEX","title":"FCLEX, FNCLEXs (Intel x86/64 assembly instruction)"},"fcmovcc":{"cat_title":"FCMOVcc","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FCMOVcc","title":"FCMOVcc (Intel x86/64 assembly instruction)"},"fcom-fcomp-fcompp":{"cat_title":"FCOM, FCOMP, FCOMPP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FCOM, FCOMP, FCOMPP","title":"FCOM, FCOMP, FCOMPPs (Intel x86/64 assembly instruction)"},"fcomi-fcomip--fucomip":{"cat_title":"FCOMI, FCOMIP, , FUCOMIP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FCOMI, FCOMIP, , FUCOMIP","title":"FCOMI, FCOMIP, , FUCOMIPs (Intel x86/64 assembly instruction)"},"fcos":{"cat_title":"FCOS","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FCOS","title":"FCOS (Intel x86/64 assembly instruction)"},"fdecstp":{"cat_title":"FDECSTP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FDECSTP","title":"FDECSTP (Intel x86/64 assembly instruction)"},"fdiv-fdivp-fidiv":{"cat_title":"FDIV, FDIVP, FIDIV","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FDIV, FDIVP, FIDIV","title":"FDIV, FDIVP, FIDIVs (Intel x86/64 assembly instruction)"},"fdivr-fdivrp-fidivr":{"cat_title":"FDIVR, FDIVRP, FIDIVR","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FDIVR, FDIVRP, FIDIVR","title":"FDIVR, FDIVRP, FIDIVRs (Intel x86/64 assembly instruction)"},"ffree":{"cat_title":"FFREE","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FFREE","title":"FFREE (Intel x86/64 assembly instruction)"},"ficom-ficomp":{"cat_title":"FICOM, FICOMP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FICOM, FICOMP","title":"FICOM, FICOMPs (Intel x86/64 assembly instruction)"},"fild":{"cat_title":"FILD","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FILD","title":"FILD (Intel x86/64 assembly instruction)"},"fincstp":{"cat_title":"FINCSTP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FINCSTP","title":"FINCSTP (Intel x86/64 assembly instruction)"},"finit-fninit":{"cat_title":"FINIT, FNINIT","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FINIT, FNINIT","title":"FINIT, FNINITs (Intel x86/64 assembly instruction)"},"fist-fistp":{"cat_title":"FIST, FISTP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FIST, FISTP","title":"FIST, FISTPs (Intel x86/64 assembly instruction)"},"fisttp":{"cat_title":"FISTTP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FISTTP","title":"FISTTP (Intel x86/64 assembly instruction)"},"fld":{"cat_title":"FLD","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FLD","title":"FLD (Intel x86/64 assembly instruction)"},"fld1-fldl2t-fldl2e-fldpi-fldlg2-fldln2-fldz":{"cat_title":"FLD1, FLDL2T, FLDL2E, FLDPI, FLDLG2, FLDLN2, FLDZ","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FLD1, FLDL2T, FLDL2E, FLDPI, FLDLG2, FLDLN2, FLDZ","title":"FLD1, FLDL2T, FLDL2E, FLDPI, FLDLG2, FLDLN2, FLDZs (Intel x86/64 assembly instruction)"},"fldcw":{"cat_title":"FLDCW","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FLDCW","title":"FLDCW (Intel x86/64 assembly instruction)"},"fldenv":{"cat_title":"FLDENV","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FLDENV","title":"FLDENV (Intel x86/64 assembly instruction)"},"fmul-fmulp-fimul":{"cat_title":"FMUL, FMULP, FIMUL","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FMUL, FMULP, FIMUL","title":"FMUL, FMULP, FIMULs (Intel x86/64 assembly instruction)"},"fnop":{"cat_title":"FNOP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FNOP","title":"FNOP (Intel x86/64 assembly instruction)"},"fpatan":{"cat_title":"FPATAN","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FPATAN","title":"FPATAN (Intel x86/64 assembly instruction)"},"fprem":{"cat_title":"FPREM","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FPREM","title":"FPREM (Intel x86/64 assembly instruction)"},"fprem1":{"cat_title":"FPREM1","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FPREM1","title":"FPREM1 (Intel x86/64 assembly instruction)"},"fptan":{"cat_title":"FPTAN","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FPTAN","title":"FPTAN (Intel x86/64 assembly instruction)"},"frndint":{"cat_title":"FRNDINT","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FRNDINT","title":"FRNDINT (Intel x86/64 assembly instruction)"},"frstor":{"cat_title":"FRSTOR","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FRSTOR","title":"FRSTOR (Intel x86/64 assembly instruction)"},"fsave-fnsave":{"cat_title":"FSAVE, FNSAVE","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSAVE, FNSAVE","title":"FSAVE, FNSAVEs (Intel x86/64 assembly instruction)"},"fscale":{"cat_title":"FSCALE","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSCALE","title":"FSCALE (Intel x86/64 assembly instruction)"},"fsin":{"cat_title":"FSIN","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSIN","title":"FSIN (Intel x86/64 assembly instruction)"},"fsincos":{"cat_title":"FSINCOS","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSINCOS","title":"FSINCOS (Intel x86/64 assembly instruction)"},"fsqrt":{"cat_title":"FSQRT","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSQRT","title":"FSQRT (Intel x86/64 assembly instruction)"},"fst-fstp":{"cat_title":"FST, FSTP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FST, FSTP","title":"FST, FSTPs (Intel x86/64 assembly instruction)"},"fstcw-fnstcw":{"cat_title":"FSTCW, FNSTCW","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSTCW, FNSTCW","title":"FSTCW, FNSTCWs (Intel x86/64 assembly instruction)"},"fstenv-fnstenv":{"cat_title":"FSTENV, FNSTENV","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSTENV, FNSTENV","title":"FSTENV, FNSTENVs (Intel x86/64 assembly instruction)"},"fstsw-fnstsw":{"cat_title":"FSTSW, FNSTSW","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSTSW, FNSTSW","title":"FSTSW, FNSTSWs (Intel x86/64 assembly instruction)"},"fsub-fsubp-fisub":{"cat_title":"FSUB, FSUBP, FISUB","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSUB, FSUBP, FISUB","title":"FSUB, FSUBP, FISUBs (Intel x86/64 assembly instruction)"},"fsubr-fsubrp-fisubr":{"cat_title":"FSUBR, FSUBRP, FISUBR","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FSUBR, FSUBRP, FISUBR","title":"FSUBR, FSUBRP, FISUBRs (Intel x86/64 assembly instruction)"},"ftst":{"cat_title":"FTST","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FTST","title":"FTST (Intel x86/64 assembly instruction)"},"fucom-fucomp-fucompp":{"cat_title":"FUCOM, FUCOMP, FUCOMPP","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FUCOM, FUCOMP, FUCOMPP","title":"FUCOM, FUCOMP, FUCOMPPs (Intel x86/64 assembly instruction)"},"fxam":{"cat_title":"FXAM","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FXAM","title":"FXAM (Intel x86/64 assembly instruction)"},"fxch":{"cat_title":"FXCH","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FXCH","title":"FXCH (Intel x86/64 assembly instruction)"},"fxrstor":{"cat_title":"FXRSTOR","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FXRSTOR","title":"FXRSTOR (Intel x86/64 assembly instruction)"},"fxsave":{"cat_title":"FXSAVE","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FXSAVE","title":"FXSAVE (Intel x86/64 assembly instruction)"},"fxtract":{"cat_title":"FXTRACT","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FXTRACT","title":"FXTRACT (Intel x86/64 assembly instruction)"},"fyl2x":{"cat_title":"FYL2X","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FYL2X","title":"FYL2X (Intel x86/64 assembly instruction)"},"fyl2xp1":{"cat_title":"FYL2XP1","path":"/X86-64 명령어 레퍼런스/F","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"FYL2XP1","title":"FYL2XP1 (Intel x86/64 assembly instruction)"},"getsec[exitac]":{"cat_title":"GETSEC[EXITAC]","path":"/X86-64 명령어 레퍼런스/G","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"GETSEC[EXITAC]","title":"GETSEC[EXITAC] (Intel x86/64 assembly instruction)"},"getsec[parameters]":{"cat_title":"GETSEC[PARAMETERS]","path":"/X86-64 명령어 레퍼런스/G","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"GETSEC[PARAMETERS]","title":"GETSEC[PARAMETERS] (Intel x86/64 assembly instruction)"},"getsec[senter]":{"cat_title":"GETSEC[SENTER]","path":"/X86-64 명령어 레퍼런스/G","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"GETSEC[SENTER]","title":"GETSEC[SENTER] (Intel x86/64 assembly instruction)"},"getsec[sexit]":{"cat_title":"GETSEC[SEXIT]","path":"/X86-64 명령어 레퍼런스/G","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"GETSEC[SEXIT]","title":"GETSEC[SEXIT] (Intel x86/64 assembly instruction)"},"getsec[smctrl]":{"cat_title":"GETSEC[SMCTRL]","path":"/X86-64 명령어 레퍼런스/G","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"GETSEC[SMCTRL]","title":"GETSEC[SMCTRL] (Intel x86/64 assembly instruction)"},"getsec[wakeup]":{"cat_title":"GETSEC[WAKEUP]","path":"/X86-64 명령어 레퍼런스/G","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"GETSEC[WAKEUP]","title":"GETSEC[WAKEUP] (Intel x86/64 assembly instruction)"},"haddpd":{"cat_title":"HADDPD","path":"/X86-64 명령어 레퍼런스/H","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"HADDPD","title":"HADDPD (Intel x86/64 assembly instruction)"},"haddps":{"cat_title":"HADDPS","path":"/X86-64 명령어 레퍼런스/H","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"HADDPS","title":"HADDPS (Intel x86/64 assembly instruction)"},"hlt":{"cat_title":"HLT","path":"/X86-64 명령어 레퍼런스/H","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"HLT","title":"HLT (Intel x86/64 assembly instruction)"},"hsubpd":{"cat_title":"HSUBPD","path":"/X86-64 명령어 레퍼런스/H","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"HSUBPD","title":"HSUBPD (Intel x86/64 assembly instruction)"},"hsubps":{"cat_title":"HSUBPS","path":"/X86-64 명령어 레퍼런스/H","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"HSUBPS","title":"HSUBPS (Intel x86/64 assembly instruction)"},"idiv":{"cat_title":"IDIV","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"IDIV","title":"IDIV (Intel x86/64 assembly instruction)"},"imul":{"cat_title":"IMUL","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"IMUL","title":"IMUL (Intel x86/64 assembly instruction)"},"in":{"cat_title":"IN","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"IN","title":"IN (Intel x86/64 assembly instruction)"},"inc":{"cat_title":"INC","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"INC","title":"INC (Intel x86/64 assembly instruction)"},"ins-insb-insw-insd":{"cat_title":"INS, INSB, INSW, INSD","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"INS, INSB, INSW, INSD","title":"INS, INSB, INSW, INSDs (Intel x86/64 assembly instruction)"},"insertps":{"cat_title":"INSERTPS","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"INSERTPS","title":"INSERTPS (Intel x86/64 assembly instruction)"},"int n-into-int 3":{"cat_title":"INT n, INTO, INT 3","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"INT n, INTO, INT 3","title":"INT n, INTO, INT 3s (Intel x86/64 assembly instruction)"},"invd":{"cat_title":"INVD","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"INVD","title":"INVD (Intel x86/64 assembly instruction)"},"invlpg":{"cat_title":"INVLPG","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"INVLPG","title":"INVLPG (Intel x86/64 assembly instruction)"},"invpcid":{"cat_title":"INVPCID","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"INVPCID","title":"INVPCID (Intel x86/64 assembly instruction)"},"iret-iretd":{"cat_title":"IRET, IRETD","path":"/X86-64 명령어 레퍼런스/I","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"IRET, IRETD","title":"IRET, IRETDs (Intel x86/64 assembly instruction)"},"jcc":{"cat_title":"Jcc","path":"/X86-64 명령어 레퍼런스/J","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"Jcc","title":"Jcc (Intel x86/64 assembly instruction)"},"jmp":{"cat_title":"JMP","path":"/X86-64 명령어 레퍼런스/J","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"JMP","title":"JMP (Intel x86/64 assembly instruction)"},"kaddw-kaddb-kaddq-kaddd":{"cat_title":"KADDW, KADDB, KADDQ, KADDD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KADDW, KADDB, KADDQ, KADDD","title":"KADDW, KADDB, KADDQ, KADDDs (Intel x86/64 assembly instruction)"},"kandnw-kandnb-kandnq-kandnd":{"cat_title":"KANDNW, KANDNB, KANDNQ, KANDND","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KANDNW, KANDNB, KANDNQ, KANDND","title":"KANDNW, KANDNB, KANDNQ, KANDNDs (Intel x86/64 assembly instruction)"},"kandw-kandb-kandq-kandd":{"cat_title":"KANDW, KANDB, KANDQ, KANDD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KANDW, KANDB, KANDQ, KANDD","title":"KANDW, KANDB, KANDQ, KANDDs (Intel x86/64 assembly instruction)"},"kmovw-kmovb-kmovq-kmovd":{"cat_title":"KMOVW, KMOVB, KMOVQ, KMOVD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KMOVW, KMOVB, KMOVQ, KMOVD","title":"KMOVW, KMOVB, KMOVQ, KMOVDs (Intel x86/64 assembly instruction)"},"knotw-knotb-knotq-knotd":{"cat_title":"KNOTW, KNOTB, KNOTQ, KNOTD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KNOTW, KNOTB, KNOTQ, KNOTD","title":"KNOTW, KNOTB, KNOTQ, KNOTDs (Intel x86/64 assembly instruction)"},"kortestw-kortestb-kortestq-kortestd":{"cat_title":"KORTESTW, KORTESTB, KORTESTQ, KORTESTD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KORTESTW, KORTESTB, KORTESTQ, KORTESTD","title":"KORTESTW, KORTESTB, KORTESTQ, KORTESTDs (Intel x86/64 assembly instruction)"},"korw-korb-korq-kord":{"cat_title":"KORW, KORB, KORQ, KORD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KORW, KORB, KORQ, KORD","title":"KORW, KORB, KORQ, KORDs (Intel x86/64 assembly instruction)"},"kshiftlw-kshiftlb-kshiftlq-kshiftld":{"cat_title":"KSHIFTLW, KSHIFTLB, KSHIFTLQ, KSHIFTLD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KSHIFTLW, KSHIFTLB, KSHIFTLQ, KSHIFTLD","title":"KSHIFTLW, KSHIFTLB, KSHIFTLQ, KSHIFTLDs (Intel x86/64 assembly instruction)"},"kshiftrw-kshiftrb-kshiftrq-kshiftrd":{"cat_title":"KSHIFTRW, KSHIFTRB, KSHIFTRQ, KSHIFTRD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KSHIFTRW, KSHIFTRB, KSHIFTRQ, KSHIFTRD","title":"KSHIFTRW, KSHIFTRB, KSHIFTRQ, KSHIFTRDs (Intel x86/64 assembly instruction)"},"ktestw-ktestb-ktestq-ktestd":{"cat_title":"KTESTW, KTESTB, KTESTQ, KTESTD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KTESTW, KTESTB, KTESTQ, KTESTD","title":"KTESTW, KTESTB, KTESTQ, KTESTDs (Intel x86/64 assembly instruction)"},"kunpckbw-kunpckwd-kunpckdq":{"cat_title":"KUNPCKBW, KUNPCKWD, KUNPCKDQ","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KUNPCKBW, KUNPCKWD, KUNPCKDQ","title":"KUNPCKBW, KUNPCKWD, KUNPCKDQs (Intel x86/64 assembly instruction)"},"kxnorw-kxnorb-kxnorq-kxnord":{"cat_title":"KXNORW, KXNORB, KXNORQ, KXNORD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KXNORW, KXNORB, KXNORQ, KXNORD","title":"KXNORW, KXNORB, KXNORQ, KXNORDs (Intel x86/64 assembly instruction)"},"kxorw-kxorb-kxorq-kxord":{"cat_title":"KXORW, KXORB, KXORQ, KXORD","path":"/X86-64 명령어 레퍼런스/K","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"KXORW, KXORB, KXORQ, KXORD","title":"KXORW, KXORB, KXORQ, KXORDs (Intel x86/64 assembly instruction)"},"lahf":{"cat_title":"LAHF","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LAHF","title":"LAHF (Intel x86/64 assembly instruction)"},"lar":{"cat_title":"LAR","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LAR","title":"LAR (Intel x86/64 assembly instruction)"},"lddqu":{"cat_title":"LDDQU","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LDDQU","title":"LDDQU (Intel x86/64 assembly instruction)"},"ldmxcsr":{"cat_title":"LDMXCSR","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LDMXCSR","title":"LDMXCSR (Intel x86/64 assembly instruction)"},"lds-les-lfs-lgs-lss":{"cat_title":"LDS, LES, LFS, LGS, LSS","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LDS, LES, LFS, LGS, LSS","title":"LDS, LES, LFS, LGS, LSSs (Intel x86/64 assembly instruction)"},"lea":{"cat_title":"LEA","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LEA","title":"LEA (Intel x86/64 assembly instruction)"},"leave":{"cat_title":"LEAVE","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LEAVE","title":"LEAVE (Intel x86/64 assembly instruction)"},"lfence":{"cat_title":"LFENCE","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LFENCE","title":"LFENCE (Intel x86/64 assembly instruction)"},"lgdt-lidt":{"cat_title":"LGDT, LIDT","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LGDT, LIDT","title":"LGDT, LIDTs (Intel x86/64 assembly instruction)"},"lldt":{"cat_title":"LLDT","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LLDT","title":"LLDT (Intel x86/64 assembly instruction)"},"lmsw":{"cat_title":"LMSW","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LMSW","title":"LMSW (Intel x86/64 assembly instruction)"},"lock":{"cat_title":"LOCK","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LOCK","title":"LOCK (Intel x86/64 assembly instruction)"},"lods-lodsb-lodsw-lodsd-lodsq":{"cat_title":"LODS, LODSB, LODSW, LODSD, LODSQ","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LODS, LODSB, LODSW, LODSD, LODSQ","title":"LODS, LODSB, LODSW, LODSD, LODSQs (Intel x86/64 assembly instruction)"},"loop-loopcc":{"cat_title":"LOOP, LOOPcc","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LOOP, LOOPcc","title":"LOOP, LOOPccs (Intel x86/64 assembly instruction)"},"lsl":{"cat_title":"LSL","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LSL","title":"LSL (Intel x86/64 assembly instruction)"},"ltr":{"cat_title":"LTR","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LTR","title":"LTR (Intel x86/64 assembly instruction)"},"lzcnt":{"cat_title":"LZCNT","path":"/X86-64 명령어 레퍼런스/L","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"LZCNT","title":"LZCNT (Intel x86/64 assembly instruction)"},"maskmovdqu":{"cat_title":"MASKMOVDQU","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MASKMOVDQU","title":"MASKMOVDQU (Intel x86/64 assembly instruction)"},"maskmovq":{"cat_title":"MASKMOVQ","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MASKMOVQ","title":"MASKMOVQ (Intel x86/64 assembly instruction)"},"maxpd":{"cat_title":"MAXPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MAXPD","title":"MAXPD (Intel x86/64 assembly instruction)"},"maxps":{"cat_title":"MAXPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MAXPS","title":"MAXPS (Intel x86/64 assembly instruction)"},"maxsd":{"cat_title":"MAXSD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MAXSD","title":"MAXSD (Intel x86/64 assembly instruction)"},"maxss":{"cat_title":"MAXSS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MAXSS","title":"MAXSS (Intel x86/64 assembly instruction)"},"mfence":{"cat_title":"MFENCE","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MFENCE","title":"MFENCE (Intel x86/64 assembly instruction)"},"minpd":{"cat_title":"MINPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MINPD","title":"MINPD (Intel x86/64 assembly instruction)"},"minps":{"cat_title":"MINPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MINPS","title":"MINPS (Intel x86/64 assembly instruction)"},"minsd":{"cat_title":"MINSD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MINSD","title":"MINSD (Intel x86/64 assembly instruction)"},"minss":{"cat_title":"MINSS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MINSS","title":"MINSS (Intel x86/64 assembly instruction)"},"monitor":{"cat_title":"MONITOR","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MONITOR","title":"MONITOR (Intel x86/64 assembly instruction)"},"mov":{"cat_title":"MOV","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOV","title":"MOV (Intel x86/64 assembly instruction)"},"mov_1":{"cat_title":"MOV","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOV","title":"MOV (Intel x86/64 assembly instruction)"},"mov_2":{"cat_title":"MOV","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOV","title":"MOV (Intel x86/64 assembly instruction)"},"movapd":{"cat_title":"MOVAPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVAPD","title":"MOVAPD (Intel x86/64 assembly instruction)"},"movaps":{"cat_title":"MOVAPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVAPS","title":"MOVAPS (Intel x86/64 assembly instruction)"},"movbe":{"cat_title":"MOVBE","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVBE","title":"MOVBE (Intel x86/64 assembly instruction)"},"movd-movq":{"cat_title":"MOVD, MOVQ","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVD, MOVQ","title":"MOVD, MOVQs (Intel x86/64 assembly instruction)"},"movddup":{"cat_title":"MOVDDUP","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVDDUP","title":"MOVDDUP (Intel x86/64 assembly instruction)"},"movdq2q":{"cat_title":"MOVDQ2Q","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVDQ2Q","title":"MOVDQ2Q (Intel x86/64 assembly instruction)"},"movdqa-vmovdqa32-vmovdqa64":{"cat_title":"MOVDQA, VMOVDQA32, VMOVDQA64","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVDQA, VMOVDQA32, VMOVDQA64","title":"MOVDQA, VMOVDQA32, VMOVDQA64s (Intel x86/64 assembly instruction)"},"movdqu-vmovdqu8-vmovdqu16-vmovdqu32-vmovdqu64":{"cat_title":"MOVDQU, VMOVDQU8, VMOVDQU16, VMOVDQU32, VMOVDQU64","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVDQU, VMOVDQU8, VMOVDQU16, VMOVDQU32, VMOVDQU64","title":"MOVDQU, VMOVDQU8, VMOVDQU16, VMOVDQU32, VMOVDQU64s (Intel x86/64 assembly instruction)"},"movhlps":{"cat_title":"MOVHLPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVHLPS","title":"MOVHLPS (Intel x86/64 assembly instruction)"},"movhpd":{"cat_title":"MOVHPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVHPD","title":"MOVHPD (Intel x86/64 assembly instruction)"},"movhps":{"cat_title":"MOVHPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVHPS","title":"MOVHPS (Intel x86/64 assembly instruction)"},"movlhps":{"cat_title":"MOVLHPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVLHPS","title":"MOVLHPS (Intel x86/64 assembly instruction)"},"movlpd":{"cat_title":"MOVLPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVLPD","title":"MOVLPD (Intel x86/64 assembly instruction)"},"movlps":{"cat_title":"MOVLPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVLPS","title":"MOVLPS (Intel x86/64 assembly instruction)"},"movmskpd":{"cat_title":"MOVMSKPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVMSKPD","title":"MOVMSKPD (Intel x86/64 assembly instruction)"},"movmskps":{"cat_title":"MOVMSKPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVMSKPS","title":"MOVMSKPS (Intel x86/64 assembly instruction)"},"movntdq":{"cat_title":"MOVNTDQ","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVNTDQ","title":"MOVNTDQ (Intel x86/64 assembly instruction)"},"movntdqa":{"cat_title":"MOVNTDQA","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVNTDQA","title":"MOVNTDQA (Intel x86/64 assembly instruction)"},"movnti":{"cat_title":"MOVNTI","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVNTI","title":"MOVNTI (Intel x86/64 assembly instruction)"},"movntpd":{"cat_title":"MOVNTPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVNTPD","title":"MOVNTPD (Intel x86/64 assembly instruction)"},"movntps":{"cat_title":"MOVNTPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVNTPS","title":"MOVNTPS (Intel x86/64 assembly instruction)"},"movntq":{"cat_title":"MOVNTQ","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVNTQ","title":"MOVNTQ (Intel x86/64 assembly instruction)"},"movq":{"cat_title":"MOVQ","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVQ","title":"MOVQ (Intel x86/64 assembly instruction)"},"movq2dq":{"cat_title":"MOVQ2DQ","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVQ2DQ","title":"MOVQ2DQ (Intel x86/64 assembly instruction)"},"movs-movsb-movsw-movsd-movsq":{"cat_title":"MOVS, MOVSB, MOVSW, MOVSD, MOVSQ","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVS, MOVSB, MOVSW, MOVSD, MOVSQ","title":"MOVS, MOVSB, MOVSW, MOVSD, MOVSQs (Intel x86/64 assembly instruction)"},"movsd":{"cat_title":"MOVSD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVSD","title":"MOVSD (Intel x86/64 assembly instruction)"},"movshdup":{"cat_title":"MOVSHDUP","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVSHDUP","title":"MOVSHDUP (Intel x86/64 assembly instruction)"},"movsldup":{"cat_title":"MOVSLDUP","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVSLDUP","title":"MOVSLDUP (Intel x86/64 assembly instruction)"},"movss":{"cat_title":"MOVSS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVSS","title":"MOVSS (Intel x86/64 assembly instruction)"},"movsx-movsxd":{"cat_title":"MOVSX, MOVSXD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVSX, MOVSXD","title":"MOVSX, MOVSXDs (Intel x86/64 assembly instruction)"},"movupd":{"cat_title":"MOVUPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVUPD","title":"MOVUPD (Intel x86/64 assembly instruction)"},"movups":{"cat_title":"MOVUPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVUPS","title":"MOVUPS (Intel x86/64 assembly instruction)"},"movzx":{"cat_title":"MOVZX","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MOVZX","title":"MOVZX (Intel x86/64 assembly instruction)"},"mpsadbw":{"cat_title":"MPSADBW","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MPSADBW","title":"MPSADBW (Intel x86/64 assembly instruction)"},"mul":{"cat_title":"MUL","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MUL","title":"MUL (Intel x86/64 assembly instruction)"},"mulpd":{"cat_title":"MULPD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MULPD","title":"MULPD (Intel x86/64 assembly instruction)"},"mulps":{"cat_title":"MULPS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MULPS","title":"MULPS (Intel x86/64 assembly instruction)"},"mulsd":{"cat_title":"MULSD","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MULSD","title":"MULSD (Intel x86/64 assembly instruction)"},"mulss":{"cat_title":"MULSS","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MULSS","title":"MULSS (Intel x86/64 assembly instruction)"},"mulx":{"cat_title":"MULX","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MULX","title":"MULX (Intel x86/64 assembly instruction)"},"mwait":{"cat_title":"MWAIT","path":"/X86-64 명령어 레퍼런스/M","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"MWAIT","title":"MWAIT (Intel x86/64 assembly instruction)"},"neg":{"cat_title":"NEG","path":"/X86-64 명령어 레퍼런스/N","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"NEG","title":"NEG (Intel x86/64 assembly instruction)"},"nop":{"cat_title":"NOP","path":"/X86-64 명령어 레퍼런스/N","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"NOP","title":"NOP (Intel x86/64 assembly instruction)"},"not":{"cat_title":"NOT","path":"/X86-64 명령어 레퍼런스/N","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"NOT","title":"NOT (Intel x86/64 assembly instruction)"},"or":{"cat_title":"OR","path":"/X86-64 명령어 레퍼런스/O","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"OR","title":"OR (Intel x86/64 assembly instruction)"},"orpd":{"cat_title":"ORPD","path":"/X86-64 명령어 레퍼런스/O","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ORPD","title":"ORPD (Intel x86/64 assembly instruction)"},"orps":{"cat_title":"ORPS","path":"/X86-64 명령어 레퍼런스/O","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ORPS","title":"ORPS (Intel x86/64 assembly instruction)"},"out":{"cat_title":"OUT","path":"/X86-64 명령어 레퍼런스/O","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"OUT","title":"OUT (Intel x86/64 assembly instruction)"},"outs-outsb-outsw-outsd":{"cat_title":"OUTS, OUTSB, OUTSW, OUTSD","path":"/X86-64 명령어 레퍼런스/O","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"OUTS, OUTSB, OUTSW, OUTSD","title":"OUTS, OUTSB, OUTSW, OUTSDs (Intel x86/64 assembly instruction)"},"pabsb-pabsw-pabsd-pabsq":{"cat_title":"PABSB, PABSW, PABSD, PABSQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PABSB, PABSW, PABSD, PABSQ","title":"PABSB, PABSW, PABSD, PABSQs (Intel x86/64 assembly instruction)"},"packsswb-packssdw":{"cat_title":"PACKSSWB, PACKSSDW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PACKSSWB, PACKSSDW","title":"PACKSSWB, PACKSSDWs (Intel x86/64 assembly instruction)"},"packusdw":{"cat_title":"PACKUSDW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PACKUSDW","title":"PACKUSDW (Intel x86/64 assembly instruction)"},"packuswb":{"cat_title":"PACKUSWB","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PACKUSWB","title":"PACKUSWB (Intel x86/64 assembly instruction)"},"paddb-paddw-paddd-paddq":{"cat_title":"PADDB, PADDW, PADDD, PADDQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PADDB, PADDW, PADDD, PADDQ","title":"PADDB, PADDW, PADDD, PADDQs (Intel x86/64 assembly instruction)"},"paddsb-paddsw":{"cat_title":"PADDSB, PADDSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PADDSB, PADDSW","title":"PADDSB, PADDSWs (Intel x86/64 assembly instruction)"},"paddusb-paddusw":{"cat_title":"PADDUSB, PADDUSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PADDUSB, PADDUSW","title":"PADDUSB, PADDUSWs (Intel x86/64 assembly instruction)"},"palignr":{"cat_title":"PALIGNR","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PALIGNR","title":"PALIGNR (Intel x86/64 assembly instruction)"},"pand":{"cat_title":"PAND","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PAND","title":"PAND (Intel x86/64 assembly instruction)"},"pandn":{"cat_title":"PANDN","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PANDN","title":"PANDN (Intel x86/64 assembly instruction)"},"pause":{"cat_title":"PAUSE","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PAUSE","title":"PAUSE (Intel x86/64 assembly instruction)"},"pavgb-pavgw":{"cat_title":"PAVGB, PAVGW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PAVGB, PAVGW","title":"PAVGB, PAVGWs (Intel x86/64 assembly instruction)"},"pblendvb":{"cat_title":"PBLENDVB","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PBLENDVB","title":"PBLENDVB (Intel x86/64 assembly instruction)"},"pblendw":{"cat_title":"PBLENDW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PBLENDW","title":"PBLENDW (Intel x86/64 assembly instruction)"},"pcmpeqb-pcmpeqw-pcmpeqd":{"cat_title":"PCMPEQB, PCMPEQW, PCMPEQD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPEQB, PCMPEQW, PCMPEQD","title":"PCMPEQB, PCMPEQW, PCMPEQDs (Intel x86/64 assembly instruction)"},"pcmpeqq":{"cat_title":"PCMPEQQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPEQQ","title":"PCMPEQQ (Intel x86/64 assembly instruction)"},"pcmpestri":{"cat_title":"PCMPESTRI","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPESTRI","title":"PCMPESTRI (Intel x86/64 assembly instruction)"},"pcmpestrm":{"cat_title":"PCMPESTRM","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPESTRM","title":"PCMPESTRM (Intel x86/64 assembly instruction)"},"pcmpgtb-pcmpgtw-pcmpgtd":{"cat_title":"PCMPGTB, PCMPGTW, PCMPGTD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPGTB, PCMPGTW, PCMPGTD","title":"PCMPGTB, PCMPGTW, PCMPGTDs (Intel x86/64 assembly instruction)"},"pcmpgtq":{"cat_title":"PCMPGTQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPGTQ","title":"PCMPGTQ (Intel x86/64 assembly instruction)"},"pcmpistri":{"cat_title":"PCMPISTRI","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPISTRI","title":"PCMPISTRI (Intel x86/64 assembly instruction)"},"pcmpistrm":{"cat_title":"PCMPISTRM","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PCMPISTRM","title":"PCMPISTRM (Intel x86/64 assembly instruction)"},"pdep":{"cat_title":"PDEP","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PDEP","title":"PDEP (Intel x86/64 assembly instruction)"},"pext":{"cat_title":"PEXT","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PEXT","title":"PEXT (Intel x86/64 assembly instruction)"},"pextrb-pextrd-pextrq":{"cat_title":"PEXTRB, PEXTRD, PEXTRQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PEXTRB, PEXTRD, PEXTRQ","title":"PEXTRB, PEXTRD, PEXTRQs (Intel x86/64 assembly instruction)"},"pextrw":{"cat_title":"PEXTRW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PEXTRW","title":"PEXTRW (Intel x86/64 assembly instruction)"},"phaddsw":{"cat_title":"PHADDSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PHADDSW","title":"PHADDSW (Intel x86/64 assembly instruction)"},"phaddw-phaddd":{"cat_title":"PHADDW, PHADDD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PHADDW, PHADDD","title":"PHADDW, PHADDDs (Intel x86/64 assembly instruction)"},"phminposuw":{"cat_title":"PHMINPOSUW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PHMINPOSUW","title":"PHMINPOSUW (Intel x86/64 assembly instruction)"},"phsubsw":{"cat_title":"PHSUBSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PHSUBSW","title":"PHSUBSW (Intel x86/64 assembly instruction)"},"phsubw-phsubd":{"cat_title":"PHSUBW, PHSUBD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PHSUBW, PHSUBD","title":"PHSUBW, PHSUBDs (Intel x86/64 assembly instruction)"},"pinsrb-pinsrd-pinsrq":{"cat_title":"PINSRB, PINSRD, PINSRQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PINSRB, PINSRD, PINSRQ","title":"PINSRB, PINSRD, PINSRQs (Intel x86/64 assembly instruction)"},"pinsrw":{"cat_title":"PINSRW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PINSRW","title":"PINSRW (Intel x86/64 assembly instruction)"},"pmaddubsw":{"cat_title":"PMADDUBSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMADDUBSW","title":"PMADDUBSW (Intel x86/64 assembly instruction)"},"pmaddwd":{"cat_title":"PMADDWD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMADDWD","title":"PMADDWD (Intel x86/64 assembly instruction)"},"pmaxsb-pmaxsw-pmaxsd-pmaxsq":{"cat_title":"PMAXSB, PMAXSW, PMAXSD, PMAXSQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMAXSB, PMAXSW, PMAXSD, PMAXSQ","title":"PMAXSB, PMAXSW, PMAXSD, PMAXSQs (Intel x86/64 assembly instruction)"},"pmaxub-pmaxuw":{"cat_title":"PMAXUB, PMAXUW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMAXUB, PMAXUW","title":"PMAXUB, PMAXUWs (Intel x86/64 assembly instruction)"},"pmaxud-pmaxuq":{"cat_title":"PMAXUD, PMAXUQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMAXUD, PMAXUQ","title":"PMAXUD, PMAXUQs (Intel x86/64 assembly instruction)"},"pminsb-pminsw":{"cat_title":"PMINSB, PMINSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMINSB, PMINSW","title":"PMINSB, PMINSWs (Intel x86/64 assembly instruction)"},"pminsd-pminsq":{"cat_title":"PMINSD, PMINSQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMINSD, PMINSQ","title":"PMINSD, PMINSQs (Intel x86/64 assembly instruction)"},"pminub-pminuw":{"cat_title":"PMINUB, PMINUW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMINUB, PMINUW","title":"PMINUB, PMINUWs (Intel x86/64 assembly instruction)"},"pminud-pminuq":{"cat_title":"PMINUD, PMINUQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMINUD, PMINUQ","title":"PMINUD, PMINUQs (Intel x86/64 assembly instruction)"},"pmovmskb":{"cat_title":"PMOVMSKB","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMOVMSKB","title":"PMOVMSKB (Intel x86/64 assembly instruction)"},"pmovsx":{"cat_title":"PMOVSX","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMOVSX","title":"PMOVSX (Intel x86/64 assembly instruction)"},"pmovzx":{"cat_title":"PMOVZX","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMOVZX","title":"PMOVZX (Intel x86/64 assembly instruction)"},"pmuldq":{"cat_title":"PMULDQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMULDQ","title":"PMULDQ (Intel x86/64 assembly instruction)"},"pmulhrsw":{"cat_title":"PMULHRSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMULHRSW","title":"PMULHRSW (Intel x86/64 assembly instruction)"},"pmulhuw":{"cat_title":"PMULHUW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMULHUW","title":"PMULHUW (Intel x86/64 assembly instruction)"},"pmulhw":{"cat_title":"PMULHW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMULHW","title":"PMULHW (Intel x86/64 assembly instruction)"},"pmulld-pmullq":{"cat_title":"PMULLD, PMULLQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMULLD, PMULLQ","title":"PMULLD, PMULLQs (Intel x86/64 assembly instruction)"},"pmullw":{"cat_title":"PMULLW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMULLW","title":"PMULLW (Intel x86/64 assembly instruction)"},"pmuludq":{"cat_title":"PMULUDQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PMULUDQ","title":"PMULUDQ (Intel x86/64 assembly instruction)"},"pop":{"cat_title":"POP","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"POP","title":"POP (Intel x86/64 assembly instruction)"},"popa-popad":{"cat_title":"POPA, POPAD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"POPA, POPAD","title":"POPA, POPADs (Intel x86/64 assembly instruction)"},"popcnt":{"cat_title":"POPCNT","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"POPCNT","title":"POPCNT (Intel x86/64 assembly instruction)"},"popf-popfd-popfq":{"cat_title":"POPF, POPFD, POPFQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"POPF, POPFD, POPFQ","title":"POPF, POPFD, POPFQs (Intel x86/64 assembly instruction)"},"por":{"cat_title":"POR","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"POR","title":"POR (Intel x86/64 assembly instruction)"},"prefetchh":{"cat_title":"PREFETCHh","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PREFETCHh","title":"PREFETCHh (Intel x86/64 assembly instruction)"},"prefetchw":{"cat_title":"PREFETCHW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PREFETCHW","title":"PREFETCHW (Intel x86/64 assembly instruction)"},"prefetchwt1":{"cat_title":"PREFETCHWT1","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PREFETCHWT1","title":"PREFETCHWT1 (Intel x86/64 assembly instruction)"},"prold-prolvd-prolq-prolvq":{"cat_title":"PROLD, PROLVD, PROLQ, PROLVQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PROLD, PROLVD, PROLQ, PROLVQ","title":"PROLD, PROLVD, PROLQ, PROLVQs (Intel x86/64 assembly instruction)"},"prord-prorvd-prorq-prorvq":{"cat_title":"PRORD, PRORVD, PRORQ, PRORVQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PRORD, PRORVD, PRORQ, PRORVQ","title":"PRORD, PRORVD, PRORQ, PRORVQs (Intel x86/64 assembly instruction)"},"psadbw":{"cat_title":"PSADBW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSADBW","title":"PSADBW (Intel x86/64 assembly instruction)"},"pshufb":{"cat_title":"PSHUFB","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSHUFB","title":"PSHUFB (Intel x86/64 assembly instruction)"},"pshufd":{"cat_title":"PSHUFD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSHUFD","title":"PSHUFD (Intel x86/64 assembly instruction)"},"pshufhw":{"cat_title":"PSHUFHW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSHUFHW","title":"PSHUFHW (Intel x86/64 assembly instruction)"},"pshuflw":{"cat_title":"PSHUFLW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSHUFLW","title":"PSHUFLW (Intel x86/64 assembly instruction)"},"pshufw":{"cat_title":"PSHUFW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSHUFW","title":"PSHUFW (Intel x86/64 assembly instruction)"},"psignb-psignw-psignd":{"cat_title":"PSIGNB, PSIGNW, PSIGND","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSIGNB, PSIGNW, PSIGND","title":"PSIGNB, PSIGNW, PSIGNDs (Intel x86/64 assembly instruction)"},"pslldq":{"cat_title":"PSLLDQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSLLDQ","title":"PSLLDQ (Intel x86/64 assembly instruction)"},"psllw-pslld-psllq":{"cat_title":"PSLLW, PSLLD, PSLLQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSLLW, PSLLD, PSLLQ","title":"PSLLW, PSLLD, PSLLQs (Intel x86/64 assembly instruction)"},"psraw-psrad-psraq":{"cat_title":"PSRAW, PSRAD, PSRAQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSRAW, PSRAD, PSRAQ","title":"PSRAW, PSRAD, PSRAQs (Intel x86/64 assembly instruction)"},"psrldq":{"cat_title":"PSRLDQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSRLDQ","title":"PSRLDQ (Intel x86/64 assembly instruction)"},"psrlw-psrld-psrlq":{"cat_title":"PSRLW, PSRLD, PSRLQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSRLW, PSRLD, PSRLQ","title":"PSRLW, PSRLD, PSRLQs (Intel x86/64 assembly instruction)"},"psubb-psubw-psubd":{"cat_title":"PSUBB, PSUBW, PSUBD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSUBB, PSUBW, PSUBD","title":"PSUBB, PSUBW, PSUBDs (Intel x86/64 assembly instruction)"},"psubq":{"cat_title":"PSUBQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSUBQ","title":"PSUBQ (Intel x86/64 assembly instruction)"},"psubsb-psubsw":{"cat_title":"PSUBSB, PSUBSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSUBSB, PSUBSW","title":"PSUBSB, PSUBSWs (Intel x86/64 assembly instruction)"},"psubusb-psubusw":{"cat_title":"PSUBUSB, PSUBUSW","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PSUBUSB, PSUBUSW","title":"PSUBUSB, PSUBUSWs (Intel x86/64 assembly instruction)"},"punpckhbw-punpckhwd-punpckhdq-punpckhqdq":{"cat_title":"PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, PUNPCKHQDQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, PUNPCKHQDQ","title":"PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, PUNPCKHQDQs (Intel x86/64 assembly instruction)"},"punpcklbw-punpcklwd-punpckldq-punpcklqdq":{"cat_title":"PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ, PUNPCKLQDQ","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ, PUNPCKLQDQ","title":"PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ, PUNPCKLQDQs (Intel x86/64 assembly instruction)"},"push":{"cat_title":"PUSH","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PUSH","title":"PUSH (Intel x86/64 assembly instruction)"},"pusha-pushad":{"cat_title":"PUSHA, PUSHAD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PUSHA, PUSHAD","title":"PUSHA, PUSHADs (Intel x86/64 assembly instruction)"},"pushf-pushfd":{"cat_title":"PUSHF, PUSHFD","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PUSHF, PUSHFD","title":"PUSHF, PUSHFDs (Intel x86/64 assembly instruction)"},"pxor":{"cat_title":"PXOR","path":"/X86-64 명령어 레퍼런스/P","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"PXOR","title":"PXOR (Intel x86/64 assembly instruction)"},"rcl-rcr-rol-ror":{"cat_title":"RCL, RCR, ROL, ROR","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RCL, RCR, ROL, ROR","title":"RCL, RCR, ROL, RORs (Intel x86/64 assembly instruction)"},"rcpps":{"cat_title":"RCPPS","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RCPPS","title":"RCPPS (Intel x86/64 assembly instruction)"},"rcpss":{"cat_title":"RCPSS","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RCPSS","title":"RCPSS (Intel x86/64 assembly instruction)"},"rdfsbase-rdgsbase":{"cat_title":"RDFSBASE, RDGSBASE","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDFSBASE, RDGSBASE","title":"RDFSBASE, RDGSBASEs (Intel x86/64 assembly instruction)"},"rdmsr":{"cat_title":"RDMSR","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDMSR","title":"RDMSR (Intel x86/64 assembly instruction)"},"rdpid":{"cat_title":"RDPID","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDPID","title":"RDPID (Intel x86/64 assembly instruction)"},"rdpkru":{"cat_title":"RDPKRU","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDPKRU","title":"RDPKRU (Intel x86/64 assembly instruction)"},"rdpmc":{"cat_title":"RDPMC","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDPMC","title":"RDPMC (Intel x86/64 assembly instruction)"},"rdrand":{"cat_title":"RDRAND","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDRAND","title":"RDRAND (Intel x86/64 assembly instruction)"},"rdseed":{"cat_title":"RDSEED","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDSEED","title":"RDSEED (Intel x86/64 assembly instruction)"},"rdtsc":{"cat_title":"RDTSC","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDTSC","title":"RDTSC (Intel x86/64 assembly instruction)"},"rdtscp":{"cat_title":"RDTSCP","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RDTSCP","title":"RDTSCP (Intel x86/64 assembly instruction)"},"rep-repe-repz-repne-repnz":{"cat_title":"REP, REPE, REPZ, REPNE, REPNZ","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"REP, REPE, REPZ, REPNE, REPNZ","title":"REP, REPE, REPZ, REPNE, REPNZs (Intel x86/64 assembly instruction)"},"ret":{"cat_title":"RET","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RET","title":"RET (Intel x86/64 assembly instruction)"},"rorx":{"cat_title":"RORX","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RORX","title":"RORX (Intel x86/64 assembly instruction)"},"roundpd":{"cat_title":"ROUNDPD","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ROUNDPD","title":"ROUNDPD (Intel x86/64 assembly instruction)"},"roundps":{"cat_title":"ROUNDPS","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ROUNDPS","title":"ROUNDPS (Intel x86/64 assembly instruction)"},"roundsd":{"cat_title":"ROUNDSD","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ROUNDSD","title":"ROUNDSD (Intel x86/64 assembly instruction)"},"roundss":{"cat_title":"ROUNDSS","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"ROUNDSS","title":"ROUNDSS (Intel x86/64 assembly instruction)"},"rsm":{"cat_title":"RSM","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RSM","title":"RSM (Intel x86/64 assembly instruction)"},"rsqrtps":{"cat_title":"RSQRTPS","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RSQRTPS","title":"RSQRTPS (Intel x86/64 assembly instruction)"},"rsqrtss":{"cat_title":"RSQRTSS","path":"/X86-64 명령어 레퍼런스/R","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"RSQRTSS","title":"RSQRTSS (Intel x86/64 assembly instruction)"},"sahf":{"cat_title":"SAHF","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SAHF","title":"SAHF (Intel x86/64 assembly instruction)"},"sal-sar-shl-shr":{"cat_title":"SAL, SAR, SHL, SHR","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SAL, SAR, SHL, SHR","title":"SAL, SAR, SHL, SHRs (Intel x86/64 assembly instruction)"},"sarx-shlx-shrx":{"cat_title":"SARX, SHLX, SHRX","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SARX, SHLX, SHRX","title":"SARX, SHLX, SHRXs (Intel x86/64 assembly instruction)"},"sbb":{"cat_title":"SBB","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SBB","title":"SBB (Intel x86/64 assembly instruction)"},"scas-scasb-scasw-scasd":{"cat_title":"SCAS, SCASB, SCASW, SCASD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SCAS, SCASB, SCASW, SCASD","title":"SCAS, SCASB, SCASW, SCASDs (Intel x86/64 assembly instruction)"},"setcc":{"cat_title":"SETcc","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SETcc","title":"SETcc (Intel x86/64 assembly instruction)"},"sfence":{"cat_title":"SFENCE","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SFENCE","title":"SFENCE (Intel x86/64 assembly instruction)"},"sgdt":{"cat_title":"SGDT","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SGDT","title":"SGDT (Intel x86/64 assembly instruction)"},"sha1msg1":{"cat_title":"SHA1MSG1","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHA1MSG1","title":"SHA1MSG1 (Intel x86/64 assembly instruction)"},"sha1msg2":{"cat_title":"SHA1MSG2","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHA1MSG2","title":"SHA1MSG2 (Intel x86/64 assembly instruction)"},"sha1nexte":{"cat_title":"SHA1NEXTE","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHA1NEXTE","title":"SHA1NEXTE (Intel x86/64 assembly instruction)"},"sha1rnds4":{"cat_title":"SHA1RNDS4","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHA1RNDS4","title":"SHA1RNDS4 (Intel x86/64 assembly instruction)"},"sha256msg1":{"cat_title":"SHA256MSG1","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHA256MSG1","title":"SHA256MSG1 (Intel x86/64 assembly instruction)"},"sha256msg2":{"cat_title":"SHA256MSG2","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHA256MSG2","title":"SHA256MSG2 (Intel x86/64 assembly instruction)"},"sha256rnds2":{"cat_title":"SHA256RNDS2","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHA256RNDS2","title":"SHA256RNDS2 (Intel x86/64 assembly instruction)"},"shld":{"cat_title":"SHLD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHLD","title":"SHLD (Intel x86/64 assembly instruction)"},"shrd":{"cat_title":"SHRD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHRD","title":"SHRD (Intel x86/64 assembly instruction)"},"shufpd":{"cat_title":"SHUFPD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHUFPD","title":"SHUFPD (Intel x86/64 assembly instruction)"},"shufps":{"cat_title":"SHUFPS","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SHUFPS","title":"SHUFPS (Intel x86/64 assembly instruction)"},"sidt":{"cat_title":"SIDT","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SIDT","title":"SIDT (Intel x86/64 assembly instruction)"},"sldt":{"cat_title":"SLDT","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SLDT","title":"SLDT (Intel x86/64 assembly instruction)"},"smsw":{"cat_title":"SMSW","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SMSW","title":"SMSW (Intel x86/64 assembly instruction)"},"sqrtpd":{"cat_title":"SQRTPD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SQRTPD","title":"SQRTPD (Intel x86/64 assembly instruction)"},"sqrtps":{"cat_title":"SQRTPS","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SQRTPS","title":"SQRTPS (Intel x86/64 assembly instruction)"},"sqrtsd":{"cat_title":"SQRTSD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SQRTSD","title":"SQRTSD (Intel x86/64 assembly instruction)"},"sqrtss":{"cat_title":"SQRTSS","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SQRTSS","title":"SQRTSS (Intel x86/64 assembly instruction)"},"stac":{"cat_title":"STAC","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"STAC","title":"STAC (Intel x86/64 assembly instruction)"},"stc":{"cat_title":"STC","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"STC","title":"STC (Intel x86/64 assembly instruction)"},"std":{"cat_title":"STD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"STD","title":"STD (Intel x86/64 assembly instruction)"},"sti":{"cat_title":"STI","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"STI","title":"STI (Intel x86/64 assembly instruction)"},"stmxcsr":{"cat_title":"STMXCSR","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"STMXCSR","title":"STMXCSR (Intel x86/64 assembly instruction)"},"stos-stosb-stosw-stosd-stosq":{"cat_title":"STOS, STOSB, STOSW, STOSD, STOSQ","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"STOS, STOSB, STOSW, STOSD, STOSQ","title":"STOS, STOSB, STOSW, STOSD, STOSQs (Intel x86/64 assembly instruction)"},"str":{"cat_title":"STR","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"STR","title":"STR (Intel x86/64 assembly instruction)"},"sub":{"cat_title":"SUB","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SUB","title":"SUB (Intel x86/64 assembly instruction)"},"subpd":{"cat_title":"SUBPD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SUBPD","title":"SUBPD (Intel x86/64 assembly instruction)"},"subps":{"cat_title":"SUBPS","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SUBPS","title":"SUBPS (Intel x86/64 assembly instruction)"},"subsd":{"cat_title":"SUBSD","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SUBSD","title":"SUBSD (Intel x86/64 assembly instruction)"},"subss":{"cat_title":"SUBSS","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SUBSS","title":"SUBSS (Intel x86/64 assembly instruction)"},"swapgs":{"cat_title":"SWAPGS","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SWAPGS","title":"SWAPGS (Intel x86/64 assembly instruction)"},"syscall":{"cat_title":"SYSCALL","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SYSCALL","title":"SYSCALL (Intel x86/64 assembly instruction)"},"sysenter":{"cat_title":"SYSENTER","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SYSENTER","title":"SYSENTER (Intel x86/64 assembly instruction)"},"sysexit":{"cat_title":"SYSEXIT","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SYSEXIT","title":"SYSEXIT (Intel x86/64 assembly instruction)"},"sysret":{"cat_title":"SYSRET","path":"/X86-64 명령어 레퍼런스/S","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"SYSRET","title":"SYSRET (Intel x86/64 assembly instruction)"},"test":{"cat_title":"TEST","path":"/X86-64 명령어 레퍼런스/T","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"TEST","title":"TEST (Intel x86/64 assembly instruction)"},"tzcnt":{"cat_title":"TZCNT","path":"/X86-64 명령어 레퍼런스/T","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"TZCNT","title":"TZCNT (Intel x86/64 assembly instruction)"},"ucomisd":{"cat_title":"UCOMISD","path":"/X86-64 명령어 레퍼런스/U","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"UCOMISD","title":"UCOMISD (Intel x86/64 assembly instruction)"},"ucomiss":{"cat_title":"UCOMISS","path":"/X86-64 명령어 레퍼런스/U","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"UCOMISS","title":"UCOMISS (Intel x86/64 assembly instruction)"},"ud2":{"cat_title":"UD2","path":"/X86-64 명령어 레퍼런스/U","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"UD2","title":"UD2 (Intel x86/64 assembly instruction)"},"unpckhpd":{"cat_title":"UNPCKHPD","path":"/X86-64 명령어 레퍼런스/U","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"UNPCKHPD","title":"UNPCKHPD (Intel x86/64 assembly instruction)"},"unpckhps":{"cat_title":"UNPCKHPS","path":"/X86-64 명령어 레퍼런스/U","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"UNPCKHPS","title":"UNPCKHPS (Intel x86/64 assembly instruction)"},"unpcklpd":{"cat_title":"UNPCKLPD","path":"/X86-64 명령어 레퍼런스/U","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"UNPCKLPD","title":"UNPCKLPD (Intel x86/64 assembly instruction)"},"unpcklps":{"cat_title":"UNPCKLPS","path":"/X86-64 명령어 레퍼런스/U","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"UNPCKLPS","title":"UNPCKLPS (Intel x86/64 assembly instruction)"},"valignd-valignq":{"cat_title":"VALIGND, VALIGNQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VALIGND, VALIGNQ","title":"VALIGND, VALIGNQs (Intel x86/64 assembly instruction)"},"vblendmpd-vblendmps":{"cat_title":"VBLENDMPD, VBLENDMPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VBLENDMPD, VBLENDMPS","title":"VBLENDMPD, VBLENDMPSs (Intel x86/64 assembly instruction)"},"vbroadcast":{"cat_title":"VBROADCAST","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VBROADCAST","title":"VBROADCAST (Intel x86/64 assembly instruction)"},"vcompresspd":{"cat_title":"VCOMPRESSPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCOMPRESSPD","title":"VCOMPRESSPD (Intel x86/64 assembly instruction)"},"vcompressps":{"cat_title":"VCOMPRESSPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCOMPRESSPS","title":"VCOMPRESSPS (Intel x86/64 assembly instruction)"},"vcvtpd2qq":{"cat_title":"VCVTPD2QQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPD2QQ","title":"VCVTPD2QQ (Intel x86/64 assembly instruction)"},"vcvtpd2udq":{"cat_title":"VCVTPD2UDQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPD2UDQ","title":"VCVTPD2UDQ (Intel x86/64 assembly instruction)"},"vcvtpd2uqq":{"cat_title":"VCVTPD2UQQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPD2UQQ","title":"VCVTPD2UQQ (Intel x86/64 assembly instruction)"},"vcvtph2ps":{"cat_title":"VCVTPH2PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPH2PS","title":"VCVTPH2PS (Intel x86/64 assembly instruction)"},"vcvtps2ph":{"cat_title":"VCVTPS2PH","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPS2PH","title":"VCVTPS2PH (Intel x86/64 assembly instruction)"},"vcvtps2qq":{"cat_title":"VCVTPS2QQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPS2QQ","title":"VCVTPS2QQ (Intel x86/64 assembly instruction)"},"vcvtps2udq":{"cat_title":"VCVTPS2UDQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPS2UDQ","title":"VCVTPS2UDQ (Intel x86/64 assembly instruction)"},"vcvtps2uqq":{"cat_title":"VCVTPS2UQQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTPS2UQQ","title":"VCVTPS2UQQ (Intel x86/64 assembly instruction)"},"vcvtqq2pd":{"cat_title":"VCVTQQ2PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTQQ2PD","title":"VCVTQQ2PD (Intel x86/64 assembly instruction)"},"vcvtqq2ps":{"cat_title":"VCVTQQ2PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTQQ2PS","title":"VCVTQQ2PS (Intel x86/64 assembly instruction)"},"vcvtsd2usi":{"cat_title":"VCVTSD2USI","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTSD2USI","title":"VCVTSD2USI (Intel x86/64 assembly instruction)"},"vcvtss2usi":{"cat_title":"VCVTSS2USI","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTSS2USI","title":"VCVTSS2USI (Intel x86/64 assembly instruction)"},"vcvttpd2qq":{"cat_title":"VCVTTPD2QQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTPD2QQ","title":"VCVTTPD2QQ (Intel x86/64 assembly instruction)"},"vcvttpd2udq":{"cat_title":"VCVTTPD2UDQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTPD2UDQ","title":"VCVTTPD2UDQ (Intel x86/64 assembly instruction)"},"vcvttpd2uqq":{"cat_title":"VCVTTPD2UQQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTPD2UQQ","title":"VCVTTPD2UQQ (Intel x86/64 assembly instruction)"},"vcvttps2qq":{"cat_title":"VCVTTPS2QQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTPS2QQ","title":"VCVTTPS2QQ (Intel x86/64 assembly instruction)"},"vcvttps2udq":{"cat_title":"VCVTTPS2UDQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTPS2UDQ","title":"VCVTTPS2UDQ (Intel x86/64 assembly instruction)"},"vcvttps2uqq":{"cat_title":"VCVTTPS2UQQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTPS2UQQ","title":"VCVTTPS2UQQ (Intel x86/64 assembly instruction)"},"vcvttsd2usi":{"cat_title":"VCVTTSD2USI","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTSD2USI","title":"VCVTTSD2USI (Intel x86/64 assembly instruction)"},"vcvttss2usi":{"cat_title":"VCVTTSS2USI","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTTSS2USI","title":"VCVTTSS2USI (Intel x86/64 assembly instruction)"},"vcvtudq2pd":{"cat_title":"VCVTUDQ2PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTUDQ2PD","title":"VCVTUDQ2PD (Intel x86/64 assembly instruction)"},"vcvtudq2ps":{"cat_title":"VCVTUDQ2PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTUDQ2PS","title":"VCVTUDQ2PS (Intel x86/64 assembly instruction)"},"vcvtuqq2pd":{"cat_title":"VCVTUQQ2PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTUQQ2PD","title":"VCVTUQQ2PD (Intel x86/64 assembly instruction)"},"vcvtuqq2ps":{"cat_title":"VCVTUQQ2PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTUQQ2PS","title":"VCVTUQQ2PS (Intel x86/64 assembly instruction)"},"vcvtusi2sd":{"cat_title":"VCVTUSI2SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTUSI2SD","title":"VCVTUSI2SD (Intel x86/64 assembly instruction)"},"vcvtusi2ss":{"cat_title":"VCVTUSI2SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VCVTUSI2SS","title":"VCVTUSI2SS (Intel x86/64 assembly instruction)"},"vdbpsadbw":{"cat_title":"VDBPSADBW","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VDBPSADBW","title":"VDBPSADBW (Intel x86/64 assembly instruction)"},"verr-verw":{"cat_title":"VERR, VERW","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VERR, VERW","title":"VERR, VERWs (Intel x86/64 assembly instruction)"},"vexp2pd":{"cat_title":"VEXP2PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VEXP2PD","title":"VEXP2PD (Intel x86/64 assembly instruction)"},"vexp2ps":{"cat_title":"VEXP2PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VEXP2PS","title":"VEXP2PS (Intel x86/64 assembly instruction)"},"vexpandpd":{"cat_title":"VEXPANDPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VEXPANDPD","title":"VEXPANDPD (Intel x86/64 assembly instruction)"},"vexpandps":{"cat_title":"VEXPANDPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VEXPANDPS","title":"VEXPANDPS (Intel x86/64 assembly instruction)"},"vextractf128-vextractf32x4-vextractf64x2-vextractf32x8-vextractf64x4":{"cat_title":"VEXTRACTF128, VEXTRACTF32x4, VEXTRACTF64x2, VEXTRACTF32x8, VEXTRACTF64x4","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VEXTRACTF128, VEXTRACTF32x4, VEXTRACTF64x2, VEXTRACTF32x8, VEXTRACTF64x4","title":"VEXTRACTF128, VEXTRACTF32x4, VEXTRACTF64x2, VEXTRACTF32x8, VEXTRACTF64x4s (Intel x86/64 assembly instruction)"},"vextracti128-vextracti32x4-vextracti64x2-vextracti32x8-vextracti64x4":{"cat_title":"VEXTRACTI128, VEXTRACTI32x4, VEXTRACTI64x2, VEXTRACTI32x8, VEXTRACTI64x4","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VEXTRACTI128, VEXTRACTI32x4, VEXTRACTI64x2, VEXTRACTI32x8, VEXTRACTI64x4","title":"VEXTRACTI128, VEXTRACTI32x4, VEXTRACTI64x2, VEXTRACTI32x8, VEXTRACTI64x4s (Intel x86/64 assembly instruction)"},"vfixupimmpd":{"cat_title":"VFIXUPIMMPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFIXUPIMMPD","title":"VFIXUPIMMPD (Intel x86/64 assembly instruction)"},"vfixupimmps":{"cat_title":"VFIXUPIMMPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFIXUPIMMPS","title":"VFIXUPIMMPS (Intel x86/64 assembly instruction)"},"vfixupimmsd":{"cat_title":"VFIXUPIMMSD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFIXUPIMMSD","title":"VFIXUPIMMSD (Intel x86/64 assembly instruction)"},"vfixupimmss":{"cat_title":"VFIXUPIMMSS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFIXUPIMMSS","title":"VFIXUPIMMSS (Intel x86/64 assembly instruction)"},"vfmadd132pd-vfmadd213pd-vfmadd231pd":{"cat_title":"VFMADD132PD, VFMADD213PD, VFMADD231PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMADD132PD, VFMADD213PD, VFMADD231PD","title":"VFMADD132PD, VFMADD213PD, VFMADD231PDs (Intel x86/64 assembly instruction)"},"vfmadd132ps-vfmadd213ps-vfmadd231ps":{"cat_title":"VFMADD132PS, VFMADD213PS, VFMADD231PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMADD132PS, VFMADD213PS, VFMADD231PS","title":"VFMADD132PS, VFMADD213PS, VFMADD231PSs (Intel x86/64 assembly instruction)"},"vfmadd132sd-vfmadd213sd-vfmadd231sd":{"cat_title":"VFMADD132SD, VFMADD213SD, VFMADD231SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMADD132SD, VFMADD213SD, VFMADD231SD","title":"VFMADD132SD, VFMADD213SD, VFMADD231SDs (Intel x86/64 assembly instruction)"},"vfmadd132ss-vfmadd213ss-vfmadd231ss":{"cat_title":"VFMADD132SS, VFMADD213SS, VFMADD231SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMADD132SS, VFMADD213SS, VFMADD231SS","title":"VFMADD132SS, VFMADD213SS, VFMADD231SSs (Intel x86/64 assembly instruction)"},"vfmaddsub132pd-vfmaddsub213pd-vfmaddsub231pd":{"cat_title":"VFMADDSUB132PD, VFMADDSUB213PD, VFMADDSUB231PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMADDSUB132PD, VFMADDSUB213PD, VFMADDSUB231PD","title":"VFMADDSUB132PD, VFMADDSUB213PD, VFMADDSUB231PDs (Intel x86/64 assembly instruction)"},"vfmaddsub132ps-vfmaddsub213ps-vfmaddsub231ps":{"cat_title":"VFMADDSUB132PS, VFMADDSUB213PS, VFMADDSUB231PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMADDSUB132PS, VFMADDSUB213PS, VFMADDSUB231PS","title":"VFMADDSUB132PS, VFMADDSUB213PS, VFMADDSUB231PSs (Intel x86/64 assembly instruction)"},"vfmsub132pd-vfmsub213pd-vfmsub231pd":{"cat_title":"VFMSUB132PD, VFMSUB213PD, VFMSUB231PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMSUB132PD, VFMSUB213PD, VFMSUB231PD","title":"VFMSUB132PD, VFMSUB213PD, VFMSUB231PDs (Intel x86/64 assembly instruction)"},"vfmsub132ps-vfmsub213ps-vfmsub231ps":{"cat_title":"VFMSUB132PS, VFMSUB213PS, VFMSUB231PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMSUB132PS, VFMSUB213PS, VFMSUB231PS","title":"VFMSUB132PS, VFMSUB213PS, VFMSUB231PSs (Intel x86/64 assembly instruction)"},"vfmsub132sd-vfmsub213sd-vfmsub231sd":{"cat_title":"VFMSUB132SD, VFMSUB213SD, VFMSUB231SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMSUB132SD, VFMSUB213SD, VFMSUB231SD","title":"VFMSUB132SD, VFMSUB213SD, VFMSUB231SDs (Intel x86/64 assembly instruction)"},"vfmsub132ss-vfmsub213ss-vfmsub231ss":{"cat_title":"VFMSUB132SS, VFMSUB213SS, VFMSUB231SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMSUB132SS, VFMSUB213SS, VFMSUB231SS","title":"VFMSUB132SS, VFMSUB213SS, VFMSUB231SSs (Intel x86/64 assembly instruction)"},"vfmsubadd132pd-vfmsubadd213pd-vfmsubadd231pd":{"cat_title":"VFMSUBADD132PD, VFMSUBADD213PD, VFMSUBADD231PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMSUBADD132PD, VFMSUBADD213PD, VFMSUBADD231PD","title":"VFMSUBADD132PD, VFMSUBADD213PD, VFMSUBADD231PDs (Intel x86/64 assembly instruction)"},"vfmsubadd132ps-vfmsubadd213ps-vfmsubadd231ps":{"cat_title":"VFMSUBADD132PS, VFMSUBADD213PS, VFMSUBADD231PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFMSUBADD132PS, VFMSUBADD213PS, VFMSUBADD231PS","title":"VFMSUBADD132PS, VFMSUBADD213PS, VFMSUBADD231PSs (Intel x86/64 assembly instruction)"},"vfnmadd132pd-vfnmadd213pd-vfnmadd231pd":{"cat_title":"VFNMADD132PD, VFNMADD213PD, VFNMADD231PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMADD132PD, VFNMADD213PD, VFNMADD231PD","title":"VFNMADD132PD, VFNMADD213PD, VFNMADD231PDs (Intel x86/64 assembly instruction)"},"vfnmadd132ps-vfnmadd213ps-vfnmadd231ps":{"cat_title":"VFNMADD132PS, VFNMADD213PS, VFNMADD231PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMADD132PS, VFNMADD213PS, VFNMADD231PS","title":"VFNMADD132PS, VFNMADD213PS, VFNMADD231PSs (Intel x86/64 assembly instruction)"},"vfnmadd132sd-vfnmadd213sd-vfnmadd231sd":{"cat_title":"VFNMADD132SD, VFNMADD213SD, VFNMADD231SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMADD132SD, VFNMADD213SD, VFNMADD231SD","title":"VFNMADD132SD, VFNMADD213SD, VFNMADD231SDs (Intel x86/64 assembly instruction)"},"vfnmadd132ss-vfnmadd213ss-vfnmadd231ss":{"cat_title":"VFNMADD132SS, VFNMADD213SS, VFNMADD231SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMADD132SS, VFNMADD213SS, VFNMADD231SS","title":"VFNMADD132SS, VFNMADD213SS, VFNMADD231SSs (Intel x86/64 assembly instruction)"},"vfnmsub132pd-vfnmsub213pd-vfnmsub231pd":{"cat_title":"VFNMSUB132PD, VFNMSUB213PD, VFNMSUB231PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMSUB132PD, VFNMSUB213PD, VFNMSUB231PD","title":"VFNMSUB132PD, VFNMSUB213PD, VFNMSUB231PDs (Intel x86/64 assembly instruction)"},"vfnmsub132ps-vfnmsub213ps-vfnmsub231ps":{"cat_title":"VFNMSUB132PS, VFNMSUB213PS, VFNMSUB231PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMSUB132PS, VFNMSUB213PS, VFNMSUB231PS","title":"VFNMSUB132PS, VFNMSUB213PS, VFNMSUB231PSs (Intel x86/64 assembly instruction)"},"vfnmsub132sd-vfnmsub213sd-vfnmsub231sd":{"cat_title":"VFNMSUB132SD, VFNMSUB213SD, VFNMSUB231SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMSUB132SD, VFNMSUB213SD, VFNMSUB231SD","title":"VFNMSUB132SD, VFNMSUB213SD, VFNMSUB231SDs (Intel x86/64 assembly instruction)"},"vfnmsub132ss-vfnmsub213ss-vfnmsub231ss":{"cat_title":"VFNMSUB132SS, VFNMSUB213SS, VFNMSUB231SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFNMSUB132SS, VFNMSUB213SS, VFNMSUB231SS","title":"VFNMSUB132SS, VFNMSUB213SS, VFNMSUB231SSs (Intel x86/64 assembly instruction)"},"vfpclasspd":{"cat_title":"VFPCLASSPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFPCLASSPD","title":"VFPCLASSPD (Intel x86/64 assembly instruction)"},"vfpclassps":{"cat_title":"VFPCLASSPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFPCLASSPS","title":"VFPCLASSPS (Intel x86/64 assembly instruction)"},"vfpclasssd":{"cat_title":"VFPCLASSSD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFPCLASSSD","title":"VFPCLASSSD (Intel x86/64 assembly instruction)"},"vfpclassss":{"cat_title":"VFPCLASSSS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VFPCLASSSS","title":"VFPCLASSSS (Intel x86/64 assembly instruction)"},"vgatherdpd-vgatherqpd":{"cat_title":"VGATHERDPD, VGATHERQPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGATHERDPD, VGATHERQPD","title":"VGATHERDPD, VGATHERQPDs (Intel x86/64 assembly instruction)"},"vgatherdps-vgatherdpd":{"cat_title":"VGATHERDPS, VGATHERDPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGATHERDPS, VGATHERDPD","title":"VGATHERDPS, VGATHERDPDs (Intel x86/64 assembly instruction)"},"vgatherdps-vgatherqps":{"cat_title":"VGATHERDPS, VGATHERQPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGATHERDPS, VGATHERQPS","title":"VGATHERDPS, VGATHERQPSs (Intel x86/64 assembly instruction)"},"vgatherpf0dps-vgatherpf0qps-vgatherpf0dpd-vgatherpf0qpd":{"cat_title":"VGATHERPF0DPS, VGATHERPF0QPS, VGATHERPF0DPD, VGATHERPF0QPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGATHERPF0DPS, VGATHERPF0QPS, VGATHERPF0DPD, VGATHERPF0QPD","title":"VGATHERPF0DPS, VGATHERPF0QPS, VGATHERPF0DPD, VGATHERPF0QPDs (Intel x86/64 assembly instruction)"},"vgatherpf1dps-vgatherpf1qps-vgatherpf1dpd-vgatherpf1qpd":{"cat_title":"VGATHERPF1DPS, VGATHERPF1QPS, VGATHERPF1DPD, VGATHERPF1QPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGATHERPF1DPS, VGATHERPF1QPS, VGATHERPF1DPD, VGATHERPF1QPD","title":"VGATHERPF1DPS, VGATHERPF1QPS, VGATHERPF1DPD, VGATHERPF1QPDs (Intel x86/64 assembly instruction)"},"vgatherqps-vgatherqpd":{"cat_title":"VGATHERQPS, VGATHERQPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGATHERQPS, VGATHERQPD","title":"VGATHERQPS, VGATHERQPDs (Intel x86/64 assembly instruction)"},"vgetexppd":{"cat_title":"VGETEXPPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETEXPPD","title":"VGETEXPPD (Intel x86/64 assembly instruction)"},"vgetexpps":{"cat_title":"VGETEXPPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETEXPPS","title":"VGETEXPPS (Intel x86/64 assembly instruction)"},"vgetexpsd":{"cat_title":"VGETEXPSD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETEXPSD","title":"VGETEXPSD (Intel x86/64 assembly instruction)"},"vgetexpss":{"cat_title":"VGETEXPSS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETEXPSS","title":"VGETEXPSS (Intel x86/64 assembly instruction)"},"vgetmantpd":{"cat_title":"VGETMANTPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETMANTPD","title":"VGETMANTPD (Intel x86/64 assembly instruction)"},"vgetmantps":{"cat_title":"VGETMANTPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETMANTPS","title":"VGETMANTPS (Intel x86/64 assembly instruction)"},"vgetmantsd":{"cat_title":"VGETMANTSD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETMANTSD","title":"VGETMANTSD (Intel x86/64 assembly instruction)"},"vgetmantss":{"cat_title":"VGETMANTSS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VGETMANTSS","title":"VGETMANTSS (Intel x86/64 assembly instruction)"},"vinsertf128-vinsertf32x4-vinsertf64x2-vinsertf32x8-vinsertf64x4":{"cat_title":"VINSERTF128, VINSERTF32x4, VINSERTF64x2, VINSERTF32x8, VINSERTF64x4","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VINSERTF128, VINSERTF32x4, VINSERTF64x2, VINSERTF32x8, VINSERTF64x4","title":"VINSERTF128, VINSERTF32x4, VINSERTF64x2, VINSERTF32x8, VINSERTF64x4s (Intel x86/64 assembly instruction)"},"vinserti128-vinserti32x4-vinserti64x2-vinserti32x8-vinserti64x4":{"cat_title":"VINSERTI128, VINSERTI32x4, VINSERTI64x2, VINSERTI32x8, VINSERTI64x4","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VINSERTI128, VINSERTI32x4, VINSERTI64x2, VINSERTI32x8, VINSERTI64x4","title":"VINSERTI128, VINSERTI32x4, VINSERTI64x2, VINSERTI32x8, VINSERTI64x4s (Intel x86/64 assembly instruction)"},"vmaskmov":{"cat_title":"VMASKMOV","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VMASKMOV","title":"VMASKMOV (Intel x86/64 assembly instruction)"},"vpblendd":{"cat_title":"VPBLENDD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPBLENDD","title":"VPBLENDD (Intel x86/64 assembly instruction)"},"vpblendmb-vpblendmw":{"cat_title":"VPBLENDMB, VPBLENDMW","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPBLENDMB, VPBLENDMW","title":"VPBLENDMB, VPBLENDMWs (Intel x86/64 assembly instruction)"},"vpblendmd-vpblendmq":{"cat_title":"VPBLENDMD, VPBLENDMQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPBLENDMD, VPBLENDMQ","title":"VPBLENDMD, VPBLENDMQs (Intel x86/64 assembly instruction)"},"vpbroadcast":{"cat_title":"VPBROADCAST","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPBROADCAST","title":"VPBROADCAST (Intel x86/64 assembly instruction)"},"vpbroadcastb-vpbroadcastw-vpbroadcastd-vpbroadcastq":{"cat_title":"VPBROADCASTB, VPBROADCASTW, VPBROADCASTD, VPBROADCASTQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPBROADCASTB, VPBROADCASTW, VPBROADCASTD, VPBROADCASTQ","title":"VPBROADCASTB, VPBROADCASTW, VPBROADCASTD, VPBROADCASTQs (Intel x86/64 assembly instruction)"},"vpbroadcastm":{"cat_title":"VPBROADCASTM","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPBROADCASTM","title":"VPBROADCASTM (Intel x86/64 assembly instruction)"},"vpcmpb-vpcmpub":{"cat_title":"VPCMPB, VPCMPUB","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPCMPB, VPCMPUB","title":"VPCMPB, VPCMPUBs (Intel x86/64 assembly instruction)"},"vpcmpd-vpcmpud":{"cat_title":"VPCMPD, VPCMPUD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPCMPD, VPCMPUD","title":"VPCMPD, VPCMPUDs (Intel x86/64 assembly instruction)"},"vpcmpq-vpcmpuq":{"cat_title":"VPCMPQ, VPCMPUQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPCMPQ, VPCMPUQ","title":"VPCMPQ, VPCMPUQs (Intel x86/64 assembly instruction)"},"vpcmpw-vpcmpuw":{"cat_title":"VPCMPW, VPCMPUW","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPCMPW, VPCMPUW","title":"VPCMPW, VPCMPUWs (Intel x86/64 assembly instruction)"},"vpcompressd":{"cat_title":"VPCOMPRESSD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPCOMPRESSD","title":"VPCOMPRESSD (Intel x86/64 assembly instruction)"},"vpcompressq":{"cat_title":"VPCOMPRESSQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPCOMPRESSQ","title":"VPCOMPRESSQ (Intel x86/64 assembly instruction)"},"vpconflictd-vpconflictq":{"cat_title":"VPCONFLICTD, VPCONFLICTQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPCONFLICTD, VPCONFLICTQ","title":"VPCONFLICTD, VPCONFLICTQs (Intel x86/64 assembly instruction)"},"vperm2f128":{"cat_title":"VPERM2F128","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERM2F128","title":"VPERM2F128 (Intel x86/64 assembly instruction)"},"vperm2i128":{"cat_title":"VPERM2I128","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERM2I128","title":"VPERM2I128 (Intel x86/64 assembly instruction)"},"vpermd-vpermw":{"cat_title":"VPERMD, VPERMW","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERMD, VPERMW","title":"VPERMD, VPERMWs (Intel x86/64 assembly instruction)"},"vpermi2w-vpermi2d-vpermi2q-vpermi2ps-vpermi2pd":{"cat_title":"VPERMI2W, VPERMI2D, VPERMI2Q, VPERMI2PS, VPERMI2PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERMI2W, VPERMI2D, VPERMI2Q, VPERMI2PS, VPERMI2PD","title":"VPERMI2W, VPERMI2D, VPERMI2Q, VPERMI2PS, VPERMI2PDs (Intel x86/64 assembly instruction)"},"vpermilpd":{"cat_title":"VPERMILPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERMILPD","title":"VPERMILPD (Intel x86/64 assembly instruction)"},"vpermilps":{"cat_title":"VPERMILPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERMILPS","title":"VPERMILPS (Intel x86/64 assembly instruction)"},"vpermpd":{"cat_title":"VPERMPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERMPD","title":"VPERMPD (Intel x86/64 assembly instruction)"},"vpermps":{"cat_title":"VPERMPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERMPS","title":"VPERMPS (Intel x86/64 assembly instruction)"},"vpermq":{"cat_title":"VPERMQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPERMQ","title":"VPERMQ (Intel x86/64 assembly instruction)"},"vpexpandd":{"cat_title":"VPEXPANDD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPEXPANDD","title":"VPEXPANDD (Intel x86/64 assembly instruction)"},"vpexpandq":{"cat_title":"VPEXPANDQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPEXPANDQ","title":"VPEXPANDQ (Intel x86/64 assembly instruction)"},"vpgatherdd-vpgatherdq":{"cat_title":"VPGATHERDD, VPGATHERDQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPGATHERDD, VPGATHERDQ","title":"VPGATHERDD, VPGATHERDQs (Intel x86/64 assembly instruction)"},"vpgatherdd-vpgatherqd":{"cat_title":"VPGATHERDD, VPGATHERQD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPGATHERDD, VPGATHERQD","title":"VPGATHERDD, VPGATHERQDs (Intel x86/64 assembly instruction)"},"vpgatherdq-vpgatherqq":{"cat_title":"VPGATHERDQ, VPGATHERQQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPGATHERDQ, VPGATHERQQ","title":"VPGATHERDQ, VPGATHERQQs (Intel x86/64 assembly instruction)"},"vpgatherqd-vpgatherqq":{"cat_title":"VPGATHERQD, VPGATHERQQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPGATHERQD, VPGATHERQQ","title":"VPGATHERQD, VPGATHERQQs (Intel x86/64 assembly instruction)"},"vplzcntd-vplzcntq":{"cat_title":"VPLZCNTD, VPLZCNTQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPLZCNTD, VPLZCNTQ","title":"VPLZCNTD, VPLZCNTQs (Intel x86/64 assembly instruction)"},"vpmaskmov":{"cat_title":"VPMASKMOV","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMASKMOV","title":"VPMASKMOV (Intel x86/64 assembly instruction)"},"vpmovb2m-vpmovw2m-vpmovd2m-vpmovq2m":{"cat_title":"VPMOVB2M, VPMOVW2M, VPMOVD2M, VPMOVQ2M","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVB2M, VPMOVW2M, VPMOVD2M, VPMOVQ2M","title":"VPMOVB2M, VPMOVW2M, VPMOVD2M, VPMOVQ2Ms (Intel x86/64 assembly instruction)"},"vpmovdb-vpmovsdb-vpmovusdb":{"cat_title":"VPMOVDB, VPMOVSDB, VPMOVUSDB","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVDB, VPMOVSDB, VPMOVUSDB","title":"VPMOVDB, VPMOVSDB, VPMOVUSDBs (Intel x86/64 assembly instruction)"},"vpmovdw-vpmovsdw-vpmovusdw":{"cat_title":"VPMOVDW, VPMOVSDW, VPMOVUSDW","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVDW, VPMOVSDW, VPMOVUSDW","title":"VPMOVDW, VPMOVSDW, VPMOVUSDWs (Intel x86/64 assembly instruction)"},"vpmovm2b-vpmovm2w-vpmovm2d-vpmovm2q":{"cat_title":"VPMOVM2B, VPMOVM2W, VPMOVM2D, VPMOVM2Q","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVM2B, VPMOVM2W, VPMOVM2D, VPMOVM2Q","title":"VPMOVM2B, VPMOVM2W, VPMOVM2D, VPMOVM2Qs (Intel x86/64 assembly instruction)"},"vpmovqb-vpmovsqb-vpmovusqb":{"cat_title":"VPMOVQB, VPMOVSQB, VPMOVUSQB","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVQB, VPMOVSQB, VPMOVUSQB","title":"VPMOVQB, VPMOVSQB, VPMOVUSQBs (Intel x86/64 assembly instruction)"},"vpmovqd-vpmovsqd-vpmovusqd":{"cat_title":"VPMOVQD, VPMOVSQD, VPMOVUSQD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVQD, VPMOVSQD, VPMOVUSQD","title":"VPMOVQD, VPMOVSQD, VPMOVUSQDs (Intel x86/64 assembly instruction)"},"vpmovqw-vpmovsqw-vpmovusqw":{"cat_title":"VPMOVQW, VPMOVSQW, VPMOVUSQW","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVQW, VPMOVSQW, VPMOVUSQW","title":"VPMOVQW, VPMOVSQW, VPMOVUSQWs (Intel x86/64 assembly instruction)"},"vpmovwb-vpmovswb-vpmovuswb":{"cat_title":"VPMOVWB, VPMOVSWB, VPMOVUSWB","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPMOVWB, VPMOVSWB, VPMOVUSWB","title":"VPMOVWB, VPMOVSWB, VPMOVUSWBs (Intel x86/64 assembly instruction)"},"vpscatterdd-vpscatterdq-vpscatterqd-vpscatterqq":{"cat_title":"VPSCATTERDD, VPSCATTERDQ, VPSCATTERQD, VPSCATTERQQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPSCATTERDD, VPSCATTERDQ, VPSCATTERQD, VPSCATTERQQ","title":"VPSCATTERDD, VPSCATTERDQ, VPSCATTERQD, VPSCATTERQQs (Intel x86/64 assembly instruction)"},"vpsllvw-vpsllvd-vpsllvq":{"cat_title":"VPSLLVW, VPSLLVD, VPSLLVQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPSLLVW, VPSLLVD, VPSLLVQ","title":"VPSLLVW, VPSLLVD, VPSLLVQs (Intel x86/64 assembly instruction)"},"vpsravw-vpsravd-vpsravq":{"cat_title":"VPSRAVW, VPSRAVD, VPSRAVQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPSRAVW, VPSRAVD, VPSRAVQ","title":"VPSRAVW, VPSRAVD, VPSRAVQs (Intel x86/64 assembly instruction)"},"vpsrlvw-vpsrlvd-vpsrlvq":{"cat_title":"VPSRLVW, VPSRLVD, VPSRLVQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPSRLVW, VPSRLVD, VPSRLVQ","title":"VPSRLVW, VPSRLVD, VPSRLVQs (Intel x86/64 assembly instruction)"},"vpternlogd-vpternlogq":{"cat_title":"VPTERNLOGD, VPTERNLOGQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPTERNLOGD, VPTERNLOGQ","title":"VPTERNLOGD, VPTERNLOGQs (Intel x86/64 assembly instruction)"},"vptestmb-vptestmw-vptestmd-vptestmq":{"cat_title":"VPTESTMB, VPTESTMW, VPTESTMD, VPTESTMQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPTESTMB, VPTESTMW, VPTESTMD, VPTESTMQ","title":"VPTESTMB, VPTESTMW, VPTESTMD, VPTESTMQs (Intel x86/64 assembly instruction)"},"vptestnmb-vptestnmw-vptestnmd-vptestnmq":{"cat_title":"VPTESTNMB, VPTESTNMW, VPTESTNMD, VPTESTNMQ","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VPTESTNMB, VPTESTNMW, VPTESTNMD, VPTESTNMQ","title":"VPTESTNMB, VPTESTNMW, VPTESTNMD, VPTESTNMQs (Intel x86/64 assembly instruction)"},"vrangepd":{"cat_title":"VRANGEPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRANGEPD","title":"VRANGEPD (Intel x86/64 assembly instruction)"},"vrangesd":{"cat_title":"VRANGESD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRANGESD","title":"VRANGESD (Intel x86/64 assembly instruction)"},"vrangess":{"cat_title":"VRANGESS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRANGESS","title":"VRANGESS (Intel x86/64 assembly instruction)"},"vrcp14pd":{"cat_title":"VRCP14PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP14PD","title":"VRCP14PD (Intel x86/64 assembly instruction)"},"vrcp14ps":{"cat_title":"VRCP14PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP14PS","title":"VRCP14PS (Intel x86/64 assembly instruction)"},"vrcp14sd":{"cat_title":"VRCP14SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP14SD","title":"VRCP14SD (Intel x86/64 assembly instruction)"},"vrcp14ss":{"cat_title":"VRCP14SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP14SS","title":"VRCP14SS (Intel x86/64 assembly instruction)"},"vrcp28pd":{"cat_title":"VRCP28PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP28PD","title":"VRCP28PD (Intel x86/64 assembly instruction)"},"vrcp28ps":{"cat_title":"VRCP28PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP28PS","title":"VRCP28PS (Intel x86/64 assembly instruction)"},"vrcp28sd":{"cat_title":"VRCP28SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP28SD","title":"VRCP28SD (Intel x86/64 assembly instruction)"},"vrcp28ss":{"cat_title":"VRCP28SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRCP28SS","title":"VRCP28SS (Intel x86/64 assembly instruction)"},"vreducepd":{"cat_title":"VREDUCEPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VREDUCEPD","title":"VREDUCEPD (Intel x86/64 assembly instruction)"},"vreduceps":{"cat_title":"VREDUCEPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VREDUCEPS","title":"VREDUCEPS (Intel x86/64 assembly instruction)"},"vreducess":{"cat_title":"VREDUCESS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VREDUCESS","title":"VREDUCESS (Intel x86/64 assembly instruction)"},"vrndscalepd":{"cat_title":"VRNDSCALEPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRNDSCALEPD","title":"VRNDSCALEPD (Intel x86/64 assembly instruction)"},"vrndscaleps":{"cat_title":"VRNDSCALEPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRNDSCALEPS","title":"VRNDSCALEPS (Intel x86/64 assembly instruction)"},"vrndscalesd":{"cat_title":"VRNDSCALESD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRNDSCALESD","title":"VRNDSCALESD (Intel x86/64 assembly instruction)"},"vrndscaless":{"cat_title":"VRNDSCALESS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRNDSCALESS","title":"VRNDSCALESS (Intel x86/64 assembly instruction)"},"vrsqrt14pd":{"cat_title":"VRSQRT14PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT14PD","title":"VRSQRT14PD (Intel x86/64 assembly instruction)"},"vrsqrt14ps":{"cat_title":"VRSQRT14PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT14PS","title":"VRSQRT14PS (Intel x86/64 assembly instruction)"},"vrsqrt14sd":{"cat_title":"VRSQRT14SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT14SD","title":"VRSQRT14SD (Intel x86/64 assembly instruction)"},"vrsqrt14ss":{"cat_title":"VRSQRT14SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT14SS","title":"VRSQRT14SS (Intel x86/64 assembly instruction)"},"vrsqrt28pd":{"cat_title":"VRSQRT28PD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT28PD","title":"VRSQRT28PD (Intel x86/64 assembly instruction)"},"vrsqrt28ps":{"cat_title":"VRSQRT28PS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT28PS","title":"VRSQRT28PS (Intel x86/64 assembly instruction)"},"vrsqrt28sd":{"cat_title":"VRSQRT28SD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT28SD","title":"VRSQRT28SD (Intel x86/64 assembly instruction)"},"vrsqrt28ss":{"cat_title":"VRSQRT28SS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VRSQRT28SS","title":"VRSQRT28SS (Intel x86/64 assembly instruction)"},"vscalefpd":{"cat_title":"VSCALEFPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSCALEFPD","title":"VSCALEFPD (Intel x86/64 assembly instruction)"},"vscalefps":{"cat_title":"VSCALEFPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSCALEFPS","title":"VSCALEFPS (Intel x86/64 assembly instruction)"},"vscalefsd":{"cat_title":"VSCALEFSD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSCALEFSD","title":"VSCALEFSD (Intel x86/64 assembly instruction)"},"vscalefss":{"cat_title":"VSCALEFSS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSCALEFSS","title":"VSCALEFSS (Intel x86/64 assembly instruction)"},"vscatterdps-vscatterdpd-vscatterqps-vscatterqpd":{"cat_title":"VSCATTERDPS, VSCATTERDPD, VSCATTERQPS, VSCATTERQPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSCATTERDPS, VSCATTERDPD, VSCATTERQPS, VSCATTERQPD","title":"VSCATTERDPS, VSCATTERDPD, VSCATTERQPS, VSCATTERQPDs (Intel x86/64 assembly instruction)"},"vscatterpf0dps-vscatterpf0qps-vscatterpf0dpd-vscatterpf0qpd":{"cat_title":"VSCATTERPF0DPS, VSCATTERPF0QPS, VSCATTERPF0DPD, VSCATTERPF0QPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSCATTERPF0DPS, VSCATTERPF0QPS, VSCATTERPF0DPD, VSCATTERPF0QPD","title":"VSCATTERPF0DPS, VSCATTERPF0QPS, VSCATTERPF0DPD, VSCATTERPF0QPDs (Intel x86/64 assembly instruction)"},"vscatterpf1dps-vscatterpf1qps-vscatterpf1dpd-vscatterpf1qpd":{"cat_title":"VSCATTERPF1DPS, VSCATTERPF1QPS, VSCATTERPF1DPD, VSCATTERPF1QPD","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSCATTERPF1DPS, VSCATTERPF1QPS, VSCATTERPF1DPD, VSCATTERPF1QPD","title":"VSCATTERPF1DPS, VSCATTERPF1QPS, VSCATTERPF1DPD, VSCATTERPF1QPDs (Intel x86/64 assembly instruction)"},"vshuff32x4-vshuff64x2-vshufi32x4-vshufi64x2":{"cat_title":"VSHUFF32x4, VSHUFF64x2, VSHUFI32x4, VSHUFI64x2","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VSHUFF32x4, VSHUFF64x2, VSHUFI32x4, VSHUFI64x2","title":"VSHUFF32x4, VSHUFF64x2, VSHUFI32x4, VSHUFI64x2s (Intel x86/64 assembly instruction)"},"vtestpd-vtestps":{"cat_title":"VTESTPD, VTESTPS","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VTESTPD, VTESTPS","title":"VTESTPD, VTESTPSs (Intel x86/64 assembly instruction)"},"vzeroall":{"cat_title":"VZEROALL","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VZEROALL","title":"VZEROALL (Intel x86/64 assembly instruction)"},"vzeroupper":{"cat_title":"VZEROUPPER","path":"/X86-64 명령어 레퍼런스/V","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"VZEROUPPER","title":"VZEROUPPER (Intel x86/64 assembly instruction)"},"wait-fwait":{"cat_title":"WAIT, FWAIT","path":"/X86-64 명령어 레퍼런스/W","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"WAIT, FWAIT","title":"WAIT, FWAITs (Intel x86/64 assembly instruction)"},"wbinvd":{"cat_title":"WBINVD","path":"/X86-64 명령어 레퍼런스/W","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"WBINVD","title":"WBINVD (Intel x86/64 assembly instruction)"},"wrfsbase-wrgsbase":{"cat_title":"WRFSBASE, WRGSBASE","path":"/X86-64 명령어 레퍼런스/W","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"WRFSBASE, WRGSBASE","title":"WRFSBASE, WRGSBASEs (Intel x86/64 assembly instruction)"},"wrmsr":{"cat_title":"WRMSR","path":"/X86-64 명령어 레퍼런스/W","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"WRMSR","title":"WRMSR (Intel x86/64 assembly instruction)"},"wrpkru":{"cat_title":"WRPKRU","path":"/X86-64 명령어 레퍼런스/W","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"WRPKRU","title":"WRPKRU (Intel x86/64 assembly instruction)"},"xabort":{"cat_title":"XABORT","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XABORT","title":"XABORT (Intel x86/64 assembly instruction)"},"xacquire-xrelease":{"cat_title":"XACQUIRE, XRELEASE","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XACQUIRE, XRELEASE","title":"XACQUIRE, XRELEASEs (Intel x86/64 assembly instruction)"},"xadd":{"cat_title":"XADD","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XADD","title":"XADD (Intel x86/64 assembly instruction)"},"xbegin":{"cat_title":"XBEGIN","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XBEGIN","title":"XBEGIN (Intel x86/64 assembly instruction)"},"xchg":{"cat_title":"XCHG","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XCHG","title":"XCHG (Intel x86/64 assembly instruction)"},"xend":{"cat_title":"XEND","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XEND","title":"XEND (Intel x86/64 assembly instruction)"},"xgetbv":{"cat_title":"XGETBV","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XGETBV","title":"XGETBV (Intel x86/64 assembly instruction)"},"xlat-xlatb":{"cat_title":"XLAT, XLATB","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XLAT, XLATB","title":"XLAT, XLATBs (Intel x86/64 assembly instruction)"},"xor":{"cat_title":"XOR","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XOR","title":"XOR (Intel x86/64 assembly instruction)"},"xorpd":{"cat_title":"XORPD","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XORPD","title":"XORPD (Intel x86/64 assembly instruction)"},"xorps":{"cat_title":"XORPS","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XORPS","title":"XORPS (Intel x86/64 assembly instruction)"},"xrstor":{"cat_title":"XRSTOR","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XRSTOR","title":"XRSTOR (Intel x86/64 assembly instruction)"},"xrstors":{"cat_title":"XRSTORS","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XRSTORS","title":"XRSTORS (Intel x86/64 assembly instruction)"},"xsave":{"cat_title":"XSAVE","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XSAVE","title":"XSAVE (Intel x86/64 assembly instruction)"},"xsavec":{"cat_title":"XSAVEC","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XSAVEC","title":"XSAVEC (Intel x86/64 assembly instruction)"},"xsaveopt":{"cat_title":"XSAVEOPT","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XSAVEOPT","title":"XSAVEOPT (Intel x86/64 assembly instruction)"},"xsaves":{"cat_title":"XSAVES","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XSAVES","title":"XSAVES (Intel x86/64 assembly instruction)"},"xsetbv":{"cat_title":"XSETBV","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XSETBV","title":"XSETBV (Intel x86/64 assembly instruction)"},"xtest":{"cat_title":"XTEST","path":"/X86-64 명령어 레퍼런스/X","publish_date":"2020-09-01","published":"2020-09-01","ref_title":"XTEST","title":"XTEST (Intel x86/64 assembly instruction)"}}