Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1318293 Posts in 59206 Topics- by 50299 Members - Latest Member: Aarondyj

October 16, 2017, 10:02:17 pm

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityTownhallForum IssuesArchived subforums (read only)TutorialsBeginners' assembly programming (Complete series)
Pages: [1]
Print
Author Topic: Beginners' assembly programming (Complete series)  (Read 1444 times)
voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« on: July 12, 2016, 04:39:39 pm »

I don't know if giving my mad science software engineering a purpose somehow devalues it in some way, but I thought it'd be nice to make some assembly tutorials for the absolute beginner.

Foreword
Being able to write assembly is not a necessary skill to become a game developer, or even a game programmer. In this day and age, compilers work well enough that bytecode-level black magic is more likely to confuse your workmates than it is to improve any aspect of your algorithm.

However, in my opinion, there is no better way to understand how a computer really works than getting as close to the hardware as you can. Assembly is just one step away from writing your program's .exe out in raw 1s and 0s - and if you can write assembly well enough there's no reason you couldn't do just that. With an understanding of assembly, you'll likely find yourself stumped by cryptic error messages, strange crashes, and code structures that "should work but don't" a lot less often.

With that in mind, I've started writing a series of tutorials on assembly programming. All of these tutorials use my virtual console, VO-EM. No paid software or licenses are required.

I'm very interested in getting feedback on these - despite being employed as a teacher I'm often told I'm terrible at explaining things.

Index
A Series (Beginners)

Z series (lol)
  • AX - Hello World Tying it all together with a Hello World tutorial! (May be a bit advanced for most at this stage; still filling in the gaps)
« Last Edit: September 08, 2016, 11:48:12 pm by voidSkipper » Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« Reply #1 on: July 15, 2016, 12:29:22 am »

Updated with a new tutorial - the iconic Hello World!

http://wiki.vo-em.com/index.php?title=A3_-_Hello_World
Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
Prinsessa
Level 10
*****


Ava Skoog


View Profile WWW Email
« Reply #2 on: July 15, 2016, 02:56:07 am »

Nice initiative! Might have a peek later. Probably won't need it, but can't say no to knowledge. Hand Thumbs Up Left
Logged

ProgramGamer
Global Moderator
Level 10
******


"The programmer of games"


View Profile WWW Email
« Reply #3 on: July 15, 2016, 07:10:42 am »

How many horizontal sprites before things start blinking?
Logged

voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« Reply #4 on: July 16, 2016, 12:07:34 am »

Nice initiative! Might have a peek later. Probably won't need it, but can't say no to knowledge. Hand Thumbs Up Left

Hopefully it's educational for you!

How many horizontal sprites before things start blinking?

To be honest, I haven't stress-tested sprite rendering yet. There's no 'hardware' reason it should start wigging out if you put too many sprites per line like older consoles used to, but I may have to introduce one if too many sprites causes it to start dropping frames.

Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
yuuta
TIGBaby
*


How many apples does it take to elephant?


View Profile WWW Email
« Reply #5 on: July 16, 2016, 02:01:16 pm »

I did everything up to A3, too complicated for me Shrug
Logged
voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« Reply #6 on: July 16, 2016, 08:56:22 pm »

I did everything up to A3, too complicated for me Shrug

Thanks for the feedback Yuuta - a few people have told me know that the jump in difficulty is too high. I really wanted to get "hello world" done early for traditon's sake, but I think I'm going to have to add some intermediate steps.
Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« Reply #7 on: July 18, 2016, 10:50:40 pm »

Updated with three new tutorials!
>A3 - Exploring the Assembler
>A4 - Saving & Loading
>A5 - Calling subroutines

"Hello World" has been moved to "AX"; it will now be last, or at least much later, in the A series of tutorials.
Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« Reply #8 on: July 19, 2016, 09:17:56 pm »

Updated with two new tutorials!
>A6 - Input & Interrupts
>A7 - Input & Interrupts Pt II
Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« Reply #9 on: September 01, 2016, 06:57:36 pm »

Updated with a new tutorial!
>A8 - Introduction to Computer Graphics
Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
voidSkipper
Level 2
**


coder/linguist/slacker

biggles_91@hotmail.com
View Profile WWW Email
« Reply #10 on: September 08, 2016, 10:41:50 pm »

Added the final A series tutorial:
>A9 - Drawing to the Screen
Logged

- a 32bit, 72khz virtual game console thinger.
{devlog}{site}{wiki} (Updated 9th September)
{Learn assembly} (11 tutorials)
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic