There are several Topic:Assembly Language.
In this course we will be learning ARM assembly language. We assume you already have a little experience in some other programming language.
Most 32 bit processors sold in 2005 used the ARM assembly language.
Introduction[edit | edit source]
... more about ARM assembly language here ...
Interpreter project[edit | edit source]
As an example of a relatively large assembly language program, we will implement a Forth interpreter.
- HLL = High Level Language
- Code = Low level instructions
- Pseudo Code = Intuitive text
ARM 920T has a 32 bit instruction set , but also has a 16 bit "Thumb" set. Thumb has lacks like the leading 4 bits of conditional codes. However "Extended" Thumb is so "complete" it will do easier and faster code than 32 bit ARM.
MacroAssemblers are belabored , need manuals . "Forth" HLL is intuitive , max leverage , only takes a few minutes to learn from an asssembly listing . I'll create a Forth G.U.I in time . Forth Primative command [ SEE MyProg ] disassembles the [ MyProg ].... if G.U.I. , you will see a Movie ...icons move about the LCD to show the action .
- 1) Port Forth to new H/W by creating a partial assembler that uses only the clever instructions .
- 2) Next create code frags ( aka "Primatives ") that allow assembly without using Forth assembler ( built in).
- 3) Use these primatives to create "midlevel" subroutines. Your application calls these MidLevels .
Everything is in a dictionary that is searched to link the code . Apps link Midlevel , who link primatives , who link assmbly code . No forward references . No [Vocabs] , No STATE , No STACK . Prim's use a STACK , you cant . Forth has no STACK , uses modern data structures even at low level . Use one level hashing in the Dict' and MRU to build a faster search method . Users dont see a File/folder system , Forth manages all objects . No ObjectOrientedProgramming . All Objects have a header that allows fast search . Thus objects can be linked to the max .
- 1) Users can script , a
- 2) "booter" SU can boot/shut down only .
- 3) owner can do anything with his key .
Multi-task : 1 ) prior' 1 device tells kernel what size time slice to give to Prior' 2 . Kernel calcs who gets time from this . 2) Hardware IRQ's are allways disabled .
All code is reentrant , but why would you make such a mistake ! Learn better programming !
Code can easily be unrolled ( nix CALL/RETURN) for speed .
... unfinished ...
Contributers[edit | edit source]
- Thomas Lloyd Scott