2014-10-18 1 views
0

NEG 명령어에 대해 알고 싶습니다. 오버플로 플래그에도 영향을 줍니까? 그것이 오버 플로우 플래그에 영향을 미치는지 확인하십시오.어셈블리 언어에서 NEG 명령어가 오버플로 플래그를 설정합니까

+4

여기서 질문하고 대답을 기다리는 대신 명령어 세트 참조를 체크인하는 것이 어떻습니까? – Jester

+0

나는 거기에서 보았지만 거기에서 얻는 것이 정말로 어려웠다. 단지 1 ~ 2 라인의 답이 필요하다. 나는 이걸 처음 들었다. –

답변

2

지시 사항을 알고 싶다면 참조 설명서를 참조하십시오.

essential reference, namely the Intel instruction set manual은 NEG 명령에 대해 이렇게 말한다 :

Flags Affected 
The CF flag set to 0 if the source operand is 0; otherwise it is set to 1. 
The OF, SF, ZF, AF, and PF flags are set according to the result. 

그래서 분명히 인 NEG 명령이 세트 오 플래그; 따라서 은 OP의 원래 질문 인 O 플래그 인에 영향을줍니다. 그리고 그것이 실행될 때마다 그렇게합니다. (사람들은 "변하지 않았다"와 "설정되지 않았다"를 혼동해서는 안된다.)

특정 참고 매뉴얼은 O가 0 또는 1로 설정된 때를 나타내는 특정 알고리즘을 제공하지 않습니다. 그러나 Intel CPU는 2의 보수 시스템입니다. 빼기 명령은 정확히 같은 말을 사용합니다. NEG X는 (0 SUBTRACT X)와 같습니다. 따라서 NEG는 (0 SUBTRACT X)에 대해 "오버플로"에 따라 O 비트를 설정해야합니다. X가 0x8000000 일 때 O를 설정합니다.

OF (bit 11) Overflow flag 
— Set if the integer result is too large a positive number or too small a 
    negative number (excluding the sign-bit) to fit in the destination operand; 
    cleared otherwise. This flag indicates an overflow condition for signed-integer 
(two’s complement) arithmetic 

대한 우리의 이해를 확인 :

Intel Basic Archiecture Manual를 검사, 우리는 조금의이 설명을 찾을 수 있습니다.

관련 문제