CAS Community Forums - DW - MAR 2016


Mar 27 2016, 12:06 Isn't the micro:bit quite a limited device?

There is a built-in ARM assembler inside TouchDevelop, which runs inside the browser, so can be used without downloading anything and without being tethered to the internet.

Read about it here on the Microsoft research pages…

[edited for anonymity]

The NeoPixel library that Microsoft Research wrote is written directly in ARM assembly language inside Touch Develop, and you could ‘discover’ this yourself if you followed your nose from there.


Then select NeoPixel from the palette, press GOTO and then press EDIT LIBRARY and you will see the full ARM assembly language code that drives the NeoPixels.

One of the things that I really like about the TouchDevelop language is the ability to keep clicking down into more and more detail. Not only can you click into the detail of the Game library and see how that is coded, but you can click-down into the detail of the NeoPixel library and see the assembler that makes that work.

For completeness, the current scriptid of the NeoPixel library is:

If you click on the above link and press EDIT CODE, you will see the ARM assembly language driver there in front of your very eyes.

[edited for anonymity]

Regarding ‘limited instruction set’ - please read the Microsoft Research blog link above. The micro:bit runs the ARM M0 in ‘thumb’ mode which is a compressed and limited 16 bit instruction set. Think of it as a ‘real’ LMC. The Microsoft blog explains this very well and goes into each instruction type.

Article Source: CAS Community Forums

Original Page:

Imported: 17 Oct 2016

Original Author: David Whale (permission to reuse here granted by author)

Anonymity Check: Passed (with edits)