Lecture 3 - Instruction Set - Al

Slides:



Advertisements
Similar presentations
Instructor: Dr Aleksandar Milenkovic Lecture Notes
Advertisements

EECC250 - Shaaban #1 Lec # 2 Winter Addressing Modes  Addressing modes are concerned with the way data is accessed  Addressing can be.
The family.
680XX Program Examples Outline –Binary to BCD –Matrix Addition –Ones Count –String Compare –Sector Map –Raster Graphics –Subroutine Calls Goal –Understand.
Machine Instructions Operations
9/20/6Lecture 3 - Instruction Set - Al Instruction Set.
EECC250 - Shaaban #1 Lec # 6 Winter Stack-Related Instructions PEA Push Effective Address Calculates an effective address and pushes it.
9/20/6Lecture 3 - Instruction Set - Al1 Exception Handling (2)
Data Transfer Group ECE 511: Digital System & Microprocessor.
Architecture of the 680XX Outline Goal Reading 680XX Family
EECC250 - Shaaban #1 lec #16 Winter Estimation of Assembly Programs Execution Time For a CPU running at a constant clock rate: clock rate =
Chapters 4 & 5: LC-3 Computer Architecture Machine Instructions Assembly language Programming in Machine and Assembly Language.
ECE 265 – LECTURE 4 The M68HC11 Address Modes 8/14/ ECE265.
MICROCONTROLLER INSTRUCTION SET
The M68HC11 Basic Instruction Set Basic Arithmetic Instructions
ECE 447 Fall 2009 Lecture 5: TI MSP430 Software Development in C and Assembly pt. 2.
Assembly Programming on the TI-89 Created By: Adrian Anderson Trevor Swanson.
© 2009, Renesas Technology America, Inc., All Rights Reserved 1 Course Introduction  Purpose:  This course provides an overview of the SH-2 32-bit RISC.
9/20/6Lecture 3 - Instruction Set - Al Instruction Set (2)
Microprocessor Dr. Rabie A. Ramadan Al-Azhar University Lecture 7.
Passing Parameters using Stack Calling program pushes parameters on the stack one element at a time before calling subroutine. Subroutine Call (jsr, bsr)
George W. Woodruff School of Mechanical Engineering, Georgia Tech ME4447/6405 ME 4447/6405 Microprocessor Control of Manufacturing Systems and Introduction.
9/20/6Lecture 2 - Prog Model Architecture, Data Types and Addressing Modes.
Topics covered: Instruction Set Architecture CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
ECE 447 Fall 2009 Lecture 4: TI MSP430 Architecture and Instruction Set.
ECE 447: Lecture 11 Introduction to Programming in Assembly Language.
Microprocessor & Assembly Language Arithmetic and logical Instructions.
M68k Arithmetic Instructions ECE 511: Digital System & Microprocessor.
George W. Woodruff School of Mechanical Engineering, Georgia Tech ME4447/6405 ME 4447/6405 Microprocessor Control of Manufacturing Systems and Introduction.
ECE 511: Digital System & Microprocessor
Addressing Modes the addressing mode defines how data is accessed
Figure 8.1 of course package
Format of Assembly language
Data Transfers, Addressing, and Arithmetic
Status Register Status = system byte (supervisor only) + user byte = system status + condition code register usually, it is not important to know.
Classification of Instruction Set of 8051
ECE 3430 – Intro to Microcomputer Systems
8086 Microprocessor.
Lecture Set 5 The 8051 Instruction Set.
Subroutines and the Stack
Microcomputer Programming
Microcomputer & Interfacing Lecture 1
68000 Arithmetic Instructions
Symbolic Instruction and Addressing
EECE-276 Fall 2003 Microprocessors & Microcontrollers II
The LC-3 Instruction Set Architecture Data Movement instructions
Subroutines … a 1st look procedures and functions in high level languages are modeled on subroutines typically, assembly code is very modular with.
Chapter 11 © 2011, The McGraw-Hill Companies, Inc.
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Symbolic Instruction and Addressing
The University of Adelaide, School of Computer Science
Chapter 8 Central Processing Unit
68000 Architecture, Data Types and Addressing Modes
Write a program to calculate x**y, given x and y.
Figure 8.1 of course package
Symbolic Instruction and Addressing
M68k Arithmetic Instructions
Lecture 06 Programming language.
Basic Instruction Cycle
ME 4447/6405 Microprocessor Control of Manufacturing Systems and
Chapter 5 Arithmetic and Logic Instructions
Subroutines and the Stack
Chapter 6 –Symbolic Instruction and Addressing
Basic components Instruction processing
ME 4447/6405 Microprocessor Control of Manufacturing Systems and
ME 4447/6405 Microprocessor Control of Manufacturing Systems and
Lecture 1: SIC Architecture
ECE511: Digital System & Microprocessor
Part I Data Representation and 8086 Microprocessors
Presentation transcript:

Lecture 3 - Instruction Set - Al 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al Lecture Overview The 68000 Instruction Set The understand and effectively use an architecture must understand the register set and the instruction set. 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al Instruction Grouping Instructions can be grouped into classes Data movement Arithmetic operations Logical operations Shift operations Bit manipulations Program control 9/20/6 Lecture 3 - Instruction Set - Al

Condition Code Register Execution of the various instructions will set different bits in the condition code register A table is provided to show which instructions affect which status bits For the 68000, Table 2.2 of the text gives this information (pages 47-49) 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al Data Movement General form: MOVE source,destination MOVE MOVE #$00123456, D7 Source operand – any addressing mode – Data in register, or memory location Destination – use any addressing mode except immediate addressing, program counter relative V & C bits of CCR are cleared, N & Z updated MOVEA – Move address Destination must be an address register (does not affect CCR) 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al DATA Movement (2) MOVE to CCR Move data into the CCR MOVE <ea>, CCR Copies the low order byte at <ea> to the low order byte of the status register. High order byte (status register) unaffected 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al MOVE to SR MOVE to or from SR TO the status register is a privledged instruction – only when in supervisor mode. FROM can be done in either mode on the 68000 but only supervisor mode on the 68010, 68020, or 68030. Form MOVE <ea>,SR MOVE SR,<ea> 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al MOVE USP There are actually two A7 registers, one for the user and one for supervisor mode (USP and SSP) MOVE.L USP,An or MOVE.L An,USP copy USP value to/from address register An Register other than the USP must be and address register. User cannot see system stack pointer, SSP 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al MOVEM Move multiple registers – allows movement of multiple register to/from memory MOVEM <register list>,<ea> MOVEM <ea>,<register list> Example MOVEM.L D0-D7/A0-A6, -(SP) Pushes all data and all address except A7 onto stack When would this be useful? Answer: When entering a subroutine. 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al MOVEQ Move quick Load a value in the range -128 to +127 into a data register Loaded as a 32 bit value MOVEQ #-3, D2 Loads $FFFF FFFD into D2 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al MOVEP Move peripheral instruction Copies words or longwords to an 8 bit peripheral Byte orientated peripheral interfaced such that they map to odd or even byte addresses. MOVEP.L D2,0(A0) Copies contents of D2 to [A0+0], [A0+2], [A0+4], [A0+6] 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al LEA Load Effective Address Calculate and effective address and then load it into an address register LEA $0010FFFF,A6 LEA $12(A0,D4.L), A5 9/20/6 Lecture 3 - Instruction Set - Al

Position independent destinations PC relative only allowed for source operands Consider LEA TABLE(PC),A0 MOVE.B D0,(A0) Loads the position independent address of TABLE into address register A0 Then the least significant byte of D0 is stored at the address indicated by A0 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al PEA Push effective address Calculates the effective address and pushes it to the stack Useful to put calling routines address on stack so subroutine can access actual data. 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al Example of PEA Main routine (calling routine) P1 DS.W 1 Parameter P1 … PEA P1 Push addr of P1 on stack BSR ABC Jump to subroutine ABC LEA 4(A7),A7 Incr stack ptr back ABC LEA 4(A7),A0 Load addr on stack of of P1 into A0 MOVEA.L (A0),A0 Put P1 addr into A0 MOVE.W (A0),D0 Get data at P1 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al EXG & SWAP EXG Exchange the contents of two registers Exchanges the entire 32-bit contents SWAP Exchange the high and low order words of a data register. 9/20/6 Lecture 3 - Instruction Set - Al

Integer Arithmetic Operations Conventional set of integer arithmetic ops Act on 8, 16, or 32 bit operands ADD - add source and destination and place result in destination Both can be data registers OR At least one must be a data register 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al Arithmetic ADDA – destination of add is an address register ADDQ – add a literal value in the range 1 to 8 to the contents of a memory location or register. ADDQ #4, D1 Speed is faster than ADD #4, D1 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al Arithmetic ADDI - Add immediate – adds a literal value of a byte, word, or longword to the contents of a destination operand and then stores the result in the destination. ADDI.W #1234,(A0) Cannot be done using ADD as one operand must be a data register. Here can do without a data register. ADDX – Add extended Add source and destination plus contents of the X bit of the condition code register Both source and destination must be data registers Carry out of msb is stored in X from operations so this allows mutiprecision data. 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al ARITHMETIC CLR – Loads the target with 0 DIVS, DIVU – Integer division, signed or unsigned DIVU <ea>,Dn -32-bit longword in Dn is divided by the low order 16 bits at <ea>. Quotient is 16-bits and depostied in low-order word of destination 9/20/6 Lecture 3 - Instruction Set - Al

Lecture 3 - Instruction Set - Al ARITHMETIC MULS, MULU – multiply signed or unsigned SUB, SUBA, SUBQ, SUBL, SUBX – the subtractions equivalents of ADD NEG – Take the 2’s complement of target NEGX – Two’s complement with X bit EXT – sign extend low-order byte for word of destination DIVX D0,D1 Divide 32 bit val in D1 by D0 EXT.W D1 9/20/6 Lecture 3 - Instruction Set - Al