Site Tools


Sidebar

Smart Card Solution

User Manual

JavaCard API Samples

Java Card Specification

Knowledge Sharing

javacard:jcvm:7.5.62_ishr

7.5.62 ishr

Arithmetic shift right int

Format

ishr

Forms

ishr = 80 (0x50)

Stack

…, value1.word1, value1.word2, value2.word1, value2.word2 → …, result.word1, result.word2

Description

Both value1 and value2 must be of type int. The values are popped from the operand stack. An int result is calculated by shifting value1 right by s bit positions, with sign extension, where s is the value of the low five bits of value2. The result is pushed onto the operand stack.

Notes

The resulting value is Î(value1) / 2s°, where s is value2& 0x1f. For nonnegative value1, this is equivalent (even if overflow occurs) to truncating int division by 2 to the power s. The shift distance actually used is always in the range 0 to 31, inclusive, as if value2 were subjected to a bitwise logical AND with the mask value 0x1f.

Notes

If a virtual machine does not support the int data type, the ishr instruction will not be available.

javacard/jcvm/7.5.62_ishr.txt · Last modified: 2017/05/13 04:09 (external edit)