2014-04-21 3 views
0

레지스터에 0이 포함되어 있고 일부 값에서 빼기를 시도하면 레지스터 내에서 값이 어떻게됩니까? STATUS 레지스터 내에서 제로 플래그를 호출 할 것이고, 음수로 갈 것인지를 확인하기 위해 어떻게 사용할 수 있습니까? 이 코드PIC 어셈블리 : 0으로 감소시키는 레지스터

MOVLW b'00000000' ; W has value 0 
SUBLW b'00000001' ; trying to decrement 

나는 W 레지스터를 감소하기 위해 노력하고있어 예를 들어

, 그것의 결과는 무엇인가?

답변

1

SUBLW는 W가 0인지 여부에 관계없이 리터럴로 W의 값을 뺍니다. W = 0 다음은 형식이 서명 된 경우 부정, 또는 그 부호의 주위 경우 랩의

W = W - literal; 

경우 같은 과정의 결과가 될 것입니다.

Before: W = 00000000 
      -  1 
____________________ 
After: W = 11111111 (-1) 

그러나 W가 제로의 경우는 비 제로 것에서, 비 - 제로 숫자를 빼기 때문에, 제로 플래그는 값이 음수 여부를 확인해야하는 경우

에 있거나하지 않습니다 아니, 모두 플래그와 제로 플래그를 운반 사용

Result Carry Zero 
Positive 1  0 
Zero  1  1 
Negative 0  0 

http://www.pcbheaven.com/picpages/Mathematic_Instructions/

관련 문제