• Stars
    star
    559
  • Rank 79,673 (Top 2 %)
  • Language
    Assembly
  • Created over 10 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An iOS app in assembly

An iOS App In Assembly

It's just what it sounds like. Hand written, delicately debugged, well-commented, ARMv7 assembly. Work on this started before ARM64 devices were a thing, so support for them may come in the future.

Goals

Rather simple, make an app that compiles, runs, and draws something on the screen, using only hand written assembly. The only times I used the assembly output of clang was to determine the proper .sections for things, to let lldb be able to debug my functions.

The basic structure of this app is based on my iOS App In Pure C, with a 'main' file which contains all the set-up code, and two supporting files, for each of the classes (AppDelegate, and View).

The drawing code is all done using CoreGraphics, and displays the string 'Hello, Assembly!' in red on the screen. Here's a screenshot of the app running on my iPhone 5S:

Notes

If running the app with any accessibility features enabled (switch control, guided access, etc.) the app crashes when the runtime tries to see if my App Delegate responds to the selector accessibilityInitialize, and I'm not entirely sure why. This may be fixed in the future.

Resources

And, as always, the mighty power of Google.

License

Copyright 2014 Richard J. Ross III.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.