Hello-World iOS App in Assembly

gist.github.com

167 points by pabs3 19 hours ago


WillAdams - 6 hours ago

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)

sanskarix - 16 hours 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.

herodotus - 7 hours 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.

JimDabell - 18 hours ago

There is also an iOS app implemented in C here:

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

ChrisMarshallNY - 11 hours 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.

iMario - 7 hours ago

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

anta40 - 18 hours ago

Even better if build steps are provided

starmole - 19 hours ago

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

avidphantasm - 8 hours ago

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

huflungdung - 11 hours ago

[dead]

azhenley - 16 hours ago

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

Ecco - 9 hours 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.