C: Assembler Aufruf mit Parametern

Gast #434721
Lesenswert?
• ▲
▼
Ich möchte dieses Assembler Programm aus dem C Programm aufrufen. Dabei 
soll ein Wert (im Bsp. 0x23) an das Assembler Programm übergeben werden.
Wie funktioniert das? Wo finde ich die 0x23?

Assembler Datei:

#define _ASSEMBLER_ 1
#define __SFR_OFFSET 0
#include <avr/io.h>
#include <ports.h>

    .global display_command
display_command:
        cbi    LCD_PORT, LCD_CLK
  cbi    LCD_PORT, LCD_DATA
  sbi    LCD_PORT, LCD_CLK

  ldi    r19, 8
dis_cmd1:
  cbi    LCD_PORT, LCD_CLK
  mov    r16, r24
  rol    r16

C:
extern void display_command(char data);

display_command(0x23);
Gast #434758
Lesenswert?
• ▲
▼
Ja, das habe ich gerade auch im Dissassembler gesehen, dass es R24 ist.
Die verwenden wohl einfach bestimmte Register je nach Anzhal der 
Parameter.

Ich vermisse im Dissassembler Fenster jedoch den Code für den Assembler 
File.
Schreibt AVR Studio den nicht mit rein?
Gast #434928
Lesenswert?
• ▲
▼
Es ging um eine Grafikroutine, die ich in Assembler schreiben wollte, 
damit das Display schneller ist.
Das wäre in Inline Assembler zu aufwendig.
Mittlerweile läuft der Code und wird als externe Assembler Funktion 
eingebunden. Damit ist das Display 3,5-4 mal schneller.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.