1 INTRODUCTION
 Figure 1-0.
 Table 1-0.
 Listing 1-0.




Purpose
 The ADSP-219x DSP Instruction Set Reference provides assembly syntax
 information for the ADSP-219x Digital Signal Processor (DSP). The syn-
 tax descriptions cover instructions that execute within the DSP’s processor
 core (processing elements, program sequencer, and data address genera-
 tors). For architecture and design information on the DSP, see the
 ADSP-219x/2191 DSP Hardware Reference.


Audience
 DSP system designers and programmers who are familiar with signal pro-
 cessing concepts are the primary audience for this manual. This manual
 assumes that the audience has a working knowledge of microcomputer
 technology and DSP-related mathematics.
 DSP system designers and programmers who are unfamiliar with signal
 processing can use this manual, but should supplement this manual with
 other texts, describing DSP techniques.
 All readers, particularly programmers, should refer to the DSP’s develop-
 ment tools documentation for software development information. For
 additional suggested reading, see “For More Information About Analog
 Products” on page 1-6.




                       ADSP-219x DSP Instruction Set Reference          1-1
Contents Overview




Contents Overview
      This reference presents instruction information organized by the type of
      the instruction. Instruction types relate to the machine language opcode
      for the instruction. On this DSP, the opcodes categorize the instructions
      by the portions of the DSP architecture that execute the instructions. The
      following chapters cover the different types of instructions:
         • “Instruction Set Summary” on page 2-1—This chapter provides a
           syntax summary of all instructions and describes the conventions
           that are used on the instruction reference pages.
         • “ALU Instructions” on page 3-1—These instruction specify opera-
           tions that occur in the DSP’s ALU.
         • “MAC Instructions” on page 4-1—These instructions specify oper-
           ations that occur in the DSP’s Multiply–Accumulator.
         • “Shifter Instructions” on page 5-1—These instructions specify
           operations that occur in the DSP’s Shifter.
         • “Multifunction Instructions” on page 6-1—These instructions
           specify parallel, single-cycle operations.
         • “Data Move Instructions” on page 7-1—These instructions specify
           memory and register access operations.
         • “Program Flow Instructions” on page 8-1—These instructions spec-
           ify program sequencer operations.
         • “Instruction Opcodes” on page 9-1—This chapter lists the instruc-
           tion encoding fields for all instructions.
      Each of the DSP’s instructions is specified in this text. The reference page
      for an instruction shows the syntax of the instruction, describes its func-
      tion, gives one or two assembly-language examples, and identifies fields of
      its opcode. The instructions are referred to by type, ranging from 1 to 37.




1-2        ADSP-219x DSP Instruction Set Reference
                                                              Introduction




 These types correspond to the opcodes that ADSP-219x DSPs recognize,
 but are for reference only and have no bearing on programming.
 Some instructions have more than one syntactical form; for example,
 instruction “Type 9: Compute” on page 9-27 has many distinct forms.
 Many instructions can be conditional. These instructions are prefaced by
 IF COND; for example:

    If COND compute;

 In a conditional instruction, the execution of the entire instruction is
 based on the specified condition.


Development Tools
 The ADSP-219x is supported by VisualDSP®, an easy-to-use project
 management environment, comprised of an Integrated Development
 Environment (IDE) and Debugger. VisualDSP lets you manage projects
 from start to finish from within a single, integrated interface. Because the
 project development and debug environments are integrated, you can
 move easily between editing, building, and debugging activities.
 Flexible Project Management. The IDE provides flexible project manage-
 ment for the development of DSP applications. The IDE includes access
 to all the activities necessary to create and debug DSP projects. You can
 create or modify source files or view listing or map files with the IDE Edi-
 tor. This powerful Editor is part of the IDE and includes multiple
 language syntax highlighting, OLE drag and drop, bookmarks, and stan-
 dard editing operations such as undo/redo, find/replace, copy/paste/cut,
 and goto.
 Also, the IDE includes access to the C Compiler, C Runtime Library,
 Assembler, Linker, Loader, Simulator, and Splitter. You specify options
 for these Tools through Property Page dialogs. Property Page dialogs are
 easy to use, and make configuring, changing, and managing your projects



                       ADSP-219x DSP Instruction Set Reference              1-3
Development Tools




      simple. These options control how the tools process inputs and generate
      outputs, and have a one-to-one correspondence to the tools’ command
      line switches. You can define these options once, or modify them to meet
      changing development needs. You can also access the Tools from the oper-
      ating system command line if you choose.
      Greatly Reduced Debugging Time. The Debugger has an easy-to-use,
      common interface for all processor simulators and emulators available
      through Analog Devices and third parties or custom developments. The
      Debugger has many features that greatly reduce debugging time. You can
      view C source interspersed with the resulting Assembly code. You can pro-
      file execution of a range of instructions in a program; set simulated watch
      points on hardware and software registers, program and data memory; and
      trace instruction execution and memory accesses. These features enable
      you to correct coding errors, identify bottlenecks, and examine DSP per-
      formance. You can use the custom register option to select any
      combination of registers to view in a single window. The Debugger can
      also generate inputs, outputs, and interrupts so you can simulate real
      world application conditions.
      Software Development Tools. Software Development Tools, which sup-
      port the ADSP-219x Family, allow you to develop applications that take
      full advantage of the DSP architecture, including shared memory and
      memory overlays. Software Development Tools include C Compiler, C
      Runtime Library, DSP and Math Libraries, Assembler, Linker, Loader,
      Simulator, and Splitter.
      C Compiler & Assembler. The C Compiler generates efficient code that is
      optimized for both code density and execution time. The C Compiler
      allows you to include Assembly language statements inline. Because of
      this, you can program in C and still use Assembly for time-critical loops.
      You can also use pretested Math, DSP, and C Runtime Library routines to
      help shorten your time to market. The ADSP-219x Family Assembly lan-
      guage is based on an algebraic syntax that is easy to learn, program, and




1-4        ADSP-219x DSP Instruction Set Reference
                                                            Introduction




debug. The add instruction, for example, is written in the same manner as
the actual equation (for example, AR = AX0 + AY0;).
Linker & Loader. The Linker provides flexible system definition through
Linker Description Files (.LDF). In a single LDF, you can define different
types of executables for a single or multiprocessor system. The Linker
resolves symbols over multiple executables, maximizes memory use, and
easily shares common code among multiple processors. The Loader sup-
ports creation of host (8- or 16-bit) port, SPI port, UART port, and
PROM boot images. Along with the Linker, the Loader allows a variety of
system configurations with smaller code and faster boot time.
Simulator. The Simulator is a cycle-accurate, instruction-level simulator
— allowing you to simulate your application in real time.
3rd-Party Extensible. The VisualDSP environment enables third-party
companies to add value using Analog Devices’ published set of Applica-
tion Programming Interfaces (API). Third party products—runtime
operating systems, emulators, high-level language compilers, multiproces-
sor hardware —can interface seamlessly with VisualDSP thereby
simplifying the tools integration task. VisualDSP follows the COM API
format. Two API tools, Target Wizard and API Tester, are also available
for use with the API set. These tools help speed the time-to-market for
vendor products. Target Wizard builds the programming shell based on
API features the vendor requires. The API tester exercises the individual
features independently of VisualDSP. Third parties can use a subset of
these APIs that meets their application needs. The interfaces are fully sup-
ported and backward compatible.
Further details and ordering information are available in the VisualDSP
Development Tools data sheet. This data sheet can be requested from any
Analog Devices sales office or distributor.




                      ADSP-219x DSP Instruction Set Reference          1-5
For More Information About Analog Products




For More Information About Analog
Products
      Analog Devices is online on the internet at http://www.analog.com. Our
      Web pages provide information on the company and products, including
      access to technical information and documentation, product overviews,
      and product announcements.
      You may also obtain additional information about Analog Devices and its
      products in any of the following ways:
         • Visit our World Wide Web site at www.analog.com
         • FAX questions or requests for information to 1(781)461-3010.
         • Access the Computer Products Division File Transfer Protocol
           (FTP) site at ftp ftp.analog.com or ftp 137.71.23.21 or
           ftp://ftp.analog.com.



For Technical or Customer Support
      You can reach our Customer Support group in the following ways:
         • E-mail questions to dsp.support@analog.com or
           dsp.europe@analog.com (European customer support)

         • Telex questions to 924491, TWX:710/394-6577
         • Cable questions to ANALOG NORWOODMASS
         • Contact your local ADI sales office or an authorized ADI distributor




1-6       ADSP-219x DSP Instruction Set Reference
                                                           Introduction




    • Send questions by mail to:
       Analog Devices, Inc.
       DSP Division
       One Technology Way
       P.O. Box 9106
       Norwood, MA 02062-9106
       USA



What’s New in This Manual
 This is the preliminary edition of the ADSP-219x DSP Instruction Set
 Reference. Summaries of changes between editions will start with the next
 edition.


Related Documents
 For more information about Analog Devices DSPs and development
 products, see the following documents:
    • ADSP-2191 DSP Microcomputer Data Sheet
    • ADSP-219x/2191 DSP Hardware Reference
    • Getting Started Guide for VisualDSP & ADSP-219x Family DSPs
    • VisualDSP User's Guide for ADSP-219x Family DSPs
    • C Compiler & Library Manual for ADSP-219x Family DSPs
    • Assembler Manual for ADSP-219x Family DSPs
    • Linker & Utilities Manual for ADSP-219x Family DSPs
 All the manuals are included in the software distribution CD-ROM. To
 access these manuals, use the Help Topics command in the VisualDSP
 environment’s Help menu and select the Online Manuals book. From this



                      ADSP-219x DSP Instruction Set Reference         1-7
Conventions




      Help topic, you can open any of the manuals, which are in Adobe Acrobat
      PDF format.


Conventions
      The following are conventions that apply to all chapters. Note that addi-
      tional conventions, which apply only to specific chapters, appear
      throughout this document.

      Table 1-1. Instruction set notation

      Notation                    Meaning

       UPPERCASE                  Explicit syntax—assembler keyword. (The assembler is case-
                                  insensitive.)

       ;                          A semicolon terminates an instruction line.

       ,                          A comma separates multiple, parallel instructions in the same
                                  instruction line.

       // single line comment     // or /* */ indicate comments or remarks that explain program code,
       /* multi line comment */   but that the assembler ignores. For more details, see the Assembler
                                  Manual for ADSP-219x Family DSPs.

       | option1 |                You must choose one of the items enclosed within two vertical bars.
       | option2 |

       [ (DB) ]                   Brackets enclose an optional instruction component. The option’s
                                  syntax includes everything within the brackets, as shown. In this
                                  case, (DB) is the delayed branch option.

       <imm#>                     Denotes an immediate value (data or address) of # bits.
       <data#>

       COND                       Denotes a status condition.




1-8         ADSP-219x DSP Instruction Set Reference
                                                                        Introduction




Table 1-1. Instruction set notation (Cont’d)

Notation              Meaning

 TERM                 Denotes a loop termination condition. For details, see “Type 11: Do
                      ··· Until” on page 9-34.

 Dreg                 Denotes an unrestricted (Group 0) data register used as either an x
                      or y-input operand. For details, see “Core Registers” on page 7-2.

 XOP                  Denotes a restricted data register used for the x-input operand in a
                      compute instruction. For details, see “Input Registers” on page 3-2.

 YOP                  Denotes a restricted data register used for the y-input operand in a
                      compute operation. For details, see “Input Registers” on page 3-2.

 Ireg                 DAG address register. Denotes an index register (I0–I7).

 Mreg                 DAG address register. Denotes a modify register (M0–M7).

 Lreg                 DAG address register. Denotes a length register (L0–L7).

 Breg                 DAG address register. Denotes a base register (B0–B7).

 (Ireg + Mreg)        Indirect addressing mode. Denotes premodify addressing with no
                      update. Same as (Mreg, Ireg) syntax.

 (Ireg += Mreg)       Indirect addressing mode. Denotes postmodify addressing with
                      update. Same as (Ireg, Mreg) syntax.

 0x                   Denotes number in hexidecimal format (0xFFFF).

 h#                   Denotes number in hexidecimal format (h#FFFF).

 b#                   Denotes number in binary format (b#0001000100010001).




                      ADSP-219x DSP Instruction Set Reference                          1-9
Conventions




1-10   ADSP-219x DSP Instruction Set Reference
