EasyManua.ls Logo

Parallax BASIC Stamp 2e - Multiply High (**); Multiply Middle (*;)

Default Icon
353 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
BASIC Stamp Architecture **, */
Page 68 BASIC Stamp Programming Manual 2.0b www.parallaxinc.com
than 65535, the excess bits will be lost. Multiplication of signed variables
will be correct in both number and sign, provided that the result is in the
range -32767 to +32767.
SYMBOL Value1 = W0
SYMBOL Value2 = W1
Value1= 1000
Value2= 19
Value1= Value1 * Value2 ' Multiply Value1 by Value2.
DEBUG Value1 ' Show the result (19000).
-- or --
Value1 VAR WORD
Value2 VAR WORD
Value1= 1000
Value2= - 19
Value1= Value1 * Value2 ' Multiply Value1 by Value2.
DEBUG SDEC ? Value1 ' Show the result (-19000).
The Multiply High operator (**) multiplies variables and/or constants,
returning the high 16 bits of the result. When you multiply two 16-bit
values, the result can be as large as 32 bits. Since the largest variable
supported by PBASIC is 16 bits, the highest 16 bits of a 32-bit
multiplication result are normally lost. The ** (double-star) instruction
gives you these upper 16 bits. For example, suppose you multiply 65000
($FDE8) by itself. The result is 4,225,000,000 or $FBD46240. The * (star, or
normal multiplication) instruction would return the lower 16 bits, $6240.
The ** instruction returns $FBD4.
SYMBOL Value1 = W0
SYMBOL Value2 = W1
Value1= $FDE8
Value2= Value1 ** Value1 ' Multiply $FDE8 by itself
DEBUG $Value2 ' Return high 16 bits.
-- or --
Value1 VAR WORD
Value2 VAR WORD
Value1= $FDE8
Value2= Value1 ** Value1 ' Multiply $FDE8 by itself
DEBUG HEX ? Value2 ' Return high 16 bits.
The Multiply Middle operator (*/) multiplies variables and/or constants,
returning the middle 16 bits of the 32-bit result. This has the effect of
multiplying a value by a whole number and a fraction. The whole number
1
2
e
2
sx
2
p
2
2
e
2
sx
2
p
2
1
2
e
2
sx
2
p
2
MULTIPLY HIGH
: **
MULTIPLY MIDDLE: */
1
2
e
2
sx
2
p
2

Table of Contents

Related product manuals