📄 index.html
字号:
<!doctype html public "-//W3C//DTD HTML 3.2//EN"><html><head><title>ARM ASSEMBLER PROGRAMMING; tutorial, resources, and examples [OFF LINE VERSION]</title><meta name="description" content="Contains information on learning to program ARM assembler; while mainly concentating on the assembler built into BBC BASIC, there is coverage for APCS; common code is described with examples, utilities, applications, relocatable modules, and so on."><meta name="keywords" content="program, arm, strongarm, memc, vidc, oimd, assembler, basic, movs, apcs, risc os, stmfd, strb, sourcecode, aof, aif"><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><meta http-equiv="content-language" content="en"><meta name="resource-type" content="document"><meta name="copyright" content="This document copyright 2002 by Richard Murray. Use for non-profit and education purposes explicitly granted."><meta name="author" content="Richard Murray"><meta name="rating" content="general"><meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://www.heyrick.co.uk/assembler/" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.heyrick.co.uk/assembler/" r (n 0 s 0 v 0 l 0))'></head><!-- /assembler/index.html --><!-- --><!-- (C) Copyright 2002 Richard Murray --><!-- Designed by Richard Murray --><!-- rmurray@heyrick.co.uk --><!-- --><!-- --><!-- Index: --><!-- 01 introduction --><!-- 02 the instruction set --><!-- 03 the arm processor --><!-- 04 the basic assembler --><!-- 05 relocatable modules --><!-- 06 useful hints --><!-- 08 apcs --><!-- 09 32-bit operation --><!-- 10 mathematics co-processor --><!-- 12 hardware --><!-- 14 hackery --><!-- 15 examples --><!-- 16 opinion --><!-- --><body bgcolor="#f0f0f0" text="#000000" link="#0022dd" vlink="#002288"><map name="ilnk"><area shape="rect" href="#01" coords="16,8,78,22"><area shape="rect" href="#02" coords="16,22,108,35"><area shape="rect" href="#03" coords="15,35,108,45"><area shape="rect" href="#04" coords="15,45,115,58"><area shape="rect" href="#05" coords="15,59,117,71"><area shape="rect" href="#06" coords="15,72,76,81"><area shape="rect" href="#08" coords="132,71,160,83"><area shape="rect" href="#09" coords="15,81,95,92"><area shape="rect" href="#10" coords="15,92,141,104"><area shape="rect" href="#12" coords="15,104,66,118"><area shape="rect" href="#14" coords="81,71,125,83"><area shape="rect" href="#15" coords="15,120,65,131"><area shape="rect" href="#archives" coords="15,131,64,142"></map><h1 align="center"><font color="#800080">ARM ASSEMBLER [OFF-LINE VERSION]</font></h1><font size = "-1">If a search engine brought you here, and you are looking for x86 assembler,then you are VERY much in the wrong place. Instead, you may find this resource useful .....<a href="http://webster.cs.ucr.edu/">http://webster.cs.ucr.edu/</a> <font color = "red" size = "-1">[EXTERNAL LINK]</font>.</font><p><font size = "-1">These documents relate to the low-power high-performance<a href="http://www.arm.com/">ARM</a> <font color = "red" size = "-1">[EXTERNAL LINK]</font> processors used in PDAs, mobile phones, Gameboy Advance,and of course the RISC OS computer range (formerly made by Acorn Computers, Cambridge, UK). Alot of the detail relates to programming the ARM within the RISC OS environment, but it shouldalso serve as a general resource for those programming the ARM under any system. Please note,however, that the 'Thumb' instruction set is not described.</font><p> <p><center><img src="../images/assembler/cpus.jpeg" border=2 width=360 height=254 alt="Image of CPUs; 25K"><br><font size=2><i>In front, an ARM610 (33MHz) processor and support circuitry on a RiscPCprocessor card.<br> The RiscPC can accept two processors, the card behind the ARM being anIntel 486SXL-40<br> also clocked at 33MHz. Note the incredible size difference between thetwo processors.<br></i></font></center><p><center><img src="../images/assembler/sidebyside.jpeg" border=2 width=320 height=181 alt="Image of CPUs; 16K"><br><font size=2><i>On the left, an ARM710 processor card with a British 10 pence coin to give you anidea of size.<br>On the right, the original series 80486 co-processor.<br>It gets rather hot, but not hot enough to require a heatsink or fan.<br>The ARM, on the other hand, gets most of its heat simply by being near the 486!<br>The other big chip on the co-processor card is the ASIC, a device to munge the 80486 I/O into<br>something that can interface with the ARM processor bus.<br></i></font></center><p><p> <p><a name="01"></a><h2>Introduction</h2><ul> <li><a href="rationale.html">Rationale</a></ul><p><ul> <li><a href="news.html">News</a><br> There are no 'new!' markers here,<br> so be sure to read this to see what's new.</ul><p><ul> <li><a href="sanity.html">Sanity warning</a></ul><p><ul> <li><a href="funnies.html">Funnies</a></ul><p><ul> <li><a href="notation.html">A quick note on the notation used</a></ul><p><ul> <li><a href="strtrkt.html">Your starter kit</a></ul><p> <p><ul> <li><b><a href="intro.html">An introduction to assembler</a></b></ul><p> <p> <p><center><img src="arm.gif" usemap="#ilnk" width=166 height=147 alt="logo" border=0></center><a name="02"></a><h2>The instruction set</h2><ul> <li><a href="qfinder.html">Instruction Quick Finder</a></ul><p><ul> <li><a href="regs.html">Registers and processor modes</a></ul><p><ul> <li><a href="psr.html">The Processor Status Register and conditional execution</a></ul><p><ul> <li><a href="shift.html">Shifting</a></ul><p><ul> <li><a href="swi.html">SWIs</a></ul><p><ul> <li><a href="pseudo.html">Pseudo-instructions</a></ul><p><ul> <li><a href="bl.html">Branch instructions</a></ul><p><ul> <li><a href="mov.html">Arithmetic and Logical instructions</a></ul><p><ul> <li><a href="mul.html">Multiplication instructions</a></ul><p><ul> <li><a href="cmp.html">Comparison instructions</a></ul><p><ul> <li><a href="str.html">Register Load and Store instructions</a></ul><p><p> <p> <p><center><img src="arm.gif" usemap="#ilnk" width=166 height=147 alt="logo" border=0></center><a name="03"></a><h2>The ARM processor</h2><ul> <li><a href="history.html">Where the ARM came from</a></ul><p><ul> <li><a href="wfind.html">Where might you find an ARM?</a></ul><p><ul> <li><a href="riscvcisc.html">RISC vs CISC</a></ul><p><ul> <li><a href="proctype.html">ARM processor types, and differences</a></ul><p> <p><ul> <li><a href="pipeline.html">The pipeline</a></ul><p><ul> <li><a href="stack.html">The stack</a></ul><p><ul> <li><a href="memmng.html">Memory Management</a></ul><p><ul> <li><a href="memmult.html">Memory Schemes and Multitasking</a></ul><p><ul> <li><a href="coprocmnd.html">Processor setup via co-processor 15</a></ul><p> <p> <p><center><img src="arm.gif" usemap="#ilnk" width=166 height=147 alt="logo" border=0></center><a name="04"></a><h2>The BASIC assembler</h2><ul> <li><a href="basic.html">Writing assembler in BASIC</a></ul><p><ul> <li><a href="opt.html">OPT settings</a></ul><p><ul> <li><a href="call.html">CALL and USR (in BASIC)</a></ul><p><ul> <li><a href="basbits.html">Special facilities available from BASIC</a></ul><p><ul> <li><a href="convbas.html">Converting BASIC to assembler</a></ul><p><ul> <li><a href="debugger.html">The debugger</a></ul><p> <p> <p><center><img src="arm.gif" usemap="#ilnk" width=166 height=147 alt="logo" border=0></center><a name="05"></a><h2>Relocatable Modules</h2><ul> <li><a href="modcode.html">Introduction to module code</a></ul><p> <p> <p><center><img src="arm.gif" usemap="#ilnk" width=166 height=147 alt="logo" border=0></center><a name="06"></a><h2>Useful hints</h2><ul> <li><a href="tandt.html">Tips and Tricks</a></ul><p><ul> <li><a href="hints.html">Hints for programming</a></ul><p> <p> <p><center><img src="arm.gif" usemap="#ilnk" width=166 height=147 alt="logo" border=0></center><a name="08"></a><h2>APCS</h2><ul> <li><a href="apcsintro.html">What is APCS?</a></ul><p><ul> <li><a href="apcsasm.html">Opinions on various DDE assemblers</a></ul><p><ul> <li><a href="apcswrite.html">Basic introduction to writing APCS code</a></ul><p><ul> <li><a href="apcsnot.html">Using the DDE but not using APCS...</a></ul><p><ul> <li><a href="apcsobj.html">Useful <i>objasm</i> macros</a></ul><p> <p> <p><center><img src="arm.gif" usemap="#ilnk" width=166 height=147 alt="logo" border=0></center><a name="09"></a><h2>32-bit operation</h2><ul> <li><a href="32bit.html">A brief look at 32 bit ARM - the <i>next</i> generation of ARM processors</a></ul><p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -