Dobrý den,prosím Vás mohl by mi někdo pomoct s jednou úlohou:
Cílem
je vytvořit v externím assembleru jednoduchou napodobeninu funkce printf. Vaše funkce se bude jmenovat myprintf a bude se chovat stejně jako klasické printf, s těmito vlastnostmi a omezeními/zjednodušeními:
- přijímá libovolný počet parametrů, kde prvním je formátovací řetězec a další jsou hodnoty pro dosazení
- ve formátovacím řetězci rozlišuje pouze tři základní značky: %i vloží číslo int, %c vloží znak, %s vloží řetězec
- čísla (%i) se vypisují vždy obyčejně v desítkové soustavě, záporná se znaménkem mínus (-) na začátku
- pro výpis jednotlivých naformátovaných znaků použijte některou vhodnou funkci CRT, např. _fputchar či putchar (skutečná funkce printf se taky takto chová)
- funkce nic nevrací. céčková deklarace tedy vypadá tkato: void myprintf(const char *format, ...);
- funkce musí být umístěna samostatně v externím souboru s příponou asm a vše musí sedět, aby se to dalo vzít a přenést bez úprav do testovacího projektu
Byla bych moc vděčná jestli tomu někdo rozumí a pomohl by mi s tím,děkuji
Fórum › Assembler
úloha
mám takový problém potřebuju udělat program pro atmega 32.
zadání:
vytvořte program, který zvušuje stav registru R17 o 1 a při stisknutí se připojí na port PA0. R17 R17 zobrazujte na port PC0.
moje část řešení:
main:
ini: ldi R16,LOW(RAMEND) ;definice zazsobniku
out SPL,R16
ldi R16,HIGH(RAMEND)
out SPH,R16
sbi DDRC,0
sbi PORTC,0 ;pocatecni nastaveni....PC.0 vzstup
ldi R16,0B00000000 ; pocatecni nastaveni ...PA 0.1 vstup
out DDRA,R16
ldi R16,0b00000011
out PortA,R16 ;pull up zapnuty
inic:
ldi R16,LOW(RAMEND) ; definice zasobniku
out SPL,R16
ldi R16,High(RAMEND)
out SPH,R16
ldi R18,0xff
out DDRC,R18
clc
ale nevím jak napsat start předem děkuji za odpověd
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna