[8051] Übungsbsp

Gast #2518997
Hallo!

Ich suche Übungsbps zum Assembler programmiern auf Papier..., da wir 
noch ziemliche Anfänger sind :D.

Gerlente Befehle: Alle MOV, ADD, SUB, DIV, MUL - dann SJMP, AJMP und 
LJMP - JB, JNB, JBC... CJNE, DJNZ, JZ und JNZ.. diese Jump-befehle halt.

while-schleife + do-while auch schon gemacht.

Nun frage ich euch ob ihr mir ein paar einfache Übungsbsp sagen könnt.

Vielleicht so in dem Schwirigkeitsgrad... - Das war unser letztes Bsp:
Ein Block im internen RAM(Startadresse 20hex, länge = 10 Bytes) soll 
gelöscht werden.

Danke im voraus!

PS: seit ca. 4 monaten assembler programmieren noch auf papier und nur 2 
stunden pro woche

mfg assembler_anfänger
Gast
assembler_anfänger schrieb:
> Ich suche Übungsbps

Was soll BPS sein? Wikipedia dazu:

bps ist eine Abkürzung für:

    * Basispunkt, Einheit im Finanzwesen; 100 Basispunkte entsprechen 
einem Prozentpunkt
    * bits per second, Bits pro Sekunde, das Maß der Datenrate
    * Bilder pro Sekunde (englisch Frames per second, fps), siehe 
Bildfrequenz
Gast
Sorry ich meine Bsps --> Beispiele :)

Ja was kann ich dafür das wir das am Anfang noch so auf Papier machen 
:D.


Nochmal: Ich suche Übungsbeispiele zu 8051er Befehle... also so ein 
ähnliches Bsp und mit dem Schwirigkeitsgrad... oben wie ich es gepostet 
habe :-)

Gruß
Persönliche Seite
Krapao schrieb:
> Auf dem Papier assemblieren ist schon strange,

Das war das Erste, was wir in der Ausbildung mit Controllern gemacht 
haben. Wochenlang. Den Maschinencode dann mit einem Editor zum Hexfile 
gemacht und auf den Controller geschoben. Besser lernt man das Prinzip 
eines Controllers/Prozessors nicht kennen.

So hab ich die 8051er kennen gelernt und mache es bei jedem Controller 
heute noch so, mittlerweile aber schon mehr im Kopf, nur um zu sehen, ob 
ich's noch kann und schnell kapiert hab ;)
PDM an P1.0
1
loop:  LCALL  uwait
2
  INC  DPTR
3
  ADD  A, DPH  // Oberes Byte des DPTR aufaddieren
4
  JC  off  // Bei einem Ueberlauf anschalten
5

6
  // Bei kleinen Werten passiert dies selten, bei grossen haeufig ...
7
  // bei 0 nie, bei 1 alle 256 Durchläufe, bei 2 alle 128 Durchl., bei 255 eigentlich immer
8

9
on:  CLR  P1.0
10
  LJMP  loop
11

12
off:  SETB  P1.0
13
  LJMP    loop
14

15
// warten
16

17
uwait:  MOV  R0, #0x80
18
uwait2:  DJNZ  R0, uwait2
19
  RET

Mit einer R-C-Kombination an P1.0 bekommt man einen Sägezahn.


Krapao schrieb:
> Auf dem Papier assemblieren ist schon strange,

So habe ich meinen ersten Eprombrenner geschrieben und von Hand ins 
EPROM gebrannt. Dafür weiß ich aber auch genau, wie der Krempel 
funktioniert.

Ich finde die Vorgehensweise gut!


Gruß

Jobst
Ich hab aus meiner Schulzeit noch genug 8051 Zeugs in Assembler plus 
entsprechende Mitschriften herumliegen (dürfte aus dem Jahre 2007 
sein..)

Themen:
- Befehlssatz
- Adressierungsarten
- Register und Speicherstruktur
- Interrupts
- Ports
- Parameterübergabe zwischen C und Assembler


Wennst was brauchst, meld dich, ist immer lästig wenn ihr nicht 
registriert seit, kann man keine Nachrichten schreiben ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.