Saturday, January 10, 2026

RPN: A Comparison of Programming Methods: Stack vs. Storage Arithmetic with the HP 32SII

RPN: A Comparison of Programming Methods: Stack vs. Storage Arithmetic with the HP 32SII


News: The RPN series will continue for 2026: Every second Sunday!


Today we will compare two methods to tackle mathematical problems with the HP 32SII. The code presented here will also work with the HP 32S original and the Swiss Micros DM32.


Method 1 (left column): Use of the stack and when necessary, variables to store immediate results.


Method 2 (right column): Use of storage arithmetic to most, if not all, of the arithmetic operations.



What is Storage Arithmetic?


Storage arithmetic executes an arithmetic operation while simultaneously storing the result in the variable.


In all the examples, assume the variable Z starts with the value of 10.


STO+: Storage Addition

Adds the value in the display to the value stored in the variable and stores the result. Outside of RPN and Hewlett Packard calculators, storage addition is the most common storage arithmetic function. On four function calculators and adding machines, storage arithmetic is symbolized with M+. On Texas Instruments scientific calculators, such as the TI-30Xa and the classic TI-30 series, storage addition occurs with the SUM key.


2 STO+ Z adds 2 to Z. The value of Z is now 12.


In Python, the general syntax for storage addition:

var+=<expression>


STO-: Storage Subtraction


Subtracts the value in the display from the value stored in the variable and stores the result. On four function calculators and adding machines, storage arithmetic is symbolized with M-. If you have a TI-55 (1970s version), TI-57 (1970s version), TI-58, TI-59, or T-66, storage subtraction is executed by INV SUM.


2 STO- Z subtracts 2 from Z. The value of Z is now 8.


In Python, the general syntax for storage subtraction:

var-=<expression>



STO×: Storage Multiplication


Multiplies the value in the display from the value stored in the variable and stores the result. If you have a TI-55 (1970s version), TI-57 (1970s version), TI-58, TI-59, or T-66, storage subtraction is executed by Prod (or Prd).


2 STO× Z multiplies 2 to Z. The value of Z is now 20.


In Python, the general syntax for storage multiplication:

var*=<expression>



STO÷: Storage Multiplication


Multiplies the value in the display from the value stored in the variable and stores the result. If you have a TI-55 (1970s version), TI-57 (1970s version), TI-58, TI-59, or T-66, storage subtraction is executed by INV Prod (or Prd).


2 STO÷ Z divides Z by 2. The value of Z is now 5.


In Python, the general syntax for storage multiplication:

var/=<expression>


Example Problems


For fairness, both methods store the final result in Z. Only storage arithmetic is used because not all RPN calculators have recall arithmetic.


Problem 1: (1 + √5) ÷ 2 ≈ 1.61803398875


LBL A

5

SQRT

1

+

2

÷

STO Z

RTN


15.0 bytes

LBL B

1

STO Z

5

SQRT

STO+ Z

2

STO÷ Z

RCL Z

RTN


15.0 bytes


Problem 2: 4² + 3 × 4 – 5 = 4 × (4 + 3) – 5 = 23


LBL C

4

STO X

3

+

RCL X

×

5

-

STO Z

RTN


15.0 bytes

LBL D

4

STO X

STO Z

3

STO+ Z

4

STO× Z

5

STO- Z

RCL Z

RTN


18.0 bytes



Problem 3: √(8.5² + 9.6²) ≈ 12.8222462931


LBL E

8.5

9.6

+

SQRT

STO Z

RTN


29.5 bytes

LBL F

8.5

STO Z

STO× Z

9.6

STO Y

STO× Y

RCL Y

STO+ Z

RCL Z

SQRT

STO Z

RCL Z

RTN


37.0 bytes


Problem 4: (7 × 12) ÷ (7 + 12) ≈ 4.42105263158


LBL G

7

STO X

12

STO Y

×

RCL X

RCL Y

+

÷

STO Z

RTN


18.0 bytes

LBL H

7

STO X

STO Y

12

STO× X

STO+ Y

RCL X

RCL Y

÷

STO Z

RTN


19.5 bytes


Problem 5: 1 ÷ (1 ÷ 4.5 + 1 ÷ 8 + 1 ÷ 6.7) ≈ 2.01419624217


LBL I

4.5

1/x

8

1/x

6.7

1/x

+

+

1/x

STO Z

RTN


35.5 bytes

LBL J

4.5

1/x

STO Z

8

1/x

STO+ Z

6.7

1/x

STO+ Z

RCL Z

1/x

STO Z

RCL Z

RTN


38.5 bytes


Problem 6: 2 × (10.3 – 4.9) + 3 × (5.4 – 2) = 21


LBL K

10.3

4.9

-

2

×

5.4

2

-

3

×

+

STO Z

RTN


45.0 bytes

LBL L

10.3

STO Y

4.9

STO- Y

2

STO× Y

5.4

STO Z

2

STO- Z

3

STO× Z

RCL Y

STO+ Z

RCL Z

RTN


49.5 bytes



Findings


I like storage arithmetic. However from these results, storage arithmetic uses a bit more memory than merely using the stack. Storage arithmetic can be handy dandy technique in programming, not just in keystroke programming but other programming languages like Python.



Eddie


All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.


The author does not use AI engines and never will.