Assembly programming on the ti 89
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

Assembly Programming on the TI-89 PowerPoint PPT Presentation


  • 48 Views
  • Uploaded on
  • Presentation posted in: General

Assembly Programming on the TI-89. Created By: Adrian Anderson Trevor Swanson. TI-89 Calculator. Released in 1998 as a more portable version of the TI-92, which was much larger and had a QWERTY keyboard. Evaluates and performs algebraic expressions Performs calculus functions

Download Presentation

Assembly Programming on the TI-89

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Assembly programming on the ti 89

Assembly Programming on the TI-89

Created By:

Adrian Anderson Trevor Swanson


Assembly programming on the ti 89

TI-89 Calculator

  • Released in 1998 as a more portable version of the TI-92, which was much larger and had a QWERTY keyboard.

  • Evaluates and performs algebraic expressions

  • Performs calculus functions

  • Can graph in several coordinate systems, including 3D

  • Has “pretty print”, meaning it draws algebraic expressions (such as radicals and exponents) in a mathematical way


Assembly vs ti basic

Assembly vs. TI-Basic

  • TI-Basic is simpler, but more restricted

    - Quick access to high-level features

    - Many ROM functions cannot be called from TI-Basic

    - Strict rules when calling other procedures

    - Must use the graph screen for pixel work in TI-Basic

    • Assembly is much faster

    • Assembly programs cannot be edited on the calculator


Motorola 68k processor

Motorola 68K Processor

  • Sixteen 32-bit registers and one 16-bit Condition Code Register (CCR)

    • The first 8 registers are data registers which can hold values associated with the assembly program

    • The next 8 are address registers which can serve as software stack pointers, index registers, or base address registers. The eighth of the address registers is the user stack pointer, a register which always holds the top value of the system stack

    • The final register, the 16-bit CCR, holds the conditions of the information from the most recent operation. These include carry, overflow, extend, zero, and negative.


Motorola 68k processor1

Motorola 68K Processor


Assembly length modifiers

Assembly Length Modifiers

  • Adding “.b” to the end of an instruction will make the instruction move data in bytes

  • Adding ".w" to the end of an instruction will cause the processor to treat the arguments as words.

  • Adding ".l" to the end of an instruction will treat the arguments as long words (32 bits).

  • Example: move.w #1,-(a7). Pushes the number 1 to the stack as a word.


Assembly commands

Assembly Commands

  • Movement Instructions

    • move – Moves the data from one address to another

    • movem – Moves data from multiple locations to adjacent memory locations

    • clr – Clears the contents of a register.

    • lea – Loads an address to a register.

    • pea – Pushes data to the stack.

  • Arithmetic Instructions

    • add – Adds the source to the destination, and places it in destination.

    • addx – Like add, but adds 1 if the extend flag is set.

    • sub – Subtracts the source from the destination, and places the result in the destination

    • neg – Subtracts the data in the address from 0.

    • cmp – Subtracts the source from the destination, but does not store the result. Used to change the CCR.

    • muls.w – Multiplies the source by the destination, and places the result in the destination.

    • divs.w – Divides the destination by the source, and places the result in the destination.


Branch instructions

Branch Instructions

  • bra – Sets the Program Counter (PC) ahead by a number of bytes equal to the argument.

  • b(cc) – Sets the PC forward by a number of bytes equal to the argument if a certain condition is set.

  • Condition Tests:

    • cs - True if the Carry bit is set

    • cc - True if the Carry bit is cleared

    • eq - "Equal to Zero" - True if the Zero bit is set

    • ne - "Not Equal to Zero" - True if the Zero bit is cleared

    • vs - True if the Overflow bit is set

    • vc - True if the Overflow bit is cleared

    • mi - "Minus" - True if the Negative bit is set

    • pl - "Plus" - True if the Negative bit is cleared

    • ge - "Greater than or Equal to Zero" - True if the Negative and Overflow are both cleared, or if they are both set.

    • lt - "Less than or Equal to Zero" - True if the Negative bit is set and the Overflow bit is cleared, or vice versa.

    • gt - "Greater than Zero" - As ge, but the Zero bit must also be cleared.

    • le - "Less than Zero" - As lt, but true if the Zero bit is set, regardless of the other conditions.


Rotate and shift instructions

Rotate and Shift Instructions

  • asl – "Arithmetic Shift Left" - Moves the Most Significant Bit (MSB) into the Carry bit in the CCR, shifts each bit to the left, and inserts a 0 into the Least Significant Bit (LSB).

  • lsl – Works exactly as asl.

  • asr – Moves the LSB into the Carry bit in the CCR, shifts each bit to the right, and inserts a copy of the old MSB to the new MSB.

  • lsr – As asl, but places a zero in the MSB.

  • rol – Shifts each bit to the left, moves the MSB to the Carry flag in the CCR, and moves the Carry flag into the LSB.

  • roxl – As rol, but the Carry flag is then copied to the Extend bit.

  • ror – Shifts each bit to the right, moves the LSB to the Carry flag in the CCR, and moves the Carry flag into the MSB.

  • roxr – As ror, but the Carry flag is then copied to the Extend bit.

  • swap – Exchanges the high word in the specified register with the low word.


Binary logic

Binary Logic

  • not – Flips all bits in the destination

  • and – Performs a bitwise AND (destination bit is true only if both input bits are true) of the two values, and places the result in the destination

  • andi – As and, but the source is a constant

  • or – Performs a bitwise OR (destination bit is true if either source bit is true) of the two values, and places the result in the destination

  • ori – As or, but the source is a constant

  • eor – Performs a bitwise exclusive OR (destination bit is true of one source bit is true and one is false) of the two values, and places the result in the destination

  • eori – As eor, but the source is a constant


A sample program

A Sample Program

  • Bounce.89z

  • A small ball continuously bounces off of the edges of the screen

  • Program flow:

    • Initialize variables and clear screen

    • Runs a loop to slow the program down

    • Check for keyboard press

    • Switch directions if ball hits a wall

    • Erase the ball

    • Moves the ball in the correct direction

    • Draws the ball


Advanced techniques

Advanced Techniques

  • Masking

    • A mask determines which bits will be set and which will not be set

    • Often uses and to erase unwanted bits

  • Jumptable

    • List of the locations of certain functions in memory

    • All functions can be called by addresses


Declarations

Declarations


Saving the screen

Saving the Screen


Initializing

Initializing


Loops and direction testing

Loops and Direction Testing


Direction testing 2

Direction Testing 2


Moving and clearing

Moving and Clearing


Moving and clearing 2

Moving and Clearing 2


Moving image

Moving Image


Drawing image

Drawing Image


Drawing image 2

Drawing Image 2


Cleanup

Cleanup


Resources

Resources

  • Motorola 68k Family Programmer's Reference

    • http://www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf

  • Techno-Plaza's TIGCC Assembly Lessons

    • http://www.technoplaza.net/assembly/

  • Virtual TI Emulator

    • http://www.technoplaza.net/downloads/download.php?program=67

  • Ticalc.org

    • http://www.ticalc.org/

  • TI-89/TI-92 Plus Developer's Guide

    • http://education.ti.com/downloads/pdf/us/sdk8992pguide.pdf

  • The Official TIGCC Site

    • http://tigcc.ticalc.org/

  • TI-89 Graphing Calculator Product Center

    • http://education.ti.com/us/product/tech/89/features/features.html


Black slide

Black Slide


  • Login