vol2의 분담3과 vol1 명령어입니다.

이종우 2007.03.09 02:56 조회 수 : 3810 추천:133

EM64T Vol1. Instruction
LFS : 메모리 피연산자의 내용이 FS:reg 위치에 적재된다
- lfs reg16/32/64, mem
LGDT/LIDT : GDT/IDT의 주소를 각각 GDTR/IDTR에 적재
LGS : 메모리 피연산자의 내용이 GS:reg 위치에 적재된다
- lgs reg16/32/64, mem
LLDT : LDT의 주소를 LDTR에 적재한다
- lldt reg/mem16


EM64T Vol2. Instruction
MOVUPS : xmm2/mem128 과 xmm1간의 packed된 단정밀도 부동소수점 이동
- movups xmm1, xmm2/m128
- movups xmm2/m128, xmm1
MOVZX : byte/word/dword를 0으로 확장하여 word/dword/qword로 이동
MUL : 부호없는 수의 곱셈 연산
- ax = al * r/m8
- dx:ax = ax * r/m16
- edx:eax = eax * r/m32
- rdx:rax = rax * r/m64
MULPD : packed된 배정밀도 부동소수점의 곱셉, xmm1과 xmm2/mem128의 곱을 xmm1에 저장
- mulpd xmm1, xmm2/m128
MULPS : packed된 단정밀도 부동소수점의 곱셈, xmm1과 xmm2/mem128의 곱을 xmm1에 저장
- mulps xmm1, xmm2/m128
MULSD : xmm2/mem64의 하위 배정밀도 부동소수와 xmm1의 하위 배정밀도 부동소수의 곱을 xmm1에 저장
- mulsd xmm1, xmm2/m64  
MULSS : xmm2/mem32의 하위 단정밀도 부동소수와 xmm1의 하위 단정밀도 부동소수의 곱을 xmm1에 저장
- mulss xmm1, xmm2/m32
MWAIT : 하이퍼스레딩에 의해 2개의 스레드가 동작 중,1개의 스레드가 처리 대기상태가 되었을때
        처리 대기 상태의 스레드를 MWAIT 명령으로 완전히 정지시킨다(스레드 동기화 명령)
NEG : 오퍼랜드를 2의 보수로 취함
- neg r/m8(m16/m32/m64)
NOP : 아무런 연산도 하지 않음
NOT : 오퍼랜드의 논리부정
- not r/m8(m16/m32/m64)
OR : 오퍼랜드의 논리합
- or al/ax/eax/rax, imm8/16/32/64
- or r/m8(m16/m32/m64), imm8/16/32
- or r/m8(m16/m32/m64), r8/r16/r32/r64
- or r8/16/32/64, r/m8(m16/m32/m64)
ORPD : 배정밀도 부동소수의 논리합
- orpd xmm1, xmm2/m128
ORRS : 단정밀도 부동소수의 논리합
- orrs xmm1, xmm2/m128
OUT : ACC의 값을 I/O port[dx/imm]에 저장
- out imm8, al/ax/eax/rax
- out dx, al/ax/eax/rax
OUTS/OUTSB/OUTSW/OUTSD : 문자열을 port[dx]로 전송
- outs dx, m8/16/32
- outsb(byte)
- outsw(word)
- outsd(dword)
PACKSSWB : signed word값을 signed byte로 변환(signed saturate)
PACKSSDW : signed dword값을 signed word로 변환(signed saturate)
PACKUSWB : unsigned word값을 unsigned byte로 변환(unsigned saturate)
PADDB : unsigned byte값을 가진 오퍼랜드끼리 더한다(warp around)
PADDW : unsigned word값을 가진 오퍼랜드끼리 더한다(warp around)
PADDD : unsigned dword값을 가진 오퍼랜드끼리 더한다(warp around)
PADDQ : unsigned qword값을 가진 오퍼랜드끼리 더한다(warp around)
PADDSB : signed byte값을 가진 오퍼랜드끼리 더한다(signed saturate)
PADDSW : signed word값을 가진 오퍼랜드끼리 더한다(signed saturate)
PADDUSB : unsigned byte값을 가진 오퍼랜드끼리 더한다(unsigned saturate)
PADDUSW : unsigned word값을 가진 오퍼랜드끼리 더한다(unsigned saturate)

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