198 lines
		
	
	
	
		
			7.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			198 lines
		
	
	
	
		
			7.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<html lang="en">
							 | 
						||
| 
								 | 
							
								<head>
							 | 
						||
| 
								 | 
							
								<title>AVR Opcodes - Using as</title>
							 | 
						||
| 
								 | 
							
								<meta http-equiv="Content-Type" content="text/html">
							 | 
						||
| 
								 | 
							
								<meta name="description" content="Using as">
							 | 
						||
| 
								 | 
							
								<meta name="generator" content="makeinfo 4.7">
							 | 
						||
| 
								 | 
							
								<link title="Top" rel="start" href="index.html#Top">
							 | 
						||
| 
								 | 
							
								<link rel="up" href="AVR_002dDependent.html#AVR_002dDependent" title="AVR-Dependent">
							 | 
						||
| 
								 | 
							
								<link rel="prev" href="AVR-Syntax.html#AVR-Syntax" title="AVR Syntax">
							 | 
						||
| 
								 | 
							
								<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
							 | 
						||
| 
								 | 
							
								<!--
							 | 
						||
| 
								 | 
							
								This file documents the GNU Assembler "as".
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002,
							 | 
						||
| 
								 | 
							
								2006, 2007 Free Software Foundation, Inc.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Permission is granted to copy, distribute and/or modify this document
							 | 
						||
| 
								 | 
							
								under the terms of the GNU Free Documentation License, Version 1.1
							 | 
						||
| 
								 | 
							
								or any later version published by the Free Software Foundation;
							 | 
						||
| 
								 | 
							
								with no Invariant Sections, with no Front-Cover Texts, and with no
							 | 
						||
| 
								 | 
							
								Back-Cover Texts.  A copy of the license is included in the
							 | 
						||
| 
								 | 
							
								section entitled ``GNU Free Documentation License''.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								man end-->
							 | 
						||
| 
								 | 
							
								<meta http-equiv="Content-Style-Type" content="text/css">
							 | 
						||
| 
								 | 
							
								<style type="text/css"><!--
							 | 
						||
| 
								 | 
							
								  pre.display { font-family:inherit }
							 | 
						||
| 
								 | 
							
								  pre.format  { font-family:inherit }
							 | 
						||
| 
								 | 
							
								  pre.smalldisplay { font-family:inherit; font-size:smaller }
							 | 
						||
| 
								 | 
							
								  pre.smallformat  { font-family:inherit; font-size:smaller }
							 | 
						||
| 
								 | 
							
								  pre.smallexample { font-size:smaller }
							 | 
						||
| 
								 | 
							
								  pre.smalllisp    { font-size:smaller }
							 | 
						||
| 
								 | 
							
								  span.sc { font-variant:small-caps }
							 | 
						||
| 
								 | 
							
								  span.roman { font-family: serif; font-weight: normal; } 
							 | 
						||
| 
								 | 
							
								--></style>
							 | 
						||
| 
								 | 
							
								</head>
							 | 
						||
| 
								 | 
							
								<body>
							 | 
						||
| 
								 | 
							
								<div class="node">
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								<a name="AVR-Opcodes"></a>Previous: <a rel="previous" accesskey="p" href="AVR-Syntax.html#AVR-Syntax">AVR Syntax</a>,
							 | 
						||
| 
								 | 
							
								Up: <a rel="up" accesskey="u" href="AVR_002dDependent.html#AVR_002dDependent">AVR-Dependent</a>
							 | 
						||
| 
								 | 
							
								<hr><br>
							 | 
						||
| 
								 | 
							
								</div>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<h4 class="subsection">9.4.3 Opcodes</h4>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p><a name="index-AVR-opcode-summary-657"></a><a name="index-opcode-summary_002c-AVR-658"></a><a name="index-mnemonics_002c-AVR-659"></a><a name="index-instruction-summary_002c-AVR-660"></a>For detailed information on the AVR machine instruction set, see
							 | 
						||
| 
								 | 
							
								<a href="www.atmel.com/products/AVR">www.atmel.com/products/AVR</a>.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   <p><code>as</code> implements all the standard AVR opcodes. 
							 | 
						||
| 
								 | 
							
								The following table summarizes the AVR opcodes, and their arguments.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<pre class="smallexample">     <i>Legend:</i>
							 | 
						||
| 
								 | 
							
								        r   <span class="roman">any register</span>
							 | 
						||
| 
								 | 
							
								        d   <span class="roman">`ldi' register (r16-r31)</span>
							 | 
						||
| 
								 | 
							
								        v   <span class="roman">`movw' even register (r0, r2, ..., r28, r30)</span>
							 | 
						||
| 
								 | 
							
								        a   <span class="roman">`fmul' register (r16-r23)</span>
							 | 
						||
| 
								 | 
							
								        w   <span class="roman">`adiw' register (r24,r26,r28,r30)</span>
							 | 
						||
| 
								 | 
							
								        e   <span class="roman">pointer registers (X,Y,Z)</span>
							 | 
						||
| 
								 | 
							
								        b   <span class="roman">base pointer register and displacement ([YZ]+disp)</span>
							 | 
						||
| 
								 | 
							
								        z   <span class="roman">Z pointer register (for [e]lpm Rd,Z[+])</span>
							 | 
						||
| 
								 | 
							
								        M   <span class="roman">immediate value from 0 to 255</span>
							 | 
						||
| 
								 | 
							
								        n   <span class="roman">immediate value from 0 to 255 ( n = ~M ). Relocation impossible</span>
							 | 
						||
| 
								 | 
							
								        s   <span class="roman">immediate value from 0 to 7</span>
							 | 
						||
| 
								 | 
							
								        P   <span class="roman">Port address value from 0 to 63. (in, out)</span>
							 | 
						||
| 
								 | 
							
								        p   <span class="roman">Port address value from 0 to 31. (cbi, sbi, sbic, sbis)</span>
							 | 
						||
| 
								 | 
							
								        K   <span class="roman">immediate value from 0 to 63 (used in `adiw', `sbiw')</span>
							 | 
						||
| 
								 | 
							
								        i   <span class="roman">immediate value</span>
							 | 
						||
| 
								 | 
							
								        l   <span class="roman">signed pc relative offset from -64 to 63</span>
							 | 
						||
| 
								 | 
							
								        L   <span class="roman">signed pc relative offset from -2048 to 2047</span>
							 | 
						||
| 
								 | 
							
								        h   <span class="roman">absolute code address (call, jmp)</span>
							 | 
						||
| 
								 | 
							
								        S   <span class="roman">immediate value from 0 to 7 (S = s << 4)</span>
							 | 
						||
| 
								 | 
							
								        ?   <span class="roman">use this opcode entry if no parameters, else use next opcode entry</span>
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     1001010010001000   clc
							 | 
						||
| 
								 | 
							
								     1001010011011000   clh
							 | 
						||
| 
								 | 
							
								     1001010011111000   cli
							 | 
						||
| 
								 | 
							
								     1001010010101000   cln
							 | 
						||
| 
								 | 
							
								     1001010011001000   cls
							 | 
						||
| 
								 | 
							
								     1001010011101000   clt
							 | 
						||
| 
								 | 
							
								     1001010010111000   clv
							 | 
						||
| 
								 | 
							
								     1001010010011000   clz
							 | 
						||
| 
								 | 
							
								     1001010000001000   sec
							 | 
						||
| 
								 | 
							
								     1001010001011000   seh
							 | 
						||
| 
								 | 
							
								     1001010001111000   sei
							 | 
						||
| 
								 | 
							
								     1001010000101000   sen
							 | 
						||
| 
								 | 
							
								     1001010001001000   ses
							 | 
						||
| 
								 | 
							
								     1001010001101000   set
							 | 
						||
| 
								 | 
							
								     1001010000111000   sev
							 | 
						||
| 
								 | 
							
								     1001010000011000   sez
							 | 
						||
| 
								 | 
							
								     100101001SSS1000   bclr    S
							 | 
						||
| 
								 | 
							
								     100101000SSS1000   bset    S
							 | 
						||
| 
								 | 
							
								     1001010100001001   icall
							 | 
						||
| 
								 | 
							
								     1001010000001001   ijmp
							 | 
						||
| 
								 | 
							
								     1001010111001000   lpm     ?
							 | 
						||
| 
								 | 
							
								     1001000ddddd010+   lpm     r,z
							 | 
						||
| 
								 | 
							
								     1001010111011000   elpm    ?
							 | 
						||
| 
								 | 
							
								     1001000ddddd011+   elpm    r,z
							 | 
						||
| 
								 | 
							
								     0000000000000000   nop
							 | 
						||
| 
								 | 
							
								     1001010100001000   ret
							 | 
						||
| 
								 | 
							
								     1001010100011000   reti
							 | 
						||
| 
								 | 
							
								     1001010110001000   sleep
							 | 
						||
| 
								 | 
							
								     1001010110011000   break
							 | 
						||
| 
								 | 
							
								     1001010110101000   wdr
							 | 
						||
| 
								 | 
							
								     1001010111101000   spm
							 | 
						||
| 
								 | 
							
								     000111rdddddrrrr   adc     r,r
							 | 
						||
| 
								 | 
							
								     000011rdddddrrrr   add     r,r
							 | 
						||
| 
								 | 
							
								     001000rdddddrrrr   and     r,r
							 | 
						||
| 
								 | 
							
								     000101rdddddrrrr   cp      r,r
							 | 
						||
| 
								 | 
							
								     000001rdddddrrrr   cpc     r,r
							 | 
						||
| 
								 | 
							
								     000100rdddddrrrr   cpse    r,r
							 | 
						||
| 
								 | 
							
								     001001rdddddrrrr   eor     r,r
							 | 
						||
| 
								 | 
							
								     001011rdddddrrrr   mov     r,r
							 | 
						||
| 
								 | 
							
								     100111rdddddrrrr   mul     r,r
							 | 
						||
| 
								 | 
							
								     001010rdddddrrrr   or      r,r
							 | 
						||
| 
								 | 
							
								     000010rdddddrrrr   sbc     r,r
							 | 
						||
| 
								 | 
							
								     000110rdddddrrrr   sub     r,r
							 | 
						||
| 
								 | 
							
								     001001rdddddrrrr   clr     r
							 | 
						||
| 
								 | 
							
								     000011rdddddrrrr   lsl     r
							 | 
						||
| 
								 | 
							
								     000111rdddddrrrr   rol     r
							 | 
						||
| 
								 | 
							
								     001000rdddddrrrr   tst     r
							 | 
						||
| 
								 | 
							
								     0111KKKKddddKKKK   andi    d,M
							 | 
						||
| 
								 | 
							
								     0111KKKKddddKKKK   cbr     d,n
							 | 
						||
| 
								 | 
							
								     1110KKKKddddKKKK   ldi     d,M
							 | 
						||
| 
								 | 
							
								     11101111dddd1111   ser     d
							 | 
						||
| 
								 | 
							
								     0110KKKKddddKKKK   ori     d,M
							 | 
						||
| 
								 | 
							
								     0110KKKKddddKKKK   sbr     d,M
							 | 
						||
| 
								 | 
							
								     0011KKKKddddKKKK   cpi     d,M
							 | 
						||
| 
								 | 
							
								     0100KKKKddddKKKK   sbci    d,M
							 | 
						||
| 
								 | 
							
								     0101KKKKddddKKKK   subi    d,M
							 | 
						||
| 
								 | 
							
								     1111110rrrrr0sss   sbrc    r,s
							 | 
						||
| 
								 | 
							
								     1111111rrrrr0sss   sbrs    r,s
							 | 
						||
| 
								 | 
							
								     1111100ddddd0sss   bld     r,s
							 | 
						||
| 
								 | 
							
								     1111101ddddd0sss   bst     r,s
							 | 
						||
| 
								 | 
							
								     10110PPdddddPPPP   in      r,P
							 | 
						||
| 
								 | 
							
								     10111PPrrrrrPPPP   out     P,r
							 | 
						||
| 
								 | 
							
								     10010110KKddKKKK   adiw    w,K
							 | 
						||
| 
								 | 
							
								     10010111KKddKKKK   sbiw    w,K
							 | 
						||
| 
								 | 
							
								     10011000pppppsss   cbi     p,s
							 | 
						||
| 
								 | 
							
								     10011010pppppsss   sbi     p,s
							 | 
						||
| 
								 | 
							
								     10011001pppppsss   sbic    p,s
							 | 
						||
| 
								 | 
							
								     10011011pppppsss   sbis    p,s
							 | 
						||
| 
								 | 
							
								     111101lllllll000   brcc    l
							 | 
						||
| 
								 | 
							
								     111100lllllll000   brcs    l
							 | 
						||
| 
								 | 
							
								     111100lllllll001   breq    l
							 | 
						||
| 
								 | 
							
								     111101lllllll100   brge    l
							 | 
						||
| 
								 | 
							
								     111101lllllll101   brhc    l
							 | 
						||
| 
								 | 
							
								     111100lllllll101   brhs    l
							 | 
						||
| 
								 | 
							
								     111101lllllll111   brid    l
							 | 
						||
| 
								 | 
							
								     111100lllllll111   brie    l
							 | 
						||
| 
								 | 
							
								     111100lllllll000   brlo    l
							 | 
						||
| 
								 | 
							
								     111100lllllll100   brlt    l
							 | 
						||
| 
								 | 
							
								     111100lllllll010   brmi    l
							 | 
						||
| 
								 | 
							
								     111101lllllll001   brne    l
							 | 
						||
| 
								 | 
							
								     111101lllllll010   brpl    l
							 | 
						||
| 
								 | 
							
								     111101lllllll000   brsh    l
							 | 
						||
| 
								 | 
							
								     111101lllllll110   brtc    l
							 | 
						||
| 
								 | 
							
								     111100lllllll110   brts    l
							 | 
						||
| 
								 | 
							
								     111101lllllll011   brvc    l
							 | 
						||
| 
								 | 
							
								     111100lllllll011   brvs    l
							 | 
						||
| 
								 | 
							
								     111101lllllllsss   brbc    s,l
							 | 
						||
| 
								 | 
							
								     111100lllllllsss   brbs    s,l
							 | 
						||
| 
								 | 
							
								     1101LLLLLLLLLLLL   rcall   L
							 | 
						||
| 
								 | 
							
								     1100LLLLLLLLLLLL   rjmp    L
							 | 
						||
| 
								 | 
							
								     1001010hhhhh111h   call    h
							 | 
						||
| 
								 | 
							
								     1001010hhhhh110h   jmp     h
							 | 
						||
| 
								 | 
							
								     1001010rrrrr0101   asr     r
							 | 
						||
| 
								 | 
							
								     1001010rrrrr0000   com     r
							 | 
						||
| 
								 | 
							
								     1001010rrrrr1010   dec     r
							 | 
						||
| 
								 | 
							
								     1001010rrrrr0011   inc     r
							 | 
						||
| 
								 | 
							
								     1001010rrrrr0110   lsr     r
							 | 
						||
| 
								 | 
							
								     1001010rrrrr0001   neg     r
							 | 
						||
| 
								 | 
							
								     1001000rrrrr1111   pop     r
							 | 
						||
| 
								 | 
							
								     1001001rrrrr1111   push    r
							 | 
						||
| 
								 | 
							
								     1001010rrrrr0111   ror     r
							 | 
						||
| 
								 | 
							
								     1001010rrrrr0010   swap    r
							 | 
						||
| 
								 | 
							
								     00000001ddddrrrr   movw    v,v
							 | 
						||
| 
								 | 
							
								     00000010ddddrrrr   muls    d,d
							 | 
						||
| 
								 | 
							
								     000000110ddd0rrr   mulsu   a,a
							 | 
						||
| 
								 | 
							
								     000000110ddd1rrr   fmul    a,a
							 | 
						||
| 
								 | 
							
								     000000111ddd0rrr   fmuls   a,a
							 | 
						||
| 
								 | 
							
								     000000111ddd1rrr   fmulsu  a,a
							 | 
						||
| 
								 | 
							
								     1001001ddddd0000   sts     i,r
							 | 
						||
| 
								 | 
							
								     1001000ddddd0000   lds     r,i
							 | 
						||
| 
								 | 
							
								     10o0oo0dddddbooo   ldd     r,b
							 | 
						||
| 
								 | 
							
								     100!000dddddee-+   ld      r,e
							 | 
						||
| 
								 | 
							
								     10o0oo1rrrrrbooo   std     b,r
							 | 
						||
| 
								 | 
							
								     100!001rrrrree-+   st      e,r
							 | 
						||
| 
								 | 
							
								     1001010100011001   eicall
							 | 
						||
| 
								 | 
							
								     1001010000011001   eijmp
							 | 
						||
| 
								 | 
							
								</pre>
							 | 
						||
| 
								 | 
							
								   <!-- Copyright 2005 -->
							 | 
						||
| 
								 | 
							
								<!-- Free Software Foundation, Inc. -->
							 | 
						||
| 
								 | 
							
								<!-- This is part of the GAS manual. -->
							 | 
						||
| 
								 | 
							
								<!-- For copying conditions, see the file as.texinfo. -->
							 | 
						||
| 
								 | 
							
								</body></html>
							 | 
						||
| 
								 | 
							
								
							 |