Copy Link
Add to Bookmark
Report

Speed comparison between Machine Code and BASIC programs

Assembler coding - Lesson 1

eZine's profile picture
Published in 
Assembler coding
 · 1 year ago

Printing a character on the screen

This first example shows you how to print a character on the screen. In the example you make use of the 'accumulator' acc. for short, and a 'Kernal Routine'. Here's the program

  10 ORG 8192 
20 LDA #82
30 JSR $FFD2

Here's the breakdown

  • 10 - Assemble in location 8192 decimal (2000 hex) - Type SYS 8192 to run from BASIC
  • 20 - Puts the value 82 decimal into the accumulator (value for the letter R)
  • 30 - This jumps to a kernal subroutine that prints the value in the acc. to the screen


Ok, so know you could write your name like this

  10 ORG 8192 
20 LDA #82
30 JSR $FFD2
40 LDA #79
50 JSR $FFD2
60 LDA #66
70 JSR $FFD2

More of the same, but this time it would print out ROB on the screen.


Right then, lets see the difference between assembler language and BASIC.

First type and run the BASIC program below:

  10 PRINT CHR$(147) 
20 PRINT"R"
30 GOTO20

You should see your screen fill with the letter R. Notice the speed at which this happens.


Now lets assemble the machine code equivalent and see the execution speed difference.

Type in the following in Zeus, assemble it and run it.

  10 ORG 8192 
20 LDA #147
30 JSR $FFD2
40 LDA #82
50 LOOP JSR $FFD2
60 JMP LOOP

This is the assembler version of the basic program. When you have assembled it, use: SYS 8192 from BASIC to run it. Again the screen will fill with the letter R, only this time much faster.

The assembler version works like this:

  • 10 - Place in memory to put the code (Execute using SYS 8192 from BASIC)
  • 20 - Place value for clear screen in accumulator
  • 30 - Print character by jumping to Kernal Subroutine
  • 40 - Place value for letter 'R' in accumulator
  • 50 - Print character by jumping to Kernal Subroutine
  • 60 - Jump to the label named loop (i.e. Line 50)

next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT