2014-10-15 2 views
0

MSP430의 명령어 세트를보고 있었는데 이해할 수없는 것을 발견했습니다. JC와 JNZ, JNC와 JEQ의 차이점을 구분할 수 없습니다. 나는 JEQ와 JNZ의 기능을 이해하고 있지만 JC와 JNC의 사용법에 대해서는 약간 퍼지다.MSP430 JC, JNC, JEQ 및 JNZ

사실 JC와 JNC는 캐리 플래그를 사용합니다. 그러나 어떤 방식으로 사용되고 있으며 JNZ 및 JEQ와 다른 점은 확실하지 않습니다.

답변

2
JC = Jump if carry set (C=1) 
JNC = Jump if carry is not set (C=0) 
JZ = Jump if zero-flag is set 
JNZ = Jump if zero-flag is not set 

JEQ = Jump if equal => another 'name' for JZ 
(There are many instruction aliases'). 

가장 높은 비트가 설정된 두 개의 숫자를 추가하면 원래 숫자보다 1 비트 길게 결과가 나타납니다. 이 새로운 비트는 "이동"합니다. 그것은 또한 subtrow에서 borrow-flag로 사용됩니다. 비교는 결과 값이 저장되지 않는 것을 제외하고 빼기와 같습니다.

Status Bits N: Set if result is negative, reset if positive 
Z: Set if result is zero, reset otherwise 
C: Set if there is a carry from the MSB of the result, reset otherwise. 
Set to 1 if no borrow, reset if borrow. 
V: Set if an arithmetic overflow occurs, reset otherwise. 
: SBC는 플래그로하는 일이다

관련 문제