Hello-World iOS App in Assembly

pabs3 | 205 points

For folks who are curious about this sort of thing and want an approachable starting point, I would recommend:

https://www.goodreads.com/book/show/44882.Code

It would be way cool to see an actual application which wanted this sort of speed optimization --- the last significant assembly language program I can recall using was WriteNow, which was ~100,000 lines of assembly and to this day is my favourite word-processor (well, the NeXT version --- the Mac, even v2.0 suffered in comparison for not having access to Display PostScript and Services).

Really wish that there was a writeup of it at folklore.org --- unfortunately, it only gets a single mention:

https://www.folklore.org/The_Grand_Unified_Model_The_Finder....

(or that there was an equivalent site for the early history of NeXT)

WillAdams | 3 days ago

This kind of thing is how you actually learn what's under the hood. Everyone's building with React Native and Flutter, which is fine until something breaks. Then you're stuck Googling black magic. Starting from assembly teaches you the real cost of abstraction.

sanskarix | 4 days ago

There is also an iOS app implemented in C here:

https://stackoverflow.com/a/10290255/8427

JimDabell | 4 days ago

When I was in second or third year of computer science in 1971 or '72, we (of course) learned IBM 360 assembler, but we also had to design a simple binary adder using AND OR and XOR gates. All on paper - no need for any soldering or electronics, which I regret. I cannot remember how many bits of input - probably 4 but may have been 6. But I did do quite a bit of asm programming, including a routine for calculating square roots using Chebyschev polynomials and newtons algorithm.

herodotus | 3 days ago

Very cool, if impractical (it’s likely that you’d never get an ASM app through the App Store Approval process).

ARM Assembly is a much more Byzantine creature, than the old 8- and 16-bit versions I used, way back in the Pleistocene.

I’m always a fan of starting from the “bare metal,” to learn, but these days, it’s a long trip. When I was just a wee sprog, it was only a couple of steps away.

ChrisMarshallNY | 4 days ago

Would love to see equivalent in C, not ObjectiveC... plain C.

iMario | 3 days ago

Even better if build steps are provided

anta40 | 4 days ago

Super cool! Would love to see the build/deploy steps needed.

starmole | 4 days ago

Looks more sensible than having to use XCode and Apple's atrocious developer documentation.

avidphantasm | 3 days ago

[dead]

huflungdung | 3 days ago

I’m guessing even this still requires that I use XCode.

azhenley | 4 days ago

Feels like a disassembly of a boilerplate app, as opposed to handcrafted, minimal assembly code.

For instance I’m pretty sure the autorelease pool is unnecessary as long as you don’t use the autorelease mechanism of Objective-C, which you’re most likely not going to do if you’re writing assembly in the first place.

Ecco | 3 days ago