Back
MASM : STACK : IPUSHANDBISGT
IPUSHANDBISGT:

Syntax:

Description:

The IPUSHANDBISGT operation is a single operation having the effect of an IPUSHGT operation followed by an SANDBIS operation. Explicitly, the logical operations are as follows:

Stack before IPUSHANDBISGT:

High Condition Low Condition
A B Top
C D Next

Stack after IPUSHANDBISGT:

Bank Selector Stack Item High Condition Low Condition
If Bs3 = 1 (low) Top ([Rs0].L > [Rs1].L) & A ([Rs0].L > [Rs1].L) & B
Next 1 A B
Next 2 C D
If Bs3 = 2 (high) Top ([Rs0].H > [Rs1].H) & A ([Rs0].H > [Rs1].H) & B
Next 1 A B
Next 2 C D
If Bs3 = 3 (vector) Top ([Rs0].H > [Rs1].H) & A ([Rs0].L > [Rs1].L) & B
Next 1 A B
Next 2 C D

Note: [Rs].X denotes the data on bank X of register R and A, B, C, D take the values TRUE or FALSE.

Microcode Pattern:

Takes 6 cycles to execute.
    Example: IPUSHANDBISGT 0xFF 3 0xA 0xB

	  
STKC  FLW  IOC  AGU   ASEL BS5 P5 BS4 C4 P4  MPC  BS3 C3 P3 P2 P1 P0
--------------------------------------------------------------------
  -    -    -    -      -   0  00  0   0 00  ISUB  0   0 00 00 0B 0A
  -    -    -    -      -   0  00  0   0 00    -   0   0 00 00 00 00
  -    -    -    -      -   0  00  0   0 00    -   0   0 00 00 00 00
  -    -    -    -      -   0  00  0   0 00    -   3   0 FF 00 00 00
PA2GT  -    -    -      -   0  00  0   0 00    -   0   0 00 00 00 00

	  
Exceptions :

No exceptions.

Example :

!! Initial conditions:
!! Content of register 0xA:  
!!    [0xA].H = 0xFFFFFFFFFFFFFFFF
!!    [0xA].L = 0xEEEEEEEEEEEEEEEE
!! Content of register 0xB:
!!    [0xB].H = 0xFFFFFFFFFFFFFFFF
!!    [0xB].L = 0xDDDDDDDDDDDDDDDD
!! Top of the stack is: 
!!    H = A, L = B

IPUSHANDBISGT 255 3 0xA 0xB !! Pushes: High = FALSE & a Low = TRUE & b
IPUSHANDBISGT 255 2 0xA 0xB !! Pushes: High = FALSE & a Low = FALSE & b
IPUSHANDBISGT 255 1 0xA 0xB !! Pushes: High = TRUE & a  Low = TRUE & b

APE Group Zeuthen. 2003
$Id: ipushandbisgt_masm.php,v 1.2 2004/08/04 09:45:20 noe Exp $
$Id: syntax.php,v 1.8 2004/08/04 09:25:34 noe Exp $