제가 글로 표현하기 난해한 부분이 있었는데, 잘 이해바랍니다. ^^;;;
AAA—ASCII Adjust After Addition
16진수 덧셈의 결과를 ASCII 숫자 덧셈의 결과로 조정합니다.
MOV AX '8' (0x0038)
ADD AX '2' (0x0032) ; AX : 0x006A
AAA ; -> AX의 값이 0x0100으로 조정됨)
OR AX, 0x3030 ; -> AX의 값은 '10' (0x3130)으로 조정됨)
64-bit Mode에서는 invalid 합니다.
AAD—ASCII Adjust AX Before Division
ASCII 숫자 나눗셈을 하기 전에 AX의 값을 조정합니다.
MOV AX 0x0307
AAD ; AX : 0x0025
div bl(5) ; al : 몫, ah : 나머지
64-bit Mode에서는 invalid 합니다.
AAM—ASCII Adjust AX After Multiply
16진수 곱셈의 결과를 ASCII 곱셈의 결과로 조정합니다.
mov bl 05h
mov al 06h
mul bl ; ax : 0x001e
AAM ; ax : 0x0300
64-bit Mode에서는 invalid 합니다.
AAS—ASCII Adjust AL After Subtraction
16진수 뺄셈의 결과를 ASCII 연산의 결과로 조정합니다.
mov AX 0x0038 ('8')
sub AX 0x0039 ('9')
AAS ; AX : 0xFF09
or AX 0x0030 ; AX : 0xFF39 ('-9')
64-bit Mode에서는 invalid 합니다.
ADC—Add with Carry
덧셈을 수행하고 Carry의 값이 있는 경우 1을 더합니다.
ADD—Add
덧셈을 수행
다음에 잇는 XMMS 연산은 아래 파일에서 그림을 참조하시는게 빠릅니다.
http://saikat.guha.cc/ref/x86-64vol4.pdf (30Page)
ADDPD—Add Packed Double-Precision Floating-Point Values
XMMS8-XMMS15에 있는 Packed된 8바이트 Double 덧셈을 수행
ADDPS—Add Packed Single-Precision Floating-Point Values
XMMS8-XMMS15에 있는 Packed된 4바이트 float 덧셈을 수행
ADDSD—Add Scalar Double-Precision Floating-Point Values
XMMS8-XMMS15에 있는 8바이트 Double 덧셈을 수행
ADDSS—Add Scalar Single-Precision Floating-Point Values
XMMS8-XMMS15에 있는 4바이트 float 덧셈을 수행
ADDSUBPD—Packed Double-Precision Floating-Point Add/Subtract
XMMS8-XMMS15에 있는 8바이트 Double 덧셈과 뺄셈을 수행
ADDSUBPS—Packed Single-Precision Floating-Point Add/Subtract
XMMS8-XMMS15에 있는 4바이트 float 덧셈과 뺄셈을 수행
AND—Logical AND
logical AND 연산을 수행하고, 결과값을 Destination에 저장
다소 많이 부족해보이네요.. 휴~~
(ADC, ADD, AND를 더 설명할까요? 음..)
AAA—ASCII Adjust After Addition
16진수 덧셈의 결과를 ASCII 숫자 덧셈의 결과로 조정합니다.
MOV AX '8' (0x0038)
ADD AX '2' (0x0032) ; AX : 0x006A
AAA ; -> AX의 값이 0x0100으로 조정됨)
OR AX, 0x3030 ; -> AX의 값은 '10' (0x3130)으로 조정됨)
64-bit Mode에서는 invalid 합니다.
AAD—ASCII Adjust AX Before Division
ASCII 숫자 나눗셈을 하기 전에 AX의 값을 조정합니다.
MOV AX 0x0307
AAD ; AX : 0x0025
div bl(5) ; al : 몫, ah : 나머지
64-bit Mode에서는 invalid 합니다.
AAM—ASCII Adjust AX After Multiply
16진수 곱셈의 결과를 ASCII 곱셈의 결과로 조정합니다.
mov bl 05h
mov al 06h
mul bl ; ax : 0x001e
AAM ; ax : 0x0300
64-bit Mode에서는 invalid 합니다.
AAS—ASCII Adjust AL After Subtraction
16진수 뺄셈의 결과를 ASCII 연산의 결과로 조정합니다.
mov AX 0x0038 ('8')
sub AX 0x0039 ('9')
AAS ; AX : 0xFF09
or AX 0x0030 ; AX : 0xFF39 ('-9')
64-bit Mode에서는 invalid 합니다.
ADC—Add with Carry
덧셈을 수행하고 Carry의 값이 있는 경우 1을 더합니다.
ADD—Add
덧셈을 수행
다음에 잇는 XMMS 연산은 아래 파일에서 그림을 참조하시는게 빠릅니다.
http://saikat.guha.cc/ref/x86-64vol4.pdf (30Page)
ADDPD—Add Packed Double-Precision Floating-Point Values
XMMS8-XMMS15에 있는 Packed된 8바이트 Double 덧셈을 수행
ADDPS—Add Packed Single-Precision Floating-Point Values
XMMS8-XMMS15에 있는 Packed된 4바이트 float 덧셈을 수행
ADDSD—Add Scalar Double-Precision Floating-Point Values
XMMS8-XMMS15에 있는 8바이트 Double 덧셈을 수행
ADDSS—Add Scalar Single-Precision Floating-Point Values
XMMS8-XMMS15에 있는 4바이트 float 덧셈을 수행
ADDSUBPD—Packed Double-Precision Floating-Point Add/Subtract
XMMS8-XMMS15에 있는 8바이트 Double 덧셈과 뺄셈을 수행
ADDSUBPS—Packed Single-Precision Floating-Point Add/Subtract
XMMS8-XMMS15에 있는 4바이트 float 덧셈과 뺄셈을 수행
AND—Logical AND
logical AND 연산을 수행하고, 결과값을 Destination에 저장
다소 많이 부족해보이네요.. 휴~~
(ADC, ADD, AND를 더 설명할까요? 음..)
댓글 0
.