4 Assembler für die 8051-Controller-Familie

Ähnliche Dokumente
Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie

Zusammenfassung der Assemblerbefehle des 8051

MOP: Befehlsliste für den Mikrocontroller 8051

Die 8051-Mikrocontrollerfamilie. 3. Die 8051-Mikrocontrollerfamilie

1. Inhaltsverzeichnis

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister)

Praktikum Mikrorechner 8 (Pulsweitenmodulation und Automaten)

Assembler (NASM) Crashkurs von Sönke Schmidt

RISC-Prozessoren (1)

Instruktionssatz-Architektur

EDT-REFERAT Adressierungsarten

Neues vom STRIP Forth-Prozessor

HC680 PROGRAMMER'S REFERENCE MANUAL

0 C (Carry) Überlauf des 8ten Bits. 1 DC (Digit Carry) Überlauf des 4ten Bits. Mnemonic Parameter Beschreibung Status-Flags.

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Komponenten eines Mikrocontrollers

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur

Befehle zur Verarbeitung von Daten ( data processing ):

MikroController der 8051-Familie


Die Mikroprogrammebene eines Rechners

Grundbegriffe der Informatik Tutorium 5

LCD-Display am MVUS (nur einfachste Betriebsweise im Text Display Modus - ausführliche Beschreibung )

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005

Use of the LPM (Load Program Memory)

U23 Assembler Workshop

Der Anschluss eines seriellen 16kb EEProms an die I²C Schnittstelle ist denkbar einfach: Hier als Beispiel mit einem ST24C16:

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Praktikum Mikrorechner 3 (Adressierungsarten)

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

Daniel Betz Wintersemester 2011/12

Einführung in AVR Assembler

Grundlagen Mikroprozessortechnik

Mikroprozessor als universeller digitaler Baustein

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

MIX-Befehle - Aufbau

Kurzbeschreibung der Hardware, das Schreiben von Software, Testen und Simulation mittels ASM51 und C51 sowie dscope (tscope)-51 und µprofi 51

Assembler - Adressierungsarten

Rechnergrundlagen SS Vorlesung

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Steffen Weißer Juni 2003 TG 12/3

Der Toy Rechner Ein einfacher Mikrorechner

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Rechnernetze und -Organisation. Teil B (30. März 2011) 2011 Michael Hutter Karl C. Posch

U23 Assembler Workshop

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Einführung in die Informatik

Mikrocontroller-Programmierung

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

Assembler Integer-Arithmetik

Datenpfad einer einfachen MIPS CPU

Rechnerstrukturen 1: Der Sehr Einfache Computer

10. Der Befehlssatz des MSP 430

Rechnerorganisation. Überblick über den Teil 13

Gegenüberstellung von Assembler- und C-Programmierung

1. Grundlagen der Informatik Organisation und Architektur von Rechnern

Speicheraufbau des AT89C5131

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Die Befehle mit dem Ziel IP sind nichts anderes als Sprungbefehle, sie sind unten noch mal aufgeführt.

Zähler- und Zeitgeber-Baugruppen

ALU ALU. ALU-Aufbau. Eine ALU (arithmetisch-logische Einheit) besteht in der Regel aus. Addierer. Logischer Einheit. Shifter

B1 Stapelspeicher (stack)

Praktikum Mikrorechner 1 (Einführung)

Grundlagen der Rechnerarchitektur

ProcessorsTechnik Labor LCD-Uhr

Datenpfad einer einfachen MIPS CPU

10. Die Adressierungsarten des MSP 430

Das Projekt Pathfinder

TI-Übung Assembler. Andreas I. Schmied AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS2005

3 Rechnen und Schaltnetze

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Teil 2: Rechnerorganisation

Rechnergrundlagen SS Vorlesung

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Forth im FPGA. Andrew Read's N.I.G.E.-Machine. Ulrich Hoffmann

Shangrila. One Instruction Set Computer

8.0 Erweiterung mit dem 8 Bit D/A Maxim MAX5382

Beispiel: A[300] = h + A[300]

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 9, Dienstag 18.

1 Eigenes zu Interrupts und...

7.0 PWM - Pulsbreitenmodulation

"Organisation und Technologie von Rechensystemen 4"

Teil III: Wat macht ene Mikrokontroller?

Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7:

Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler

Mikrocomputertechnik

Informatikgrundlagen I Grundlagen der Informatik I

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

Frei programmierbare 4-8 Digit / Bargraph LED-Anzeige für µcontrolleranwendungen

Rechnern netze und Organisatio on

LCD board EB

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 1/20

8. Intel IA-32 Prozessoren: Befehlsübersicht

Die ARM-Mikroarchitektur. Acorn RISC Machine ARM. Asm Prak SS03 p.1/13

Transkript:

4 Assembler für die 8051-Controller-Familie Tabelle 4.1 Wichtige Schreibweisen und Bedeutungen für die Befehle Abkürzung #data data addr Rr @Rr code addr Bedeutung Daten sind in der Instruktion codiert - # = Zahl Speichere innerhalb des Chips 0 r 7 Allgemein verwendbares der bänke 0 r 1 indirekt ierbares der bänke 16-Bit-Adresse decodiert als: volle 16-Bit-Adresse 11-Bit-Seitene 8-Bit relativer Offset Akkumulator Carry Flag Bit-Adresse auf dem Chip A C bit addr / bit addr Komplementierter Inhalt der Bit-Adresse DPTR Datenzeiger ( Data Pointer ) PC Programmzähler ( Program Counter ) AB Paar

62 Transfer Instructions Internal RAM mov A,Rr r=0-7 11101rrr E8+r P 1 1 Move register Rr contents to Lade Akkumulator mit Inhalt von Rr mov Rr,A r=0-7 11111rrr F8+r - 1 1 Move contents to Lade Rr mit Inhalt des Akkumulators register Rr mov A,@Ri i=0-1 1110011i E6+i P 1 1 Move contents of data memory Lade Akkumulator mit dem Inhalt der addressed by Ri to internen Datenspeicherzelle, die durch den Inhalt von Ri mov @Ri,A i=0-1 1111011i F6+i - 1 1 Move to data memory addressed by Ri Lade interne Datenspeicherzelle, die durch den Inhalt von Ri, mit dem Inhalt des Akkumulators mov A,dadr* - 11100101 E5 P 2 1 Move contents of to (mov A,ACC is not a valid instruction) Lade Akkumulator mit Inhalt von dadr (mov A,ACC ist kein gültiger Befehl) mov dadr,a - 11110101 F5-2 1 Move contents to Lade dadr mit Inhalt des Akkumulators mov A,#const8-01110100 74 P 2 1 Move immediate data to Lade Akkumulator mit 8 Bit Konstante mov Rr,#const8 r=0-7 01111rrr 78+r - 2 1 Move immediate data to register Lade Rr mit 8 Bit Konstante mov @Ri,#const8 i=0-1 0111011i 76+i - 2 1 Move immediate data to data memory addressed by Ri Lade interne Datenspeicherzelle, die durch den Inhalt von Ri, mit 8 Bit Konstante Lade dadr mit 8 Bit Konstante mov dadr,#const8-01110101 75-3 2 Move immediate data to data memory mov Rr,dadr r=0-7 10101rrr A8+r - 2 2 Load register Rr with contents Lade Rr mit Inhalt von dadr of mov dadr,rr r=0-7 10001rrr 88+r - 2 2 Load with contents Lade dadr mit Inhalt von Rr of register mov dadr,@ri i=1-0 1000011i 86+i - 2 2 Move contents of data memory Lade dadr mit Inhalt der Datenspeicherzelle, die durch Ri addressed by Ri to mov @Ri,dadr i=0-1 1010011i A6+i - 2 2 Move data memory to contents Lade interne Datenspeicherzelle, die of data memory addressed by durch Ri, mit Inhalt von Ri dadr mov dadr1,dadr2-10000101 85-3 2 Move data memory to data Lade dadr1 mit Inhalt von dadr2 memory mov - 10010000 90-3 2 Move immediate data to data Lade Daten-Pointer DPTR mit 16 Bit DPTR,#const16 pointer Konstante Transfer Instructions External RAM movx A,@Ri i=0-1 1110001i E2+r P 1 2 Move contents of external data Lade Akkumulator mit dem Inhalt der memory addressed by Ri to externen Datenspeicherzelle, die durch Ri movx @Ri,A i=0-1 1111001i F2+i - 1 2 Move contents to Lade externe Datenspeicherzelle, die external data memory, addressed durch den Inhalt von Ri, by Ri mit dem Inhalt des Akkumulators movx A,@DPTR - 11100000 E0 P 1 2 Move contents of external data Lade Akkumulator mit dem Inhalt der memory addressed by DPTR to externen Datenspeicherzelle, die durch DPTR movx @DPTR,A - 11110000 F0-1 2 Move contents to Lade externe Datenspeicherzelle, die external data memory, addressed durch den Inhalt von DPTR iert by DPTR ist, mit dem Inhalt des Akkumulators Transfer Instructions Internal RAM xch A,Rr r=0-7 11001rrr C8+r P 1 1 Exchange and register Vertausche die Inhalte von Akkumula- contents tor und Rr xch A,dadr - 11000101 C5 P 2 1 Exchange and data Vertausche die Inhalte von Akkumula- memory contents tor und dadr xch A,@Ri i=0-1 1100011i C6+i P 1 1 Exchange and data Vertausche die Inhalte von Akkumulale, memory addressed by Ri tor und der internen Datenspeicherzel- die durch den Inhalt von Ri iert ist xchd A,@Ri i=0-1 1101011i D6+i P 1 1 Exchange low order nibble of Vertausche die Inhalte der niederwertigen Halbbytes von Akkumulator und and data memory der internen Datenspeicherzelle, die durch den Inhalt von Ri swap A - 11000100 C4-1 1 Exchange nibbles of s Vertausche die Bytehälften des Akkumulators push dadr - 11000000 C0-2 2 Increment stack pointer. Push data memory onto stack pop dadr - 11010000 D0-2 2 Pop data memory form stack Decrement stack pointer Der Stack-Pointer wird um 1 erhöht Der Inhalt von dadr wird im Stack abgelegt Übertrage den Inhalt der durch den Stack-Pointer ierten Datenspeicherzelle nach dadr; der Stack- Pointer wird um 1 erniedrigt

4 Assembler für die 8051-Controller-Familie 63 movc A,@A+DPTR Transfer Instructions ROM - 10010011 93 P 1 2 Move program memory addressed Lade Akkumulator mit dem Inhalt der by plus DPTR Programmspeicherzelle, die durch die to Summe von DPTR und Akkumulator movc A,@A+PC - 10000011 83 P 1 2 Move program memory addressed Lade Akkumulator mit dem Inhalt der by plus prog- ram counter to Programmspeicherzelle, die durch die Summe von Programmzähler und Akkumulator Bytes Cycl es Function Boolean Instructions AND anl A,Rr r=0-7 01011rrr 58+r P 1 1 Logical AND with register contents to durch das Ergebnis der UNDdem Inhalt von Rr anl A,@Ri i=0-1 0101011i 56+1 P 1 1 Logical AND with data memory contents addres-durcsed das Ergebnis der UNDdem by Ri to Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri anl A,dadr - 01010101 55 P 2 1 Logical AND with contents of direct to anl A,#const8-01010100 54 P 2 1 Logical AND with immediate data to der 8 Bit Konstanten anl dadr,a - 01010010 52-2 1 Logical AND with Der Inhalt von dadr wird überschrieben contents of direct to direct anl dadr,#const8-01010011 53-3 2 Logical AND contents of direct Der Inhalt von dadr wird überschrie- address and immediate data toben Verknüpfung der 8 Bit Konstanten mit Boolean Instructions OR orl A,Rr r=0-7 01001rrr 48+r P 1 1 Logical OR with register contents to durch das Ergebnis der ODERdem Inhalt von Rr orl A,@Ri i=0-1 0100011i 46+1 P 1 1 Logical OR with data memory contents addressed by Ri to durch das Ergebnis der ODER- dem Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri orl A,dadr - 01000101 45 P 2 1 Logical OR with contents of direct to durch das Ergebnis der ODERdem Inhalt von dadr orl A,#const8-01000100 44 P 2 1 Logical OR with immediate data to durch das Ergebnis der ODER- der 8 Bit Konstanten orl dadr,a - 01000010 42-2 1 Logical OR with Der Inhalt von dadr wird überschrieben durch das Ergebnis der ODER- contents of direct to direct orl dadr,#const8-01000011 43-3 2 Logical OR contents of direct Der Inhalt von dadr wird überschrieben durch das Ergebnis der ODER- address and immediate data to Verknüpfung der 8 Bit Konstanten und Boolean Instructions EXCLUSIVE OR xrl A,Rr r=0-7 01101rrr 68+r P 1 1 Logical XOR with register contents to durch das Ergebnis der EXODERdem Inhalt von Rr xrl A,@Ri i=0-1 0110011i 66+1 P 1 1 Logical XOR with data memory contents addressed durch das Ergebnis der EXODERdem by Ri to Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri

64 xrl A,#const8-01100100 64 P 2 1 Logical XOR with immediate data to durch das Ergebnis der EXODER- der 8 Bit Konstanten xrl dadr,a - 01100010 62-2 1 Logical XOR with Der Inhalt von dadr wird überschrieben durch das Ergebnis der EXODER- contents of direct to direct xrl dadr,#const8-01100011 63-3 2 Logical XOR contents of direct Der Inhalt von dadr wird überschrieben durch das Ergebnis der EXODER- address and immediate data to Verknüpfung der 8 Bit Konstanten und Boolean Instructions COMPLEMENT / CLEAR ACC. cpl A - 11110100 F4 P 1 1 Complement Komplementiere Akkumulator (Einer Komplement) clr A - 11100100 E4 P 1 1 Clear Lösche den Akkumulator Instructions for Bit Manipulation TRANSFER / AND / OR / CLEAR / COMPLEMENT / SET Byt- Cyc Function es les mov C,badr - 10100010 A2 CY 2 1 Move contents of bit to Lade Carry mit Inhalt von badr carry mov badr,c - 10010010 92-2 2 Move contents of carry to bit Lade badr mit Inhalt des Carry anl C,badr - 10000010 82 CY 2 2 Logical AND carry with contents of bit das Ergebnis der UND-Verknüpfung von Carry und Inhalt von badr anl C,/badr - 10110000 B0 CY 2 2 Logical AND carry with complement of contents of bit orl C,badr - 01110010 72 CY 2 2 Logical OR carry with contents of bit das Ergebnis der UND-Verknüpfung von Carry und dem invertierten Inhalt von badr das Ergebnis der ODER-Verknüpfung von Carry und Inhalt von badr orl c,/badr - 10100000 A0 CY 2 2 Logical OR carry with complement of contents of bit address das Ergebnis der ODER-Verknüpfung von Carry und dem invertierten Inhalt von badr clr C - 11000011 C3 CY 1 1 Clear carry Carry löschen clr badr - 11000010 C2-2 1 Clear contents of bit Lösche Inhalt von badr cpl C - 10110011 B3 CY 1 1 Complement carry Carry invertieren cpl badr - 10110010 B2-2 1 Complement contents of bit Invertiere Inhalt von badr address setb C - 11010011 D3 CY 1 1 Set carry Carry setzen setb badr - 11010010 D2-2 1 Set contents of bit address Setze Inhalt von badr add A,Rr r=0-7 00101rrr 28+r CY,AC, add A,@Ri i=0-1 0010011i 26+1 CY,AC, add A,dadr - 00100101 25 CY,AC, add A,#const8-00100100 24 CY,AC, addc A,Rr r=0-7 00111rrr 38+r CY,AC, addc A,@Ri i=0-1 0011011i 36+1 CY,AC, addc A,dadr - 00110101 35 CY,AC, 1 1 Add register contents to Arithmetic Instructions ADD Akkumulator und dem Inhalt von Rr 1 1 Add contents of data memory addressed by Ri to Akkumulator und dem Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri 2 1 Add contents of direct to 2 1 Add immediate data to 1 1 Add carry and register contents to 1 1 Add carry and contents of data memory addressed by Ri to 2 1 Add carry and contents of direct to Akkumulator und Akkumulator und der 8 Bit Konstanten Akkumulator und dem Inhalt von Rr und dem Inhalt des Carry- Akkumulator, dem Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri, und dem Inhalt des Carry- Akkumulator und dem Inhalt des Carry-

4 Assembler für die 8051-Controller-Familie 65 inc A - 00000100 04 P 1 1 Increment Zum Inhalt des Akkumulators wird 1 addiert inc Rr r=0-7 00001rrr 08+r - 1 1 Increment register Zum Inhalt des s Rr wird 1 addiert inc @Ri i=0-1 0000011i 06+1-1 1 Increment data memory contents addressed by Ri Zum Inhalt der internen Datenspeicherzelle, die durch Ri, wird 1 addiert Zum Inhalt von dadr wird 1 addiert inc dadr - 00000101 05-2 1 Increment contents of direct address inc DPTR - 10100011 A3-1 2 Increment data pointer Zum Inhalt des s DPTR wird 1 addiert da A - 11010100 D4 CY,P 1 1 Decimal adjust for addition subb A,Rr r=0-7 10011rrr 98+r CY,AC, subb A,@Ri i=0-1 1001011i 96+i CY,AC, Arithmetic Instructions DECIMAL ADJUSTING Das Ergebnis einer vorangegangenen Addition zweier BCD-Zahlen wird unter Berücksichtigung von Carry und Hilfscarry wieder zu 2 BCD-Ziffern korrigiert Arithmetic Instructions SUBTRACT 1 1 Subtract sum of register Die Summe der Inhalte von Carry und and carry from Rr wird vom Akkumulator subtrahiert. Das Ergebnis überschreibt den Akkumulator 1 1 Subtract sum of contents of Die Summe der Inhalte von Carry und data memory addressed by Ri to der internen Datenspeicherzelle, die durch Ri, wird vom Akkumulator subtrahiert. Das Ergebnis überschreibt den Akkumulator subb A,dadr - 10010101 95 CY,AC, 2 1 Subtract sum of contents of Die Summe der Inhalte von Carry und direct and carry fromder Adresse dadr wird vom Akkumulator subtrahiert. Das Ergebnis überschreibt den Akkumulator subb A,#const8-10010100 94 CY,AC, 2 1 Subtract sum of immediate Die Summe der Inhalte von Carry und data der 8 BitKonstanten wird vom Akkumulator subtrahiert. Das Ergebnis über- and carry form schreibt den Akkumulator dec A - 00010100 14 P 1 1 Decrement Vom Inhalt des Akkumulators wird 1 subtrahiert dec Rr r=0-7 00011rrr 18+r - 1 1 Decrement register Vom Inhalt des s Rr wird 1 subtrahiert dec @Ri i=0-1 0001011i 16+1-1 1 Decrement data memory contents addressed by Ri dec dadr - 00010101 15-2 1 Decrement contents of direct address mul AB - 10100100 A4 CY,OV, 1 4 Multiply with P B-register div AB - 100100100A4 CY,OV, 1 4 Divide by B- P register Vom Inhalt der internen Datenspeicherzelle, die durch Ri, wird 1 subtrahiert Vom Inhalt von dadr wird 1 subtrahiert Arithmetic Instructions MULTIPLY / DIVIDE Die Inhalte von Akkumulator und B- werden multipliziert. Das niederwertige Byte des Produktes überschreibt den Akkumulator, das höherwertige Byte das B-. Das Carry wird gelöscht, das OV-Bit wird gesetzt, wenn das Ergebnis im B- 0 ist Der Inhalt des Akkumulators wird durch den Inhalt des B-s dividiert. Der Quotient überschreibt den Akkumulator, der Rest das B-. Das Carry wird gelöscht. Bei Division durch 0 wird das OV-Bit gesetzt Shift Instructions rl A - 00100011 23-1 1 Rotate left without carry Verschiebe den Inhalt des Akkumulators um 1 Stelle nach links. Die Stelle 2 7 wird zur Stelle 2 0 verschoben rlc A - 00110011 33 CY,P 1 1 Rotate left through carry Verschiebe den Inhalt des Akkumulators um 1 Stelle nach links über das Carry. Das Carry wird an die Stelle 2 0 verschoben rr A - 00000011 03-1 1 Rotate right without carry Verschiebe den Inhalt des Akkumulators um 1 Stelle nach rechts. Die Stelle 2 0 wird zur Stelle 2 7 verschoben rrc A - 00010011 13 CY,P 1 1 Rotate left through carry Verschiebe den Inhalt des Akkumulators um 1 Stelle nach rechts. Das Carry wird an die Stelle 2 7 verschoben

66 By Cyc Function tesles Branch Instructions Unconditional Jumps ljmp adr16-00000010 02-3 2 Jump to absolute address Setze das Programm bei der 16 Bit Adresse adr 16 fort sjmp rel - 10000010 80-2 2 Jump to relative address Setze das Programm relativ zum Programmzähler fort ajmp adr11 - See Table Branch ins - 2 2 Jump to absolute address Setze das Programm bei der 11 Bit Adresse adr 11 innerhalb der 2K, auf die der Programmzähler zeigt, fort jmp adr - - - - - - Generic Jump ASM 51 generiert einen sjmp, ajmp, ljmp Befehl in Abhängigkeit der Entfernung des Sprungzieles. (Bei Vorwärts-Referenz wird grundsätzlich LJMP eingesetzt). jmp @A+DPTR - 01110011 73-1 2 Jump to sum of and data pointer Setze das Programm an der Adresse fort, die sich aus der Summe von Akkumulator und DPTR ergibt Branch Instructions Conditional Jumps jc rel - 01000000 40-2 2 Jump if carry is set Springe relativ zum Programmzähler, wenn Carry = 1 ist jnc rel - 01010000 50-2 2 Jump if carry is not set Springe relativ zum Programmzähler, wenn Carry = 0 ist jb badr,rel - 00100000 20-3 2 Jump if bit is set Springe relativ zum Programmzähler, wenn der Inhalt von badr = 1 ist jnb badr,rel - 00110000 30-3 2 Jump if bit is not set Springe relativ zum Programmzähler, wenn der Inhalt von badr = 0 ist jnb rel - 01010000 50-3 2 Jump if bit is not set Springe relativ zum Programmzähler, wenn der Inhalt von badr = 0 ist jbc badr,rel - 00010000 10-3 2 Jump and clear if bit is set Springe relativ zum Programmzähler, wenn der Inhalt von badr = 1 ist und lösche den Inhalt von badr jz rel - 01100000 60-2 2 Jump relative if Springe relativ zum Programmzähler, wenn der is set Akkumulator =0 ist jnz rel - 01110000 70-2 2 Jump relative if Springe relativ zum Programmzähler, wenn der is not zero Akkumulator 0 ist cjne A,dadr,rel - 10110101 B5 CY 3 2 Compare memory to. Springe relativ zum Programmzähler, wenn die Jump if not equal Inhalte von Akkumulator und dadr ungleich sind. Das Carry wird gesetzt, wenn dadr größer ist, sonst wird es rückgesetzt cjne A,#const8,rel cjne Rr,#const8,rel cjne @Ri,#const8,rel - 10110100 B4 CY 3 2 Compare immediate data to. Jump if not equal 0-7 10111rrr B8+r CY 3 2 Compare immediate data to register. Jump if not equal i=0-1 1011011i B6+i CY 3 2 Compare constants of indirect address to immediate data, Jump if not equal Springe relativ zum Programmzähler, wenn der Inhalte des Akkumulators ungleich konst8 ist. Das Carry wird gesetzt, wenn konst8 größer ist, sonst wird es rückgesetzt Springe relativ zum Programmzähler, wenn der Inhalte von Rr ungleich konst8 ist. Das Carry wird gesetzt, wenn konst8 größer ist, sonst wird es rückgesetzt Springe relativ zum Programmzähler, wenn der Inhalte der Datenspeicherzelle die durch Ri iert ist, ungleich konst8 ist. Das Carry wird gesetzt, wenn konst8 größer ist, sonst wird es rückgesetzt djnz Rr,rel r=0-7 11011rrr D8+r - 2 2 Decrement register and jump Der Inhalt von Rr wird um 1 erniedrigt. if not zero Ist dann der Inhalt 0, springe relativ zum Programmzähler djnz dadr,rel - 11011101 D5-3 2 Decrement memory and jumpder Inhalt von dadr wird um 1 erniedrigt. Ist if not zero dann der Inhalt 0, springe relativ zum Programmzähler Subroutine Instructions lcall adr16-00010010 12-3 2 Long call to adr 16 Der Stack-Pointer wird erhöht. Der Inhalt des Programmzählers wird im Stack abgelegt. Das Programm wird bei der Adresse adr 16 fortgesetzt acall adr11 - See Table Branch instruction - 2 2 Absolute call within current 2K Der Stack-Pointer wird erhöht. Der Inhalt des Programmzählers wird im Stack abgelegt. Das Programm wird bei der Adresse adr 11 innerhalb der 2K fortgesetzt, auf die der Programmzähler zeigt call adr11 - - - - 2 2 Generic Call ASM51 generiert einen acall, lcall Befehl in Abhängigkeit der Entfernung des Sprungziels. (Bei Vorwärtsreferenz wird grundsätzlich lcall eingesetzt. ret - 00101101 22-1 2 Return from subroutine Die oberen zwei Byte des Stack werden in den Programmzähler geladen. Der Stack-Pointer wird dabei erniedrigt reti - 00110010 32-1 2 Return from interrupt subroutine nop - 00000000 00-1 1 No operation Leerbefehl Die oberen zwei Byte des Stack werden in den Programmzähler geladen. Der Stack-Pointer wird dabei erniedrigt. Die aktuelle Interrupt-Ebene wird freigegeben