HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ksaj
helloworld
Assembly2019–2023
ksaj / helloworld

helloworld

Hello World using 6 different methods in Assembly Language for Raspberry Pi

2Distinct people
7Mentions
0Explicit recommenders
21GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Hello World using 6 different methods in Assembly Language for Raspberry Pi

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year7 dated mentions

Observed mentions: 2019-11-29 03:57:54 UTC to 2023-12-17 19:47:40 UTC.

012342019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC413

What Hacker News says

7 sources
Here is something I did that your son might be interested in. It is simply Hello World, but done 6 different ways using ARM assembly language. https://github.com/ksaj/helloworld I did a lot of Assembly language programming in the 90's, on Intel, but I haven't really since then. Still a fan of it though. The best thing I got out of it was a super-deep understanding of how computers actually work (versus what it seems like they do if you program with higher level languages.)
In Ask HN: Has anyone used assembly recently?
I did some experimenting with RPi assembler a handful of years back, since I used to do a lot of x86 assembler throughout the 90's. If you're interested, here are 6 completely different ways to print Hello World in Assembler for the Raspberry Pi. https://github.com/ksaj/helloworld I kept the code as close to each other in format and style as possible, so comparisons are easier to make. I don't really know the benefits and drawbacks to each method, but they are there and available, so I sleuthed them out and got them working.
In Assembler on Raspberry Pi
I would compile the C code with the -S option to output your C code as assembler, and then compare them to see what decisions were made by the (pre)compiler that made the compiled C code run faster than your hand-wrung code. The code is short enough that you should be able to relate the different parts and easily see the "improvements". This is how I learned to program assembler for Linux. I already knew TASM / MASM / a86 assembler languages for DOS/Windows - all similar but different in their own regards - but gas is a different un-backward beast, and of course the system calls are totally different between Linux and DOS/Windows. For example, here are 6 different ways to program helloworld on an ARM cpu (Raspberry Pi) running Raspbian Linux: https://github.com/ksaj/helloworld I kept each of them as close to the same as possible, so that
Read the rest
it is easy enough to see the differences in how each call is set up before execution. I'm sure if you added timer code before and after the example code, you'd very quickly discover which methods are more optimal and then begin to dissect why that would be, and how to use that knowledge in future programs. Keep in mind that the order of opcodes will impact execution speed, because of the many techniques modern cpus use to speed things up (branching, prediction, encoding techniques, entirely rewriting opcodes to something else with the same functionality - eg, most compilers understand that mov ax,0, sub ax,ax and xor ax,ax all do the same thing), etc.
In I translated a simple C program to x86_64 and it was slower
One thing that complicates projects like Rosetta Code, and RosettaGit by extension, is that things get easily muddled when taking into account the many ways a single language and platform can do the same thing. Rosetta Code suffers from it a lot, which is why I'm mentioning it here. Given the purpose of Rosetta* I'm surprised that there hasn't been a visible effort in containing and organizing these different methods in the same way some of the code examples show recursive vs iterative methods, etc. By way of example (which you may like to add to the project, since you do have a section for it already), here are 6 Hello World samples I created in ARM assembler on Raspberry Pi. https://github.com/ksaj/helloworld I purposely kept them all as similar as possible, but each one uses a completely different method for printing Hello World. Basic
Read the rest
ally, writes() vs puts() vs fwrite() vs putchar() vs printf() vs bare metal (no use of standard library or otherwise). It's pretty easy to see the pros and cons of each method, and the different requirements of each method, by reading the code. Of course C programmers have heard of each of these methods, but these samples show what's actually happening under the hood.
In RosettaGit – Solutions to tasks in more than 700 programming languages

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.