SLAU367P October 2012 – April 2020 MSP430FR5041 , MSP430FR5043 , MSP430FR50431 , MSP430FR5847 , MSP430FR58471 , MSP430FR5848 , MSP430FR5849 , MSP430FR5857 , MSP430FR5858 , MSP430FR5859 , MSP430FR5867 , MSP430FR58671 , MSP430FR5868 , MSP430FR5869 , MSP430FR5870 , MSP430FR5872 , MSP430FR58721 , MSP430FR5887 , MSP430FR5888 , MSP430FR5889 , MSP430FR58891 , MSP430FR5922 , MSP430FR59221 , MSP430FR5947 , MSP430FR59471 , MSP430FR5948 , MSP430FR5949 , MSP430FR5957 , MSP430FR5958 , MSP430FR5959 , MSP430FR5962 , MSP430FR5964 , MSP430FR5967 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR59691 , MSP430FR5970 , MSP430FR5972 , MSP430FR59721 , MSP430FR5986 , MSP430FR5987 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR59891 , MSP430FR5992 , MSP430FR5994 , MSP430FR59941 , MSP430FR6005 , MSP430FR6007 , MSP430FR6035 , MSP430FR6037 , MSP430FR60371 , MSP430FR6041 , MSP430FR6043 , MSP430FR60431 , MSP430FR6045 , MSP430FR6047 , MSP430FR60471 , MSP430FR6820 , MSP430FR6822 , MSP430FR68221 , MSP430FR6870 , MSP430FR6872 , MSP430FR68721 , MSP430FR6877 , MSP430FR6879 , MSP430FR68791 , MSP430FR6887 , MSP430FR6888 , MSP430FR6889 , MSP430FR68891 , MSP430FR6920 , MSP430FR6922 , MSP430FR69221 , MSP430FR6927 , MSP430FR69271 , MSP430FR6928 , MSP430FR6970 , MSP430FR6972 , MSP430FR69721 , MSP430FR6977 , MSP430FR6979 , MSP430FR69791 , MSP430FR6987 , MSP430FR6988 , MSP430FR6989 , MSP430FR69891
BIT[.W] | Test bits set in source word in destination word | |
BIT.B | Test bits set in source byte in destination byte | |
Syntax | BIT src,dst or BIT.W src,dst | |
BIT.B src,dst | ||
Operation | src .and. dst | |
Description | The source operand and the destination operand are logically ANDed. The result affects only the status bits in SR. | |
Register mode: the register bits Rdst.19:16 (.W) resp. Rdst. 19:8 (.B) are not cleared! | ||
Status Bits | N: | Set if result is negative (MSB = 1), reset if positive (MSB = 0) |
Z: | Set if result is zero, reset otherwise | |
C: | Set if the result is not zero, reset otherwise. C = (.not. Z) | |
V: | Reset | |
Mode Bits | OSCOFF, CPUOFF, and GIE are not affected. | |
Example | Test if 1 (or both) of bits 15 and 14 of R5 (16-bit data) is set. Jump to label TONI if this is the case. R5.19:16 are not affected. | |
BIT #C000h,R5 ; Test R5.15:14 bits
JNZ TONI ; At least 1 bit is set in R5
... ; Both bits are reset
Example | A table word pointed to by R5 (20-bit address) is used to test bits in R7. Jump to label TONI if at least 1 bit is set. R7.19:16 are not affected. |
BIT.W @R5,R7 ; Test bits in R7
JC TONI ; At least 1 bit is set
... ; Both are reset
Example | A table byte pointed to by R5 (20-bit address) is used to test bits in output Port1. Jump to label TONI if no bit is set. The next table byte is addressed. |
BIT.B @R5+,&P1OUT ; Test I/O port P1 bits. R5 + 1
JNC TONI ; No corresponding bit is set
... ; At least 1 bit is set