<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://home.roboticlab.eu/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://home.roboticlab.eu/feed.php">
        <title>Robotic &amp; Microcontroller Educational Knowledgepage - Network of Excellence - en:multiasm:paarm</title>
        <description></description>
        <link>https://home.roboticlab.eu/</link>
        <image rdf:resource="https://home.roboticlab.eu/_media/wiki/logo.png" />
       <dc:date>2026-04-04T16:34:00+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_1?rev=1741327442&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_2?rev=1772202419&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_3?rev=1772201084&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_4?rev=1772201354&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_5?rev=1772201830&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_6?rev=1772202192&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_7?rev=1772202609&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_8?rev=1764856259&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_9?rev=1772202761&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_10?rev=1772203686&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_11?rev=1764885736&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_12?rev=1772204122&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_13?rev=1727468988&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_14?rev=1727469012&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_15?rev=1765189992&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://home.roboticlab.eu/_media/wiki/logo.png">
        <title>Robotic & Microcontroller Educational Knowledgepage - Network of Excellence</title>
        <link>https://home.roboticlab.eu/</link>
        <url>https://home.roboticlab.eu/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_1?rev=1741327442&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-07T06:04:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Overview of ARM and Mobile Device Architecture</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_1?rev=1741327442&amp;do=diff</link>
        <description>Overview of ARM and Mobile Device Architecture

Now you may realize that there is more than one assembly language type. The most widely used assembly language types are ARM, MIPS, and x86. New architectures will come, and they will replace the old ones, just because they may have reduced power consumption, or silicon die size. Another push for new CPU architecture is malware that uses the architecture features against users, to steal their data. Such malware, like “Spectre” and “Meltdown”, perfo…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_2?rev=1772202419&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:26:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ARM Assembly Language Specifics</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_2?rev=1772202419&amp;do=diff</link>
        <description>ARM Assembly Language Specifics

Before starting programming, it&#039;s good to know how to add comments to our newly created code and the syntax specifics. This mainly depends on the selected compiler. All code examples provided will be written in GNU ARM ASM. {</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_3?rev=1772201084&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:04:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Registers</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_3?rev=1772201084&amp;do=diff</link>
        <description>Registers

The CPU registers are the closest place to the processor to store the data. However, not all registers are meant to store data. There might be more specialised registers to configure the processor, or additional modules for it. Microcontrollers have integrated special peripherals to perform communication tasks, convert analogue voltage signals into digital values, and vice versa, and many other peripherals. Each of them has its dedicated registers to store configuration and data. Thes…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_4?rev=1772201354&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:09:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Data Types and Encoding</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_4?rev=1772201354&amp;do=diff</link>
        <description>Data Types and Encoding

Higher-level programming languages define several data types; some languages don’t need to determine the data type because during program compilation (or interpretation), the value type is automatically assigned to them. The first type of division can be made between real and integer numbers. Then the integers can also be divided into only positive values and the values that can be positive or negative. The remaining division can be performed by determining how many byte…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_5?rev=1772201830&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:17:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Addressing Modes</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_5?rev=1772201830&amp;do=diff</link>
        <description>Addressing Modes

The ARMv8 has simple addressing modes based on load and store principles. ARM cores perform Arithmetic Logic Unit (ALU) operations only on registers. The only supported memory operations are the load (which reads data from memory into registers) or store (which writes data from registers to memory). By use of LDR/STR instructions and their available options, all the data must be loaded in the general-purpose registers before the operations on them can be performed. Multiple add…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_6?rev=1772202192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:23:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Basic Instructions and Operations</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_6?rev=1772202192&amp;do=diff</link>
        <description>Basic Instructions and Operations

Most of the program code consists of basic instructions that perform arithmetic operations, move data, perform logical operations, and control I/O digital lines, among other tasks. This section provides an introduction to the basic instructions of the ARM v8 instruction set.</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_7?rev=1772202609&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:30:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Procedures and Functions Call Standards</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_7?rev=1772202609&amp;do=diff</link>
        <description>Procedures and Functions Call Standards

There is no difference between procedures and functions in assembler. The distinction is more about their purpose and structure - functions usually return values and are often called from multiple places. Procedures, on the other hand, are often more focused on a specific task and typically do not return a value. In this section, we will use functions, as this term is commonly used in other programming languages as well. The function is a labelled block o…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_8?rev=1764856259&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-04T13:50:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Compatibility for Compilers and OSes</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_8?rev=1764856259&amp;do=diff</link>
        <description>Compatibility for Compilers and OSes

So, as the Raspberry Pi 5 uses a 64-bit ARMv8.2A CPU (Cortex-A76), it supports the AArch64 instruction set. That means that all assembler compilers can be used that target the AArch64 instruction set. The Raspberry Pi 5</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_9?rev=1772202761&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:32:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Peripheral Management in RPi</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_9?rev=1772202761&amp;do=diff</link>
        <description>Peripheral Management in RPi

The Raspberry Pi has ported out some General-Purpose Input/Output (GPIO) lines. Several lines share functionality across the board&#039;s peripherals. To access peripherals like GPIO, they must be enabled in the Raspberry Pi 5</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_10?rev=1772203686&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:48:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Advanced Assembly Programming</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_10?rev=1772203686&amp;do=diff</link>
        <description>Advanced Assembly Programming

ARM processors are more capable than just toggling a GPIO pin or sending data through communication interfaces. Data processing requires more computational power than can be imagined, and it is not simply about ADD or SUB</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_11?rev=1764885736&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-04T22:02:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vectorisation</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_11?rev=1764885736&amp;do=diff</link>
        <description>Vectorisation

With ARMv8.2, the scalable vector extension is introduced, and later, with ARMv9.2, the scalable matrix extension is introduced. They share a common technique and idea; the difference is that a vector operates on one-dimensional data, whereas a matrix operates on two-dimensional data.</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_12?rev=1772204122&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-27T14:55:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Assembly Code Optimisation</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_12?rev=1772204122&amp;do=diff</link>
        <description>Assembly Code Optimisation

Assembler code is assembled into a single object code. Compilers, instead, take high-level language code and convert it to machine code. And during compilation, the code may be optimised in several ways. For example, there are many ways to implement statements, FOR loops or Do-While loops in the assembler. There are some good hints for optimising the assembler code as well, but these are just hints for the programmer.</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_13?rev=1727468988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-27T20:29:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Security and Cryptography</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_13?rev=1727468988&amp;do=diff</link>
        <description>Security and Cryptography</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_14?rev=1727469012&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-27T20:30:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Cross-Platform Development</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_14?rev=1727469012&amp;do=diff</link>
        <description>Cross-Platform Development</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_15?rev=1765189992&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-08T10:33:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Energy Efficient Coding</title>
        <link>https://home.roboticlab.eu/en/multiasm/paarm/chapter_5_15?rev=1765189992&amp;do=diff</link>
        <description>Energy Efficient Coding

Some special instructions are meant to put the processor into sleep modes and wait for an event to occur. The processor can be woken up by an interrupt or by an event. In these modes, the code may be explicitly created to initialise interrupts and events, and to handle them. After that, the processor may be put into sleep mode and remain asleep unless an event or interrupt occurs. The following code example can be used only in bare-metal mode – without an</description>
    </item>
</rdf:RDF>
