Instruktionsuppsättning



Relevanta dokument
Instruktionsuppsättning. Programmerarens bild adresserbart minne. Programmerarens bild datatyper/storlek. Maskinorienterad Programmering 2011/2012

MC68HCS12 - översikt

DAT 015 Maskinorienterad Programmering 2010/11. Ur innehållet: Historik Översikt, single-chip-computer DG256 Programmerarens bild (Exempel)

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

4.1. Assemblerspråket

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Nya instruktioner. b 7

Tentamen. Datorteknik Y, TSEA28

EDA Digital och Datorteknik

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

Föreläsningsanteckningar 2. Mikroprogrammering I

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Nya instruktioner. b 7

Tentamen. Datorteknik Y, TSEA28

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för ARM del 1

Digital- och datorteknik

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Tentamen Datorteknik Y, TSEA28 Datum

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

9/22/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke...

Digital- och datorteknik

Programmering av inbyggda system 2012/2013. Kodningskonventioner och programbibliotek. maskinnära programmering i C och assemblerspråk

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Stack och subrutiner Programmeringskonventionen

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

EDA215 Digital- och datorteknik för Z

Adressrum, programmerarens bild

Tentamen. Datorteknik Y, TSEA28

Villkorliga hopp: 9/26/2011. Dagens mål: Du ska kunna.. Villrorliga (Relativa) hopp - forts Arb s 140. LV5 Fo12. LV5 Fo12. Aktivera Kursens mål:

Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller

Tentamen. Datorteknik Y, TSEA28

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

9 Assemblerprogrammering. Innehåll GRUNDLÄGGANDE DATORTEKNIK FÖR HÖGSKOLANS INGENJÖRSUTBILDNINGAR KOMPENDIUM

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Introduktion till ARM Cortex-M4

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

Tenta i Digitalteknik

11/16/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke...

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

Tentamen Datorteknik Y, TSEA28 Datum TER2, TER4, TERE Tid 14-18

Omtentamen i CDT204 - Datorarkitektur

Datorarkitekturer med operativsystem ERIK LARSSON

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

DBG identifierar därefter sig genom utskrift av namn och version. Se även "Disposition av adressrum" nedan. Följande kommandon accepteras av DBG

Exempel 1 på Tentamen med lösningar

Lösningsförslag tenta

Digitala System: Datorteknik ERIK LARSSON

Assemblerprogrammets struktur; exempel

Tentamen (Exempel) Datorteknik Y, TSEA28

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

TSEA28 Datorteknik Y (och U)

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Maskinorienterad Programmering /2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk

Tentamen med lösningar

Tentamen (Exempel) Datorteknik Y, TSEA28

Styrenheten styrsignalsekvenser programflödeskontroll

CE_O1. Nios II. Enkla assembler-instruktioner.

Grundläggande datavetenskap, 4p

Tentamen. Datorteknik Y, TSEA28

Assemblerprogrammering del 2

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Maskinorienterad Programmering 2010/11

Lösningsförslag till Tenta i Mikrodator

Programexempel för FLEX

Digital- och datorteknik

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

Det finns en hemsida. Adressen är

Assemblerprogrammering för ARM del 2

Grunderna i stegkodsprogrammering

Datorsystemteknik DVG A03 Föreläsning 3

Programmerbar logik. Kapitel 4

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

F4: Assemblerprogrammering

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Binär kodning. Binära koder. Tal och talsystem positionssystem för basen 10. Begrepp. Begrepp Tal och talsystem Talomvandling ASCII-kod NBCD Gray-kod

Digital- och datorteknik

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Tentamen (Exempel) Datorteknik Y, TSEA28

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

CE_O3. Nios II. Inför lab nios2time

1 Maskinnära programmering för HC12

Digital- och datorteknik

F5: Högnivåprogrammering

Assemblerprogrammering, ARM-Cortex M4 del 1

A-del motsvarande KS1

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

TSEA28 Datorteknik Y (och U)

Assemblerprogrammering för ARM del 3

TENTAMEN(Nu anpassad till FLIS- processorn)

HF0010. Introduktionskurs i datateknik 1,5 hp

Assemblerprogrammering för ARM del 1

Transkript:

DT Maskinorienterad Programmering 21/11 M68H12, rbetsbok för M12 PU12 Reference Guide Ur innehållet: Historik Översikt, single-chip-computer DG256 Programmerarens bild (Exempel) Instruktionsuppsättning i IS Instruction Set rchitecture e Vilka operationer kan utföras? Instruktionsgrupper Hur lagras operanderna förutom i minnet? Korttidslagring Hur nås operander i minnet? dresseringssätt Vilka typer/storlekar av operander kan hanteras? Generella/speciella register, registerstorlek Introduktion till Freescale M68HS12 1 Introduktion till Freescale M68HS12 2 Instruktionsgrupper EXEMPEL: Motorola (Freescale) M68X/oldfire Data movement Program (Flow) control Integer arithmetic Floating-point arithmetic Logical operations it manipulation System control ache maintenance PowerP Load/Store Program (Flow) control Integer arithmetic Floating-point arithmetic Processor control Synchronization Miscellanous Motorola (Freescale) M68H12 Load/Store Data movement Program (Flow) control Integer arithmetic Logical operations it manipulation System control FLEX Load/Store Data movement Program (Flow) control Integer arithmetic/test Logical operations Shift/rotate Stack k operations Introduktion till Freescale M68HS12 3 Korttidslagring, i Stack/ckumulator/Register k t /R t Exempel: Kodning av operationen = + Stack ckumulator Register PUSH LOD LOD R1, PUSH DD LOD R2, DD STORE DD R3,R1,R2 POP Exempel: STORE,R3 Exempel: 55, HP3/7 PDP8, R652 M68H12 FLEX Dessutom existerar mellanting av dessa. Exempel (IS): IM36, DE PDP11/VX M68x Intel Pentium Mest namnkunnigt exempel: Intel 886 (-186/-286/-386/-486) Exempel (RIS): PowerP, MIPS, SPR Introduktion till Freescale M68HS12 4

Register programmerarens bild EXEMPEL - Registermaskiner PowerP Stackmaskiner: Har som regel inga synliga register g ckumulatormaskiner: Har oftast flera register men med dedikerad användning: Exempel: ckumulator, Indexregister Zilog Z8 Motorola (Freescale) M68X/oldfire Registermaskiner: Generellt användbara register. Exempel: Dataregister, dressregister, Flyttalsregister Introduktion till Freescale M68HS12 5 Introduktion till Freescale M68HS12 6 EXEMPEL ckumulator Intel 8xx 88/885 D H 8 7 STK POINTER UMULTOR 7 E L PROGRM OUNTER INREMENTER/DEREMENTER 886 8 7 H X L H X L H X L DH D X DL SP P SI DI IP FLGS H FLGS L S DS SS ES UMULTOR SE UMULTOR UMULTOR STK POINTER SE POINTER SOURE INDEX DESTINTION INDEX INSTRUTION POINTER STTUS FLGS ODE SEGMENT DT SEGMENT STK SEGMENT EXTR SEGMENT 8386 31 16 8 7 31 16 H H H DH X X X D X SI DI P SP IP FLGS S SS DS ES FS GS L L L DL EX EX EX EDX ESI EDI EP ESP EIP EFLGS ODE STK DT EXEMPEL - ckumulator Motorola 68 Motorola 68H12 8 7 8-IT UMULTORS ND OR D 16-IT DOULE UMULTOR D X INDEX REGISTER X Y INDEX REGISTER Y 7 UMULTOR SP STK POINTER 7 UMULTOR P PROGRM OUNTER 7 IX INDEX REGISTER S X H I N Z V ONDITION ODES REGISTER P PROGRM OUNTER SP STK POINTER 5 H I N Z V ONDITION ODES REGISTER Rockwell 652 FLEX 7 7 UMULTOR UMULTOR 7 7 Y INDEX REGISTER Y UMULTOR 7 7 X INDEX REGISTER X X INDEX REGISTER 8 7 7 PH PL PROGRM OUNTER P PROGRM OUNTER 7 1 S STK POINTER SP STK POINTER 7 3 N V 1 D I Z PROESSOR STTUS REG P N Z V ONDITION ODES REGISTER Introduktion till Freescale M68HS12 7 Introduktion till Freescale M68HS12 8

Programmerarens bild datatyper/storlek t t Programmerarens bild adresserbart minne char short long long floating pointers (8) int int int point (16) (32) (64) (IEEE) 68HS12 X X 16/2 bit oldfire V1 X X X 32 bit oldfire V4 X X X X 32 bit PowerP X X X X 32 bit PowerP (64) X X X X 64 bit 886 X X 16/2 bit 8386 X X X 32 bit 8486 X X X X 32 bit X86-32 X X X X 32 bit X86-64 X X X X 64 bit DRESSUSS RNDOM ESS 16 bitar 2 16 = 65 536 byte = 64 kbyte 2 bitar 2 2 = 1 48 576 byte = 1 24 kbyte = 1 Mbyte 24 bitar 2 24 = 16 777 216 byte = 16 384 kbyte = 16 Myte 32 bitar 2 32 = 4 294 967 296 byte = 4 194 34 kbyte = 4 96 Mbyte = 4 Gbyte 64 bitar 2 64 = 1,84467447 1 19 byte = 16 Ebyte Introduktion till Freescale M68HS12 9 Introduktion till Freescale M68HS12 1 Historik ik Freescale 68HS12 68 681 689 68H11 68H12 68H12S 68H12SX HS12 adressrum, IO och minne PU12, klockor och räknare Random ccess - Minne RWM, FLSH, EEPROM Periferienheter Parallell Input/Output: Seriell e kommunikation o D PWM 1974 1978 1982 1986 199 1994 1998 22 26 Introduktion till Freescale M68HS12 11 Introduktion till Freescale M68HS12 12

HS12DG256, blockdiagram HS12DG256, core Introduktion till Freescale M68HS12 13 Introduktion till Freescale M68HS12 14 HS12DG256, core Spänningsregulatorer (flera olika spänningar används internt) ackground Debug Mode för test/avlusning En kristall utgör bas för alla klockfrekvenser i systemet Realtidsklocka och andra klockfunktioner Programmerbara funktioner Primärminne Icke flyktigt minne Upp till 256 Kbyte i minnesbankar 48 k utan användning av bankar 4 k EEPROM Flyktigt minne 12 k RM Introduktion till Freescale M68HS12 Introduktion till Freescale M68HS12 16

EXEMPEL, linjärt adressrum EXEMPEL, bankat adressrum FFFF FFFF FLSH FLSH FFF 3 31 32 33 34 35 36 37 38 39 3 3 3 3D ankat FLSH Dx256 8 7FFF FLSH 4 3FFF 1 FFF 4 3FF RWM ( RM ) Synlig del av EEPROM MHS12 Interna register 4 3FFF 1 FFF 4 3FF RWM ( RM ) Synlig del EEPROM MHS12 Interna register Introduktion till Freescale M68HS12 17 Introduktion till Freescale M68HS12 18 EXEMPEL, i laborationsdator t M12 Periferikretsar i HS12DG256 FFFF FLSH (monitor/debugger) FFF 3 31 32 33 34 35 36 37 38 39 3 3 3 3D ankat FLSH Dx256 D nalog till Digital omvandling ET- Räknarkretsar för noggrann tidmätning i SI synkron seriekommunikation 8 7FFF 4 38 1 FFF 4 3FF FLSH (monitor/debugger) RWM ( RM ) Externt IO-gränssnitt MHS12 Interna register Minne tillgängligt för användarprogram Parallell In-Utmatning PWM Pulsbreddsmodulering Etc Introduktion till Freescale M68HS12 19 Introduktion till Freescale M68HS12 2

HS12DG256, core entralenhet PU12 Registeruppsättning i PU12 8 7 D X Y SP P 7 S X H I N Z V 8-IT UMULTORS ND OR 16-IT DOULE UMULTOR D INDEX REGISTER X INDEX REGISTER Y STK POINTER PROGRM OUNTER ONDITION ODES REGISTER Introduktion till Freescale M68HS12 21 Introduktion till Freescale M68HS12 22 dresseringssätt Inherent Vi känner igen de flesta adresseringssätten i från FLEX. Indexerade adresseringssätt kan även användas med register X,Y och SP ibland också med dp(p (P-relativt) t) Maskinkod k för instruktionen ykel för cykel beskrivning Nytt här är också Indirekt adressering Flaggpåverkan Introduktion till Freescale M68HS12 23 Introduktion till Freescale M68HS12 24

Omedelbar (Immediate) 8-bit/16-bit Direkt (Direct Page) bsolut (Extented) opr8i, 8-bitars konstant om 8-bitars register Opr16i, 16-bitars konstant om 16-bitars register opr16a, kan adressera hela adressintervallet -FFFF opr8a, kan enbart adressera intervallet -FF, anger minst signifikant byte av adressen Introduktion till Freescale M68HS12 25 Introduktion till Freescale M68HS12 26 P-relativ ( RNH -instruktioner) 8-bitars offset (-128..127) 9-bitars offset (-256..255) 16-bitars offset (-32768..32767) Indexerade d adresseringssätt: Register relativ, konstant offset asregister kan vara något av: X,Y,SP,P P EXEMPEL: LD 5,X ST 2,Y LD sym,p Observera, ingen syntaktisk skillnad. ST off,sp ssemblator väljer effektivast kodning Specialfall: n,pr LD sym,pr ntag P pekar på nästa instruktion. Operanden är här P-sym, jfr offsetberäkning för R -instruktioner Introduktion till Freescale M68HS12 27 Introduktion till Freescale M68HS12 28

Indexerade d adresseringssätt: uto pre- increment/decrement uto post- increment/decrement Indexerade d adresseringssätt: Register relativ, offset i ackumulator asregister kan vara något av: XYSP X,Y,SP EXEMPEL: LD 1,-X ST 4,Y- ST 8,+SP LD 7,SP+ asregister kan vara något av: X,Y,SP,P P EXEMPEL: LD,X ST,Y ST D,SP LD D,P Introduktion till Freescale M68HS12 29 Introduktion till Freescale M68HS12 3 Indexerade d adresseringssätt: Indirekt EXEMPEL: LD ST ST LD [D,X] [sym,pr] [2,SP] [D,Y] Instruktionsgrupper LOD-instruktioner LD Load (M) LD Load (M) LDD Load D (M:M+1) 1 : LDS Load SP (M:M+1) 1 SP H :SP L LDX Load index register X (M:M+1) M 1 XX H :X L LDY Load index register Y (M:M+1) 1 Y H :Y L LES Load effective address into SP Effective address SP LEX Load effective address into X Effective address X LEY Load effective address into Y Effective address Y STORE-instruktioner ST Store () M ST Store () M STD Store D () M, () M+1 STS Store SP SP H :SP L M:M+1 STX Store X X H :X L M:M+1 STY Store Y Y H :Y L M:M+1 MOVE-instruktioner MOV Move byte (8 bitar) (M 1 ) M 2 MOVW Move word (8 bitar) (M:M+1) 1 M:M+1 2 EXEMPEL: Kopiera byte LD $3 ST $31 eller LD $3 ST $31 eller MOV $3,$31 EXEMPEL: Kopiera word LDD $3 STD $31 eller LDX $3 STX $31 eller LDY $3 STY $31 eller MOVW $3,$31 Introduktion till Freescale M68HS12 31 Introduktion till Freescale M68HS12 32

Instruktioner för kopiering av registerinnehåll T Transfer to () anm: Ekv. Med TFR, TP Transfer to R () R anm: Ekv. Med TFR,R T Transfer to () TFR Transfer register to register (,,R,D,X,Y eller SP) (,,R,D,X,Y eller SP) TP Transfer R to anm: Ekv. Med TFR R, (R) TSX Transfer SP to X (SP) X anm: Ekv. Med TFR SP,X TSY Transfer SP to Y (SP) Y anm: Ekv. Med TFR SP,Y TXS Transfer X to SP (X) SP anm: Ekv. Med TFR X,SP TYS Transfer Y to SP (Y) SP anm: Ekv. Med TFR Y,SP Instruktioner för växling av registerinnehåll EXG Exchange register to register (,,R,D,X,Y eller SP) (,,R,D,X,Y eller SP) XGDX Exchange D with X (D) (X) anm: Ekv. Med EXG D,X - EXG X,D XGDY Exchange D with Y (D) (Y) anm: Ekv. Med EXG D,Y - EXG Y,D Instruktion för teckenutvidgning SEX Teckenutvidga 8 bitars operand (,,R) (D,X,Y eller SP) nvänd denna Övriga finns här av kompatibilitetsskäl nvänd denna Övriga finns här av kompatibilitetsskäl Introduktion till Freescale M68HS12 33 Ovillkorlig li programflödeskontroll ll SR nrop av subrutin. P-relativ operand SP-2 SP RetdrL:RetdrH M (SP) :M (SP+1) dress P R Hopp till adress. dress P P-relativ operand LL nrop av subrutin SP-2 SP bsolut operand (2 bitar) RetdrL:RetdrH nm: nvändes vid M (SP) :M (SP+1) programflödesändring mellan Subrutinadress P olika minnesbankar ($8- SP-1 SP $FFF) (PPGE) M (SP) PGE PPGE Subrutinadress P JMP Hopp till address. Subrutinadress P bsolut operand JSR nrop av subrutin SP-2 SP bsolut operand RetdrL:RetdrH M (SP) :M (SP+1) Subrutinadress P RT Återvänd från subrutin. M (SP) (PPGE) RTS Returadress från STK och PPGE Återvänd från subrutin. Returadress från STK Introduktion till Freescale M68HS12 SP+1 SP M (SP) :M (SP+1) P H :P L SP+2 SP M (SP) :M (SP+1) P H :P L SP+2 SP 34 Instruktioner för addition ddera till ()+() X ddera till X anm: Ekv. med LEX,X (X)+() X Y ddera till Y (Y)+() Y anm: Ekv. med LEY,Y D ddition med carry till ()+(M)+ D ddition med carry till ()+(M)+ DD ddition till ()+(M) DD ddition till ()+(M)(M) DDD ddition till D (:) (D)+(M:M+1) D IN Incrementera i minnet (M)+$1 M IN Inkrementera ()+ $1 IN Inkrementera ()+ $1 INS Inkrementera SP (SP)+ $1 SP anm: Ekv. med LES 1,SP INX Inkrementera X (X)+ $1 X anm: Ekv. med LEX 1,X INY Inkrementera Y (Y)+ $1 Y anm: Ekv. med LEY 1,Y Instruktioner för logiska operationer ND itvis och med minnesinnehåll () (M) ND itvis och med minnesinnehåll () (M) ND itvis och med minnesinnehåll (R) (M) R EOR itvis exklusivt eller med () (M) minnesinnehåll EOR itvis exklusivt eller med () (M) minnesinnehåll OR itvis eller med minnesinnehåll ()+(M) OR itvis eller med minnesinnehåll ()+(M) OR itvis eller R med minnesinnehåll (R)+(M) R EXEMPEL: Nollställ bit 7-bit 4 på adress $3 LD $3 ND #%1111 ST $3 EXEMPEL: Ettställ bit 7 och bit på adress $3 Instruktioner för subtraktion S Subtrahera från ()-()() S Subtrahera med borrow från ()-(M)- S Subtrahera med borrow från ()-(M)- SU Subtrahera från ()-(M) SU Subtrahera från ()-(M) SUD Subtrahera från D (:) (D)-(M:M+1) D DE Dekrementera i minnet (M)-$1 M DE Dekrementera ()- $1 DE Dekrementera ()- $1 DES Dekrementera SP (SP)- $1 SP anm: Ekv. med LES -1,SP DEX Dekrementera X (X)- $1 X anm: Ekv. med LEX -1,X DEY Dekrementera Y (Y)- $1 Y anm: Ekv. med LEY -1,Y Unära operationer L Nollställ carryflaggan i R LI Nollställ avbrottsmask i R I LR Nollställ minnesinnehåll $ M LR Nollställ $ LR Nollställ $ LV Nollställ overflowflaggan I R V OM Ettkomplementera minnesinnehåll $FF-(M) M OM Ettkomplementera $FF-() OM Ettkomplementera t $FF-() NEG Tvåkomplementera minnesinnehåll $-(M) M NEG Tvåkomplementera $-() NEG Tvåkomplementera $-() LD $3 OR #%11 ST $3 EXEMPEL: Invertera bit 2 och bit1 på adress $3 LD $3 EOR #%11 ST $3 Introduktion till Freescale M68HS12 35 Introduktion till Freescale M68HS12 36

Logiska skiftoperationer ti it ritmetiskati skiftoperationer ti LSL Logiskt vänsterskift i minnet LSL Logiskt vänsterskift LSL Logiskt vänsterskift LSLD Logiskt vänsterskift D b LSR Logiskt högerskift i minnet LSR Logiskt högerskift LSR Logiskt högerskift b b b SL ritmetiskt vänsterskift i minnet (ekv. med LSL) SL ritmetiskt vänsterskift (ekv. med LSL) SL ritmetiskt vänsterskift (ekv. med LSL) SLD ritmetiskt vänsterskift D (ekv. med LSLD) b b b LSRD Logiskt högerskift D b b Exempel på användning: Multiplikation med 2, tal utan tecken. Division med 2, tal utan tecken. SR SR SR ritmetiskt högerskift i minnet ritmetiskt högerskift ritmetiskt högerskift Exempel på användning, högerskift: Division med 2, tal med tecken. b Introduktion till Freescale M68HS12 37 Introduktion till Freescale M68HS12 38 Instruktioner för rotation ti (carry-skift) ROL Rotation vänster via carry i minnet ROL Rotation vänster via carry ROL Rotation vänster via carry b 7 ROR Rotation höger via carry i minnet ROR Rotation höger via carry ROR Rotation höger via carry b 7 b b EXEMPEL: Skifta ett 32-bitars tal på adress $3, 1 steg åt höger LSR $3 ROR $31 ROR $32 ROR $33 Instruktioner för jämförelser och testt Jämför med ()-() MP Jämför med minne ()-(M) MP Jämför med minne ()-(M)(M) PD Jämför D med minne (:)-(M:M+1) PS Jämför SP med minne (SP)-(M:M+1) PX Jämför X med minne (X)-(M:M+1) PY Jämför Y med minne (Y)-(M:M+1) TST Testa minnesinnehåll (M)-$ TST Testa register ()-$ TST Testa register ()-$ JÄMFÖRELSE Två operander INÄR operation TEST En operand UNÄR operation Exempel på användning: Skiftoperationer på tal större än 8 bitar. Introduktion till Freescale M68HS12 39 Introduktion till Freescale M68HS12 4

Villkorligli programflödeskontroll ll Mnemonic Funktion Villkor Enkla flaggtest S Hopp om carry =1 Hopp om IKE carry = EQ Hopp om zero Z=1 NE Hopp om IKE zero Z= MI Hopp om negative N=1 PL Hopp om IKE negative N= VS Hopp om overflow V=1 V Hopp om IKE overflow V= Test av tal utan tecken HI Villkor: R>M + Z = HS Villkor: R M = LO Villkor: R<M =1 LS Villkor: R M + Z = 1 Test av tal med tecken GT Villkor: R>M Z + ( N V ) = GE Villkor: R M N V = LT Villkor: R<M N V = 1 LE Villkor: R M Z + ( N V ) = 1 nvänds typiskt tillsammans med jämförelse/test instruktioner. EXEMPEL LD $3 MP $31 EQ L1. Instruktioner för räknande programslingor Mnemonic Funktion Villkor DEQ Dekrementera innehåll i register. Hoppa om resultatet =. (register: DXYSP),,D,X,Y,SP) (register) 1 register om(register)=; hoppa ; annars: nästa instruktion DNE Dekrementera innehåll i register. (register) 1 register Hoppa om resultatet. om(register) ; hoppa ; (register:,,d,x,y,sp) annars: nästa instruktion IEQ Inkrementera innehåll i register. (register) + 1 register Hoppa om resultatet =. om(register)=; hoppa ; (register:,,d,x,y,sp) annars: nästa instruktion INE Inkrementera innehåll i register. (register) + 1 register Hoppa om resultatet. om(register) ; hoppa ; (register:,,d,x,y,sp) annars: nästa instruktion TEQ TNE Testa innehåll i register. Hoppa om resultatet =. (register:,,d,x,y,sp) Testa innehåll i register. Hoppa om resultatet t t. (register:,,d,x,y,sp) om(register)=; hoppa ; annars: nästa instruktion om(register) ; hoppa ; annars: nästa ät instruktion Sammansatta instruktioner. EXEMPEL DEQ,L2 samma sak som DE EQ L2 Introduktion till Freescale M68HS12 41 Introduktion till Freescale M68HS12 42