Learn Assembly – LASW (Firmware Foundation)

Will Rust replace C++ completely ?
Will C++ replace C completely?
None of these languages claim to replace Assembly…๐Ÿ˜Š because Assembly is a close friend of the CPU. …… Yes ? How many architectures it has done so far ?

Here is one such example . ARM bare-metal with naked attribute of C . I had used this attribute with PowerPC earlier. Just to use C at the Reset vector , it used naked . I wish it could be __attribute__bare ๐Ÿ˜Š

Still you can notice Assembly code embedded in C.


There are a variety of Operating systems , RTOS and bootloader but no one can replace basic startup code which initializes the infrastructure for HLL .

Question: Is it possible to have non-zero variables in .bss section ? Hint : Startup-Code

Let’s explore Assembly basics , Thumb programming and start-up code in the beginning of September. We will do one workshop during Sunday. We will provide a special discount for advance booking this week.

C is from Village: Not much restriction but one must know how to survive in the Village. It is the bare-metal of programming languages.

C++ is from city . There are some restrictions like traffic rules but still people may skip at some places. You must have knowledge about city rules .

Rust is from Metro city or Capital. You may be fined if you cross red light even by mistake. Hope it will not rust in the era of Python.

Every language has it’s advantages and disadvantages.

Let’s go for tracking with Assembly and add one extra unique skill in your portfolio. Just learn it.
Fees : 1K INR including GST .

How to Register ?

LASW workshop can be booked in advance by paying fees directly at RazorPay link 24hours ahead of the schedule date. Enrolled folks will get receipt automatically after payment. We will send invite link just one day before the actual live session date. Please note that this workshop is for 32bit ARM Cortex M device.

When will be next live session ?

Contact as per information given below

If you missed it , We will schedule live session within two weeks of workshop purchase.

Email: info@embedkari.com WhatsApp: +91 73493 50911

Live session agenda (Recording available)

  • Linker script with STM32 as use case
  • Cortex -M Memory and Programming Model
  • Assembly basics
  • Writing first Assembly program
  • Startup code latency in MCUs
  • Assembly program concepts using Embedded C

Open Discussion

  • Importance of Assembly in learning C . Check this link
  • Importance of learning Assembly in debugging
  • Pre-boot loader and Microcode
  • Importance of Assembly in Semiconductor career . You might have noticed preference to Assembly level programming in multiple semiconductor JDs. We will discuss why it is important in semiconductor. ?

Pre-Recorded videos from previous workshop (with 3 months access)

Status Register

๐™’๐™๐™–๐™ฉ ๐™ž๐™จ ๐™ฎ๐™ค๐™ช๐™ง ๐™˜๐™ช๐™ง๐™ง๐™š๐™ฃ๐™ฉ ๐™จ๐™ฉ๐™–๐™ฉ๐™ช๐™จ ?
When we talk about embedded systems, machine status registers are fundamental to managing and monitoring the processorโ€™s state during program execution. These registers control critical aspects like the status of operations, privilege levels, and interrupt management.

Letโ€™s take a look at how different architectures implement these registers, including Cortex-M, PowerPC and 8051

๐‘จ๐‘น๐‘ด (๐‘บ๐‘ป๐‘ด32 ๐‘ช๐’๐’“๐’•๐’†๐’™-๐‘ด) – ๐‘ท๐’“๐’๐’ˆ๐’“๐’‚๐’Ž ๐‘บ๐’•๐’‚๐’•๐’–๐’” ๐‘น๐’†๐’ˆ๐’Š๐’”๐’•๐’†๐’“ (๐‘ท๐‘บ๐‘น)
N (Negative), Z (Zero), C (Carry), and V (Overflow) flags indicate the results of the latest operations.
IPSR (Interrupt Status) and EPSR (Execution Status) help manage interrupt handling and the current execution state.

๐‘ท๐’๐’˜๐’†๐’“๐‘ท๐‘ช – ๐‘ด๐’‚๐’„๐’‰๐’Š๐’๐’† ๐‘บ๐’•๐’‚๐’•๐’† ๐‘น๐’†๐’ˆ๐’Š๐’”๐’•๐’†๐’“ (๐‘ด๐‘บ๐‘น)
EE (External Interrupt Enable), ME (Machine Check Enable), and RI (Recoverable Interrupt) flags manage interrupts.
Privilege Level (PR) and Memory Translation (DR/IR) provide memory access control and protection.

8051 – ๐‘ท๐’“๐’๐’ˆ๐’“๐’‚๐’Ž ๐‘บ๐’•๐’‚๐’•๐’–๐’” ๐‘พ๐’๐’“๐’… (๐‘ท๐‘บ๐‘พ)
Flags like CY (Carry), AC (Auxiliary Carry), and OV (Overflow) manage arithmetic and logical operation results.
The RS1 and RS0 bits select working register banks, allowing flexibility with limited resources.

Machine status registers play an essential role in every architecture, regardless of complexity. They enable processors to:
– Track the outcomes of operations (arithmetic flags),
– Control interrupt behavior,
– Manage privilege and memory access levels.

Understanding these status registers is key for anyone working in embedded systems !

Follow Embedkari on LinkedIn

1 thought on “Learn Assembly – LASW (Firmware Foundation)”

  1. Pingback: Virtual Internship - Embedkari

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top

Discover more from

Subscribe now to keep reading and get access to the full archive.

Continue reading