EasyManua.ls Logo

HP 48GII - Page 505

HP 48GII
653 pages
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...
The Development Library 6-19
Syntax Example Notes
Reg=0.f
B[8dM!
Sets the specific field of the register to 0
Reg=1.f
B[3dM!
Sets the specific field of the register to 1
LC hhh..hhh
LA hhh..hhh
EO!R8388!
EB!g38Ha!
The number of nibbles loaded in the register is the number of characters
necessary to write the value. So LC #12 will be equivalent to LC 00C.
Note: the less significant nibble is loaded in the nibble P (as in the value of
the register P) of the register, the next one into nibble p+1 mod 16, and
etcetera.!
LCASC(x) chrs
LAASC(x) chrs
EOBDO-a/!MBD4!
EBBDO-Q/!KLOrD!
Loads the hexadecimal value of x characters into C.
x must be between 1 and 8. See note on LC instruction
LC(x) Exp
LA(x) Exp
EO-Q/xSn*'L**!
Loads the result of an expression into C or A, using x nibbles.
See note on LC instruction
Reg1=Reg2.f
B[SdT!
Copies the value of a specific field of a register into the same field of
another register
Reg1Reg2EX.f
BS<TdY!
Exchanges the value of 2 registers on the given field. Note: this is not valid
for the 7G fields
Reg1=Reg1+Reg2.f
Reg1+Reg2.f
B[B'SdB!
O'4dB!
Adds the value of the specific field of one register to the other register.
Note: If Reg1 and Reg2 are the same, this is a multiply by 2 instruction
Note: This instruction is affected by the DEC/HEX mode only if the field
is not a F field and the registers are AB, BC, CD or AC.
Reg1=Reg1-Reg2.f
Reg1-Reg2.f
B[B0SdB!
O04dB!
The following instructions are also available (but not on the 7G fields):
B[S0Bd
*!
S[O0Sd
*!
O[B0Od
*!
4[O04d
*!
see note on Reg1=Reg1+Reg2.f
Reg=Reg+Cst.f
Reg+Cst.f
Reg=Reg-Cst.f
Reg-Cst.f
B[B'38dB!
B'38dB!
B[B038dB!
B07LLdB!
Note 1: The Saturn processor is not able to add a constant greater than 16
to a register. If cst is greater than 16, MASD will generate as many
instructions as needed.
Note 2: Even if adding constants to a register is very useful, large values
should be avoided because this generates a large program. Prefer another
solution like LC(5) Cte A+C.A
Note 3: Adding a constant greater than 1 to a P, WP, XS or S field is a
bugged Saturn instruction (problem with carry propagation). Use these
instructions with care.
Note 4: After adding a constant greater than 16 to a register, the carry
should not be tested (because you do not know if the last generated
instruction generated the carry or not)
Note 5: You can put an expression instead of the constant (MASD must be
able to evaluate the expression strait away). If the expression is negative,
MASD will invert the addition in a subtraction and vice versa.
Note 6: Be careful when using subtraction; it’s easy to be misled. A-5-6.A is
equivalent to A+1.A, not A-11.A because the instruction is: A-(5-6).A
Note 7: If using 7G fields, be careful if non nibble bounded masks are
used.
RegSR.f
BDKdY!
Shift register right by 4 bit on the specified field, set SB if bits are lost.
Note: this instruction is not available on the 7G fields
RegSL.f
BDEdY!
Shift register left by 4 bit on the specified field, set carry if bits are lost.
Note: this instruction is not available on the 7G fields
Reg1=Reg1<Reg2.f
Reg1<Reg2.f
B[BzSdY!
Shift register left by n bits (as defined by the value of Reg2) on the specified
field
Reg1=Reg1>Reg2.f
Reg1>Reg2.f
B[B9SdY!
Shift register right by n bits (as defined by the value of Reg2) on the
specified field
RegSRB.f
SDKSdT!
Shift register right by 1 bit on the specified field, set SB if bits are lost.
RegSRC
BDKO!
Circular right shift by 1 nibble
RegSLC
SDEO!
Circular left shift by 1 nibble
Reg1=Reg1&Reg2.f
Reg1&Reg2.f
B[B†SdT!
B†OdS!
Logical and on the specified field
Reg1=Reg1!Reg2.f
Reg1!Reg2.f
B[B•SdT!
B•OdS!
Logical or on the specified field

Table of Contents

Other manuals for HP 48GII

Related product manuals