Back
MASM : COMPLEX : CNORM_PPX
CNORM_PPX:

Syntax:

Description:

CNORM_PP0 normal operation multiplies the contents of Rs0 and Rs1, adds the contents of Rs2 to the multiplication result, then moves the result to Rd3 according to BS (bank select). Low bank of register contains the Real part of complex number and High bank contains the Imaginary part. In short, it makes "(a*b+c)", where "a,b,c" are contents of registers Rs0, Rs1 and Rs2 correspondingly. Sign of final result is "+".

Other CNORM_PPX operations are similar. Except they perform complex conjugation on one or several complex numbers contained in registers. The "~" sign shows elements on which conjugation is performed.

Operations :

  • CNORM_PP0 : a*b+c
  • CNORM_PP1 : a*b+c~
  • CNORM_PP2 : a*b~+c
  • CNORM_PP3 : a*b~+c~
  • CNORM_PP4 : a~*b+c
  • CNORM_PP5 : a~*b+c~
  • CNORM_PP6 : a~*b~+c
  • CNORM_PP7 : a~*b~+c~

Instructions are stack conditioned.

Microcode patterns for other CNORM_PPX complex normal operations (see below) are differ only in MPC field, where the values are:

  • for CNORM_PP0 : CN00
  • for CNORM_PP1 : CN01
  • for CNORM_PP2 : CN02
  • for CNORM_PP3 : CN03
  • for CNORM_PP4 : CN04
  • for CNORM_PP5 : CN05
  • for CNORM_PP6 : CN06
  • for CNORM_PP7 : CN07

Microcode Pattern:

Takes 11 cycles to execute.
    Example: CNORM_PP1 0xA3 3 0xA0 0xA1 0xA2

	  
	 MPC  BS3 C3 P3 P2 P1 P0
	------------------------
	 CN01  0  0  00 00 A1 A0
	  -    0  0  00 00 00 00
	  -    0  0  00 A2 00 00
	  -    0  0  00 00 00 00
	  -    0  0  00 00 00 00
	  -    0  0  00 00 00 00
	  -    0  0  00 00 00 00
	  -    0  0  00 00 00 00
	  -    0  0  00 00 00 00
	  -    0  0  00 00 00 00
	  -    3  0  A3 00 00 00

	  
Exceptions :

Configuration Register: 0x30 (CrFiluExc)

Exception No. Mask R/W Access Name
[0] 00000000 00000001 RW ALU Bad Operand (Low Bank)
[1] 00000000 00000002 RW ALU Bad Operand (High Bank)
[2] 00000000 00000004 RW ALU Denormalized Input (Low Bank)
[3] 00000000 00000008 RW ALU Denormalized Input (High Bank)
[4] 00000000 00000010 RW ALU Denormalized Output (Low Bank)
[5] 00000000 00000020 RW ALU Denormalized Output (High Bank)
[6] 00000000 00000040 RW ALU Overflow (Low Bank)
[7] 00000000 00000080 RW ALU Overflow (High Bank)

Example :

Not available at the moment.

APE Group Zeuthen. 2003
$Id: cnorm_pp_masm.php,v 1.2 2004/08/04 09:35:01 noe Exp $
$Id: syntax.php,v 1.8 2004/08/04 09:25:34 noe Exp $