Specifications
Table Of Contents
- Nios II Processor Reference Handbook
- Contents
- Chapter Revision Dates
- About This Handbook
- Section I. Nios II Processor
- 1. Introduction
- 2. Processor Architecture
- 3. Programming Model
- Introduction
- General- Purpose Registers
- Control Registers
- Operating Modes
- Exception Processing
- Memory and Peripheral Access
- Instruction Set Categories
- Referenced Documents
- Document Revision History
- 4. Instantiating the Nios II Processor in SOPC Builder
- Section II. Appendices
- 5. Nios II Core Implementation Details
- Introduction
- Device Family Support
- Nios II/f Core
- Nios II/s Core
- Nios II/e Core
- Referenced Documents
- Document Revision History
- 6. Nios II Processor Revision History
- 7. Application Binary Interface
- 8. Instruction Set Reference
- Introduction
- Word Formats
- Instruction Opcodes
- Assembler Pseudo- instructions
- Assembler Macros
- Instruction Set Reference
- add
- addi
- and
- andhi
- andi
- beq
- bge
- bgeu
- bgt
- bgtu
- ble
- bleu
- blt
- bltu
- bne
- br
- break
- bret
- call
- callr
- cmpeq
- cmpeqi
- cmpge
- cmpgei
- cmpgeu
- cmpgeui
- cmpgt
- cmpgti
- cmpgtu
- cmpgtui
- cmple
- cmplei
- cmpleu
- cmpleui
- cmplt
- cmplti
- cmpltu
- cmpltui
- cmpne
- cmpnei
- custom
- div
- divu
- eret
- flushd
- flushda
- flushi
- flushp
- initd
- initi
- jmp
- jmpi
- ldb / ldbio
- ldbu / ldbuio
- ldh / ldhio
- ldhu / ldhuio
- ldw / ldwio
- mov
- movhi
- movi
- movia
- movui
- mul
- muli
- mulxss
- mulxsu
- mulxuu
- nextpc
- nop
- nor
- or
- orhi
- ori
- rdctl
- ret
- rol
- roli
- ror
- sll
- slli
- sra
- srai
- srl
- srli
- stb / stbio
- sth / sthio
- stw / stwio
- sub
- subi
- sync
- trap
- wrctl
- xor
- xorhi
- xori
- Referenced Documents
- Document Revision History

Altera Corporation 8–7
October 2007 Nios II Processor Reference Handbook
Instruction Set Reference
Assembler
Macros
The Nios II assembler provides macros to extract halfwords from labels
and from 32-bit immediate values. Table 8–4 lists the available macros.
These macros return 16-bit signed values or 16-bit unsigned values
depending on where they are used. When used with an instruction that
requires a 16-bit signed immediate value, these macros return a value
ranging from –32768 to 32767. When used with an instruction that
requires a 16-bit unsigned immediate value, these macros return a value
ranging from 0 to 65535.
Table 8–4. Assembler Macros
Macro Description Operation
%lo(immed32)
Extract bits [15..0] of immed32 immed32 & 0xffff
%hi(immed32)
Extract bits [31..16] of immed32 (immed32 >> 16) & 0xffff
%hiadj(immed32)
Extract bits [31..16] and adds bit 15 of immed32 ((immed32 >> 16) & 0xffff) +
((immed32 >> 15) & 0x1)
%gprel(immed32)
Replace the immed32 address with an offset
from the global pointer
(1)
immed32 –_gp
Note to Ta bl e 8 – 4 :
(1) See the Application Binary Interface chapter of the Nios II Processor Reference Handbook for more
information about global pointers.