def ASR_C(value, amount, width):
assert amount <= width<EOL>assert amount > <NUM_LIT:0><EOL>assert amount + width <= width * <NUM_LIT:2><EOL>value = Operators.SEXTEND(value, width, width * <NUM_LIT:2>)<EOL>result = GetNBits(value >> amount, width)<EOL>carry = Bit(value, amount - <NUM_LIT:1>)<EOL>return (result, carry)<EOL>
The ARM ASR_C (arithmetic shift right with carry) operation.

:param value: Value to shift
:type value: int or long or BitVec
:param int amount: How many bits to shift it.
:param int width: Width of the value
:return: Resultant value and carry result
:rtype tuple