E-mail Address
Password

Register
arasian > support > education > tutorial

Ti-83 and Ti-84 Assembly Programming
Getting Started
     1.1: About This Tutorial
     1.2: About TI-ASM
     1.3: Writing Your First Program
     1.4: Compiling
     1.5: Debugging
ASM Basics
     2.1: Calls and Jumps
     2.2: Registers
     2.3: Displaying Text
System Controls and Calls
     3.1: Data
     3.2: Register Stack
     3.3: If Statements (Comparing)
     3.4: GetKey and GetCSC
     3.5: System Flags
     3.6: Menus
     3.7: Displaying Pictures
     3.8: For Loops (djnz)
     3.9: White Loops
     3.10: OP Registers
Applications
     4.1: Apps vs ASM
     4.5: KeyHooks
Register Stack

It should be assumed that every register is destroyed with every operation. This means that any of the registers should not be used for any long-term data storage. So there is the register stack. You push things into the stack and pop things off the stack. This means that the first register you push will be the last popped. You can only push register pairs onto the stack. The pairs are af, bc, de, and hl. The commands are shown below.
PushPop:
      ld a,3
      push af
      B_CALL(_ClearLCDFull) ;This essentially destroyes register a
      pop af

Register a is now back to the original value, even though calling ClearLCDFull destroyed it. This becomes very important when dealing with menus and loops. ***IMPORTANT*** If there are any registers in the stack when the program quits, it will crash the calculator. The stack also has a limited size. If you try to push too many registers onto the stack, then the program will also crash (but this is a large size, like 100). So make sure that you have routines set up to registers do not build on top of each other.

Creative Commons License
The text in this tutorial is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Privacy Policy | Contact Us
(c) 1999-2010 Arasian. All rights reserved.