DSP56300 FAMILY INSTRUCTION SET

Similar documents
DSP56300 FAMILY INSTRUCTION SET

Chapter 13 Instruction Set

INSTRUCTION SET AND EXECUTION

Appendix A INSTRUCTION SET

SECTION 6 INSTRUCTION SET INTRODUCTION

Freescale Semiconductor, I

Application Conversion from the DSP56100 Family to the DSP56300/600 Families

PROGRAM CONTROL UNIT (PCU)

Freescale Semiconductor, I

A. If only the second word after the instruction includes the address or displacement, add one NOP after the conditional branch,

instruction 1 Fri Oct 13 13:05:

68000 Instruction Set (2) 9/20/6 Lecture 3 - Instruction Set - Al 1

SECTION 5 PROGRAM CONTROL UNIT

DSP56311 Device Errata for Mask 0K92M

Freescale Semiconductor, I

Freescale Semiconductor, I APPENDIX B PROGRAMMING SHEETS

Freescale Semiconductor, I SECTION 7 PROCESSING STATES NORMAL EXCEPTION MOTOROLA PROCESSING STATES 7-1

Freescale Semiconductor, I

Freescale Semiconductor, I

Freescale Semiconductor, I

EECE416 :Microcomputer Fundamentals and Design Instruction Sets and Groups

Freescale Semiconductor, I SECTION 6 PROGRAM CONTROL UNIT

Disassembly of MC9S12 op codes Decimal, Hexadecimal and Binary Numbers

Disassembly of MC9S12 op codes Decimal, Hexadecimal and Binary Numbers

68000 Architecture. To review the the architecture of the microprocessor.

LAB 1: MC68000 CPU PROGRAMMING DATA TRANSFER INSTRUCTIONS

CPE/EE 421 Microcomputers

; MC68010/MC /32-8IT VIRTUAL MEMORY MICROPROCESSORS. Advance Information MAY, '1985

CPU08RM/AD REV 3 8M68HC08M. CPU08 Central Processor Unit. Reference Manual

Behavioral Model of an Instruction Decoder of Motorola DSP56000 Processor. Guda Krishna Kumar

The 6502 Instruction Set

DIGITAL SIGNAL PROCESSOR FAMILY MANUAL

APPENDIX B PROGRAMMING REFERENCE

2. Arithmetic Instructions addition, subtraction, multiplication, divison (HCS12 Core Users Guide, Sections 4.3.4, and ).

Table 1: Mnemonics Operations Dictionary. Add Accumulators Add B to Y. Add with carry to B. Add Memory to B. Add 16-bit to D And B with Memory

MC9S12 Assembler Directives A Summary of MC9S12 Instructions Disassembly of MC9S12 op codes. Summary of HCS12 addressing modes ADDRESSING MODES

The Assembly Language of the Boz 5

Accumulator and memory instructions 1. Loads, stores, and transfers 2. Arithmetic operations 3. Multiply and divide 4. Logical operations 5. Data test

Programming. A. Assembly Language Programming. A.1 Machine Code. Machine Code Example: Motorola ADD

Grundlagen Microcontroller Processor Core. Günther Gridling Bettina Weiss

Freescale Semiconductor, I. Table 1: MCF5206 Power Consumption. 16MHZ 25MHz 33MHz UNITS mw. Notational Conventions

Chapter 7 Central Processor Unit (S08CPUV2)

H8/300L Series Programming Manual

ADDRESS GENERATION UNIT (AGU)

By: Dr. Hamed Saghaei

Programming Book for 6809 Microprocessor Kit

TYPES OF INTERRUPTS: -

Freescale Semiconductor, I

Microcontroller Intel [Instruction Set]

COSC 243. Instruction Sets And Addressing Modes. Lecture 7&8 Instruction Sets and Addressing Modes. COSC 243 (Computer Architecture)

ARM Assembly Language. Programming

Digital Signal Processors Introduction Page 1 / Signal processing with standard microprocessors and PCs

MC /32-BIT MICROPROCESSOR WITH 8-BIT DATA BUS. Advance Information APRIL, 1985 MOTOROLA INC., 1985 ADI939R2

OSIAC Read OSIAC 5362 posted on the course website

10-1 C D Pearson Education, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 4e

AVR Logical and Bitwise Instructions

Chapter 2 Instructions Sets. Hsung-Pin Chang Department of Computer Science National ChungHsing University

ECE 471 Embedded Systems Lecture 5

68HC11 PROGRAMMER'S MODEL

Programming the Motorola MC68HC11 Microcontroller

INTRODUCTION TO BRANCHING. There are two forms of unconditional branching in the MC68000.

A. CPU INSTRUCTION SET SUMMARY

ARM Cortex-A9 ARM v7-a. A programmer s perspective Part 2

AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo

INSTRUCTION SET ARCHITECTURE

0b) [2] Can you name 2 people form technical support services (stockroom)?

Microprocessors 1. The 8051 Instruction Set. Microprocessors 1 1. Msc. Ivan A. Escobar Broitman

ARM Cortex M3 Instruction Set Architecture. Gary J. Minden March 29, 2016

AVR ISA & AVR Programming (I) Lecturer: Sri Parameswaran Notes by: Annie Guo

3.1 DATA MOVEMENT INSTRUCTIONS 45

Processor Status Register(PSR)

Functional Differences Between Masks 4J22A and 0K36A of the DSP56303

AVR ISA & AVR Programming (I)

TABLE 9-1. Symbolic Convention for Addressing Modes. Register indirect LDA (R1) ACC M[ R1] Refers to Figure 9-4. Addressing mode. Symbolic convention

Basic ARM InstructionS

The Motorola 68HC11 Instruc5on Set

Chapter 15. ARM Architecture, Programming and Development Tools

Regarding the change of names mentioned in the document, such as Mitsubishi Electric and Mitsubishi XX, to Renesas Technology Corp.

EE4390 Microprocessors

Outline. ARM Introduction & Instruction Set Architecture. ARM History. ARM s visible registers

ECET Chapter 2, Part 3 of 3

ARM Assembly Programming

Chapter 2: HCS12 Assembly Programming. EE383: Introduction to Embedded Systems University of Kentucky. Samir Rawashdeh

Mark II Aiken Relay Calculator

MOTOROLA M68000 FAMILY

HC11 Instruction Set

SOEN228, Winter Revision 1.2 Date: October 25,

MC BIT MICROPROCESSOR. Advance Information APRIL, 1983

ME 4447/6405. Microprocessor Control of Manufacturing Systems and Introduction to Mechatronics. Instructor: Professor Charles Ume LECTURE 6

RCX internals (Revised February 24)

ARM Instruction Set Architecture. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

ก AVR Microcontrollers

538 Lecture Notes Week 5

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design

538 Lecture Notes Week 5

Instruction Set Architecture (ISA)

H8/500 Series Programming Manual

Chapter 15. ARM Architecture, Programming and Development Tools

Software simulation of MC68000

MNEMONIC OPERATION ADDRESS / OPERAND MODES FLAGS SET WITH S suffix ADC

Transcription:

ABS Absolute Value D D ABS D [Parallel Move] ADC Add Long With Carry S + D + C D ADC S,D [Parallel Move] ADD Addition S + D D ADD S,D [Parallel Move] ADDL ADDR Shift Left and Add Accumulators S + 2xD D Arithmetic Shift Right and Add Accumulators S + D/2 D ADDL S,D [Parallel Move] ADDR S,D [Parallel Move] AND Logical AND S D [47:24] D [47:24] AND S,D [Parallel Move] ANDI AND Immediate With Control Register #xx D D AND(I) #xx,d ASL Arithmetic Shift Accumulator Left ASL D [Parallel Move] C 55 47 23 0 ASR Arithmetic Shift Accumulator Right ASR D [Parallel Move] 55 47 23 0 C 0 BCHG BCLR Bcc BRA BRCLR BRKcc BRSET BScc BSCLR Bit Test and Change **D[n] C D[n] D[n] Bit Test and Clear **D[n] C 0 D[n] Branch Conditionally If cc, then + xxxx If cc, then + xxx If cc, then + Rn Branch Always + xxxx + xxx + Rn Branch if bit Clear If S{n} = 0, then + xxxx else + 1 Exit Current DO Loop Conditionally If cc LA + 1 ; SSL(LF,FV) SR; SP - 1 SP SSH LA; SSL LC; SP - 1 SP Branch if bit Set If S{n} = 1, then + xxxx else + 1 Branch to Subroutine Conditionally If cc, then SSH; ; + xxxx If cc, then SSH; ; + xxx If cc, then SSH; ; + Rn Branch to Subroutine if bit Clear If S{n} = 0, then SSH; ; + xxxx BCHG #n,d BCLR #n,d Bcc xxxx Bcc xxx Bcc Rn BRA xxxx BRA xxx BRA Rn BRCLR #n,[x or Y]:ea,xxxx BRKcc BRSET #n,[x or Y]:ea,xxxx BScc xxxx BScc xxx BScc Rn BSCLR #n,[x or Y]:ea,xxxx M Page 1

BSET BSR BSSET Bit Set and Test **D[n] C 1 D[n] Branch to Subroutine SSH; ; + xxxx SSH; ; + xxx SSH; ; + Rn Branch to Subroutine if bit Set If S{n} = 1, then SSH; ; + xxxx BTST Bit Test **D[n] C CLB Count Leading Bits If S[55]=0 then 9 - (Number of consecutive leading zeros in S[55:0]) else 9 - (Number of consecutive leading ones in S[55:0]) D[47:24] D[47:24] BSET #n,d BSR xxx BSR xxx BSR Rn BSSET #n,[x or Y]:ea,xxxx BTST #n,d CLB S,D CLR Clear Accumulator 0 D CLR D [Parallel Move] CMP Compare S2 - S1 CMP S1,S2 [Parallel Move] CMPM Compare Magnitude S2 - S1 CMPM S1,S2 [Parallel Movc] CMPU Compare Unsigned S2 - S1 CMPU S1,S2 DEBUG DEBUGcc Enter Debug Mode & wait for OnCe commands If cc enter dubug mode & wait for OnCe commands DEBUG DEBUGcc DEC Decrement by One D - 1 D DEC D DIV Divide Iteration If D[55] S[23] = 1 55 47 23 0 then C + S D Destination Accumulator D 55 47 23 0 else C - S D Destination Accumulator D DIV S,D DMAC DO DO FOREVER DOR Double-Precision Multiply-Accumulate With Right Shift [D>>24] + S1 S2 D (S1 signed, S2 signed) [D>>24] + S1 S2 D (S1 signed, S2 unsigned) [D>>24] + S1 S2 D (S1 unsigned, S2 unsigned) Start Hardware loop Start of Loop SP + 1 SP; LA SSH; LC SSL; #xxx LC SP + 1 SP; SSH; ; Expr - 1 LA 1 LF End of Loop If LC = 1 then LC - 1 LC; SSH Else SSL(LF) SR; SP - 1 SP SSH LA; SSL LC; SP - 1 SP Start Infinite Loop SP + 1 SP; LA SSH; LC SSL SP + 1 SP; SSH; ; expr - 1 LA 1 LF; 1 FV Start Relative Hardware Loop SP + 1 SP; LA SSH; LC SSL; [X or Y]:ea LC SP + 1 SP; SSH; ; +xxxx LA 1 LF DMACss ( + )S1,S2,D [No Parallel Move] DMACsu ( + )S2,S1,D [No Parallel Move] DMACuu ( + )S2,S1,D [No Parallel Move] Static DO #xxx,expr Dynamic DO X: ea,expr DO Y: ea,expr DO S,Expr DO FOREVER,expr DOR [X or Y]:ea,label M Page 2

DOR FOREVER ENDDO Start Relative Infinite Loop SP + 1 SP; LA SSH; LC SSL SP + 1 SP; SSH; ; +xxxx LA 1 LF; 1 FV End Current DO Loop SSL(LF) SR; SP - 1 SP SSH LA; SSL LC, SP - 1 SP DOR FOREVER,label ENDDO EOR Logical Exclusive OR S D [47:24] D [47:24] EOR S,D [Parallel Move] EXTRACT Extract Bit Field Offset = S1[5:0] Width = S1[17:12] S2[(offset+width-1):offset] D[(width-1):0] S2[(offset+width-1)] D[(55:width)] (sign extention) EXTRACT S1,S2,D EXTRACTU Offset = #CO[5:0] Width = #CO[17:12] S2[(offset+width-1):offset] D[(width-1):0] S2[(offset+width-1)] D[(55:width)] (sign extention) Extract Unsigned Bit Field Offset = S1[5:0] Width = S1[17:12] S2[(offset+width-1):offset] zero D[(55:width)] D[(width-1):0] EXTRACT #CO,S2,D EXTRACTU S1,S2,D IFcc IFcc.U Offset = #CO[5:0] Width = #CO[17:12] S2[(offset+width-1):offset] zero D[(55:width)] D[(width-1):0] Execute Conditionally Without CCR Update If cc, then opcode operation Execute Conditionally With CCR Update If cc, then opcode operation INC Increment by One 1 + D D INC D INSERT Jcc JCLR Insert Bit Field Offset = S1[5:0] Width = S1[17:12] S2[(width - 1):0] D[(offset+width-1):offset] Offset = #CO[5:0] Width = #CO[17:12] S2[(width - 1):0] D[(offset+width-1):offset] Jump Conditionally If cc then ea Else + Jump if Bit Clear If S[n] = 0 Then xxxx Else + 1 EXTRACTU #CO,S2,D Opcode-Operands IFcc Opcode-Operands IFcc INSERT S1,S2,D INSERT #CO,S2,D Jcc ea JMP Jump ea JMP ea JScc Conditional Jump to Subroutine If cc then SP + 1 SP SSH ea Else + 1 JCLR #n,d,xxxxxx JScc ea M Page 3

JSCLR JSET JSR JSSET Jump to Subroutine if Bit Clear If S[n] = 0 Then SP + 1 SP SSH xxxx Else + 1 Jump if Bit Set If S[n] = 1 Then xxxx Else + 1 Jump to Subroutine SP + 1 SP SSH ea Jump to Subroutine if Bit Set If S[n] = 1 Then SP + 1 SP SSH xxxx Else + 1 L: Long Memory Data Move (.....); X:ea D1; Y:ea D2 (.....); X:aa D1; Y:aa D2 (.....); S1 X:ea; S2 Y:ea (.....); S1 X:aa; S2 Y:aa JSCLR #n,d,xxxxxx JSET #n,d,xxxxxx JSR ea JSSET #n,d,xxxxxx (.....) L:ea,D (.....) L:aa,D (.....) S,L:ea (.....) S,L:aa LRA Load -Relative Address + Rn D LRA Rn,D + xxxx D LRA xxxx,d LSL Logical Shift Accumulator Left LSL D [Parallel Move] C 0 LSR Logical Shift Right LSR D [Parallel Move] 0 C LUA Load Updated Address ea D LUA ea, D MAC Signed Multiply-Accumulate D + (S1 S2) D MAC + S1,S2,D [Parallel Move] MACI Signed Multiply-Accumulate With Immediate Operand D + #xxxxxx S D MACI ( + )#xxxxxx,s,d MAC (su, uu) Mixed Multiply-Accumulate D + S1 S2 D (S1 unsigned, S2 unsigned) MACuu ( + ) S1, S2,D [No Parallel Move] D + S1 S2 D (S1 signed, S2 unsigned) MACsu ( + ) S2, S1,D [No Parallel Move] MACR Signed Multiply-Accumulate and Round MACR ( + ) S1, S2,D [Parallel Move] D + (S1 S2) + r D MACRI Signed MAC and Round With Immediate Operand D + #xxxxxx S D MACRI ( + )#xxxxxx,s,d MAX Transfer by Signed Value If B - A < 0 then A B MAX A,B [Parallel Move] MAXM Transfer by Magnitude If B - A < 0 then A B MAXM A,B [Parallel Move] MERGE Merge Two Half Words {S[11:0],D[35:24]} D[47:24] MERGE S,D MOVE Move Data Registers S D MOVE S,D MOVEC Move Control Register S D MOVEC S,D MOVEM Move Program Memory S P:ea MOVE(M) S,P:ea P:ea D MOVE(M) P:ea,D M Page 4

MOVEP Move Peripheral Data S X or Y Peripheral X OR Y Peripheral D MOVEP S,X:<pp> <qq> MOVEP S,Y:<pp> <qq> MOVEP X:<pp> <qq>,d MOVEP Y:<pp> <qq>,d Note: There are extensive variations in the MOVE instructions. Please see the DSP56300 UM available from the Reference section of this CD-ROM for a complete listing. MPY Signed Multiply + (S1 S2) D MPY ( + ) S1,S2,D [Parallel Move] MPY (su, uu) MPYI Mixed Multiply + S1 S2 D (S1 unsigned, S2 unsigned) MPYuu ( + )S1,S2,D + S1 S2 D (S1 signed, S2 unsigned) MPYsu ( + )S2,S1,D Signed Multiply With Immediate Operand + #xxxxxx S D MPYI ( + )#xxxxxx,s,d MPYR Signed Multiply and Round + (S1 * S2) + r D MPYR ( + ) S1,S2,D [Parallel Move] MPYRI Signed Multiply and Round With Immediate Operand + #xxxxxx S + r D MPYRI ( + )#xxxxxx,s,d NEG Negate Accumulator 0 - D D NEG D [Parallel Move] NOP No Operation + 1 NOP NORM NORMF Norm Accumulator Iteration If E U Z = 1, then ASL D and Rn - 1 else if E = 1, then ASR D and Rn + 1 else NOP Fast Accumulator Normalization If S[23]=0 then ASR S,D else ASL -S,D Rn R NORM Rn,D NORMF S,D NOT Logical Complement D [47:24] D [47:24] NOT D [Parallel Move] OR Logical Inclusive OR S + D [47:24] D [47:24] OR S,D [Parallel Move] ORI OR Immediate With Control Register #xx + D D OR(I) #xx,d PFLUSH Program Cache Flush PFLUSH PFLUSHUN Program Cache Flush Unlocked Sectors PFLUSHUN PFREE Program Cache Global Unlock PFREE PLOCK Lock Instruction Cache Sector PLOCK ea PLOCKR Lock Instruction Cache Relative Sector PLOCKR xxxx PUNLOCK Unlock Instruction Cache Sector PUNLOCK ea PUNLOCKR Unlock Instruction Cache Relative Sector PUNLOCKR xxxx R R:Y REP RESET Register-to-Register Data Move (.....); S D (.....) S,D Register and Y Data Move Class I (.....); S1 D1; Y:ea D2 (.....); S1 D1; S2 Y:ea (.....); S1 D1; #xxxxxx D2 Class II (.....); Y0 A; A Y:ea (.....); Y0 B; B Y:ea Repeat Next Instruction LC TEMP; #xxx LC Repeat Next Instruction Until LC = 1 TEMP LC Reset On-Chip Peripheral Devices 1 I1 1 I0 0 IPR-C & IPR-P + 1 (.....) S1,D1 Y:ea,D2 (.....) S1,D1 S2,Y:ea (.....) S1,D1 #xxxxxx,d2 (.....) Y0,A A,Y:ea (.....) Y0,B B,Y:ea REP #xxx REP X:ea REP Y:ea REP S RESET M Page 5

RND Round Accumulator D + r D RND D [Parallel Move] ROL Rotate Accumulator Left ROL D [Parallel Move] C ROR Rotate Right C ROR D [Parallel Move] RTI RTS Return From Interrupt SSH SSL SR SP - 1 SP Return From Subroutine SSH SP - 1 SP SBC Subtract Long With Carry D - S - C D SBC S,D [Parallel Move] STOP Stop Instruction Processing (Enter the Stop Processing State and Stop Clock to on-chip ckts) SUB Subtraction D - S D SUB S,D [Parallel Move] SUBL Shift Left and Subtract Accumulators 2xD - S D SUBL S,D [Parallel Move] SUBR Shift Right and Subtract Accumulators D/2 - S D SUBR S,D [Parallel Move] SWI Tcc Software Interrupt Begin Software Exception Process Transfer Condiitionally Data ALU Registers If cc Then S1 D1 or If cc Then S1 D1 and S2 D2 RTI RTS STOP SWI Tcc S1,D1 [S2,D2] TFR Transfer Data ALU Register S D TFR S,D [Parallel Move] TRAP Software Interrupt Begin trap execution process TRAP TRAPcc Conditional Software Interrupt If cc, then Begin software exception processing TRAPcc TST Test Accumulator S - 0 TST S [Parallel Move] U VSL WAIT Address Register Update (.....); ea Rn (.....) ea Viterbi Shift Left Wait for Interrupt or DMA Request (Disable Clocks to Processor Core and Enter the Wait Processing State) X: X Memory Data Move (.....); X:ea D (.....); X:aa D (.....); S X:ea (.....); S X:aa X:(Rn + xxx) D X:(Rn + xxxx) D D X:(Rn + xxx) D X:(Rn + xxxx) X:R X Memory and Register Data Move Class I (.....); X:ea D1; S2 D2 (.....); S1 X:ea; S2 D2 (.....); #xxxxxx D1; S2 D2 Class II (.....); A X:ea; X0 A (.....); B X:ea; X0 B WAIT (.....); X:ea,D (.....); X:aa,D (.....); S,X:ea (.....); S,X:aa MOVE X:(Rn + xxx),d MOVE X:(Rn + xxxx),d MOVE D,X:(Rn + xxx) MOVE D,X:(Rn + xxxx) (.....) X:ea,D1 S2,D2 (.....) S1,X:ea S2,D2 (.....) #xxxxxx,d1; S2,D2 (.....) A,X:ea X0,A (.....) B,X:ea X0,B M Page 6

X: Y: XY Memory Data Move (.....); X:<eax> D1; Y:<eay> D2 (.....); X:<eax> D1; S2 Y:<eay> (.....); S1 X:<eax>; Y:<eay> D2 (.....); S1 X:<eax>; S2 Y:<eay> Y: Y Memory Data Move (.....); Y:ea D (.....); Y:aa D (.....); S Y:ea (.....); S Y:aa Y:(Rn + xxx) D Y:(Rn + xxxx) D D Y:(Rn + xxx) D Y:(Rn + xxxx) (.....) X:<eax>,D1; Y:<eay>,D2 (.....) X:<eax>,D1; S2,Y:<eay> (.....) S1,X:<eax>; Y:<eay>,D2 (.....) S1,X:<eax>; S2,Y:<eay> (.....) Y:ea,D (.....) Y:aa,D (.....) S,Y:ea (.....) S,Y:aa MOVE Y:(Rn + xxx),d MOVE Y:(Rn + xxxx),d MOVE D,Y:(Rn + xxx) MOVE D,Y:(Rn + xxxx) M Page 7