728x90

간단한 어셈블리만 알아두자.


1. 덧셈




2. 뺄셈



3. 곱셈

곱셈의 경우 피승수가 eax에 대입되고 승수는 다른 레지스터나 메모리를 사용하면 된다. 한 연산자가 2개의 인자를 동시에 사용할 수 없다. 항상 eax를 사용하여 곱셈을 연산해야하며, 결과도 eax에 들어가게 되는데 곱의 대상은 다른 레지스터나 메모리 변수를 사용하면 된다.



4. 나눗셈

나눗셈도 곱셈과 방법은 마찬가지이다. 피제수가 eax에 들어가게 되고, 다른 레지스터와 메모리 값을 제수로 사용하게 된다. 결과값의 몫은 eax에 들어가고, 나머지는 edx 레지스터에 들어가게 된다. 한번에 두개의 인자를 입력할 수 없으므로 나누어 계산해야 한다.



728x90

'Parallel Programming > SSE' 카테고리의 다른 글

SSE - SSE (Streaming SIMD Extensions)  (0) 2017.03.14
728x90

SSE (Streaming SIMD Extensions)는 실수 연산에 최적화된 명령어이다.


여기서 SIMD란 Single Instruction Multiple Data의 약자로써, 하나의 명령어를 수행할 때, 레지스터를 좀 더 효율적으로 활용하는 기법을 말한다.


MMX에 이은 Intel의 다음 세대 멀티미디어 명령어이다. CPU에는 참 많은 명령어가 있다. MMX 명령어 50여개를 비롯하여 SSE에서 SSE4 등등이 있다. 이러한 명령어는 부동 소수점 연산등에 탁월한 효과를 보이기 때문에 3D 게임 혹은 멀티미디어 분야에서 그 성능을 발휘한다. 




컴퓨터 시스템의 종류


SISD (Single Instruction Single Data) 

 - 한 번의 연산으로 한개의 데이터를 처리할 수 있는 컴퓨터 시스템


SIMD (Single Instruction Multiple Data) 

 - 한 번의 연산으로 여러 개의 데이터를 처리할 수 있는 컴퓨터 시스템


MISD (Multiple Instruction Single Data) 

 - 하나의 데이터를 처리하기 위해 여러개의 연산 명령이 필요한 컴퓨터 구조


MIMD (Multiple Instruction Multiple Data) 

 - 여러 개의 데이터를 처리하기 위해 여러 개의 연산 명령을 처리하는 컴퓨터 구조




728x90

'Parallel Programming > SSE' 카테고리의 다른 글

SSE - 어셈블리 덧셈, 뺄셈, 곱셈, 나눗셈  (0) 2017.03.14

+ Recent posts