
keil
prosím vás viem mi dakto pomoct z príkazmi
od adresy 40h načitajte čísla tak že prve číslo je 0AH posledne čislo bude 0FH zvyšujú sa o 1 urobte ich sucet a ulozte na 30H a priemer ulozte na 31H za kazdu radu dakujem
prosím vás viem mi dakto pomoct z príkazmi
od adresy 40h načitajte čísla tak že prve číslo je 0AH posledne čislo bude 0FH zvyšujú sa o 1 urobte ich sucet a ulozte na 30H a priemer ulozte na 31H za kazdu radu dakujem
Předmět | Autor | Datum |
---|---|---|
ja som ho vobec nepochopil mato.mato 15.06.2015 18:57 |
mato.mato | |
Tak si najprv pozri text original zadania, a ne skomoleny nezmysel, a potom to naprogramuj. Cely rok… nový MM.. 15.06.2015 19:05 |
MM.. | |
to zadanie je tak napisane ako som ho dostal od ucitelky a pouzivame prikazi MOV ADD atd... nový mato.mato 15.06.2015 19:15 |
mato.mato | |
To nie su prikazy ale instrukcie assembleru. Potom ale nepotrebujes ziaden keil (to je prekladac z C… nový MM.. 15.06.2015 19:28 |
MM.. | |
.. pozeram ze na tom webe nie su uvedene instrukcie pre test, test dvoch registrov a skok ak neni ro… nový MM.. 15.06.2015 19:32 |
MM.. | |
dik za radi daco hadam spravim zajtra v skole nový mato.mato 15.06.2015 19:37 |
mato.mato | |
chjo.
MOV R0, #40H ;adresa
MOV R1, #0 ;sucet
MOV R2, #0 ;pocet
EsteNebolo0A:
MOVX A, @R0
INC R0
CJN… nový MM.. 15.06.2015 19:43 |
MM.. | |
velmo pekne dakujem poslední mato.mato 15.06.2015 19:52 |
mato.mato |
Zpět do poradny Odpovědět na původní otázku Nahoru
ja som ho vobec nepochopil
Tak si najprv pozri text original zadania, a ne skomoleny nezmysel, a potom to naprogramuj. Cely rok si na hodinach robil co?
Zadavatela sa opytas aj jaky datovy typ maju tie "cisla", ak ti povie bajt tak ho upozornis ze len imbecil bude ukladat sucet cisel do bajtu, nasledne si urobis smernik napr. pre bajt bude
unsigned char sucet = 0, pocet = 0;
unsigned char *p;
p=0x40;
while(*p!=0x0A) p++;
while(*p!=0x0F) { p++; sucet += *p; pocet++; }
p=0x30;
*p++ = sucet;
*p = sucet/pocet;
to zadanie je tak napisane ako som ho dostal od ucitelky a pouzivame prikazi MOV ADD atd...
To nie su prikazy ale instrukcie assembleru. Potom ale nepotrebujes ziaden keil (to je prekladac z C jazyka).
Tak si to naprogramuj instrukciami. Priradis si napr. do DPTR registra (ak to ma byt v externej pamati) alebo do akehokolvek registra (napr. R0) hodnotu 40h instrukciou MOV, a intrukciou MOVX si nacitavas bajty trebars do R1, a testujes si R1 a ak uz bolo 0Ah tak priratavas do suctu (sucet bude v registri R2 napriklad). testujes nacitany bajt a skaces podla toho co v nom bolo.
Robit domace ulohy za teba nebudem, studuj instrukce.php
.. pozeram ze na tom webe nie su uvedene instrukcie pre test, test dvoch registrov a skok ak neni rovne je instrujcia CJNE, http://www.keil.com/support/man/docs/is51/is51_cjn e.htm
Napr.
EsteNebolo0A:
MOVX A, @R0
INC R0
CJNE A, #0AH, EsteNebolo0A
bude nacitavat v slucke bajty z adresy v registri R0 az kym nenacita bajt 0AH
dik za radi daco hadam spravim zajtra v skole
chjo.
MOV R0, #40H ;adresa
MOV R1, #0 ;sucet
MOV R2, #0 ;pocet
EsteNebolo0A:
MOVX A, @R0
INC R0
CJNE A, #0AH, EsteNebolo0A
EsteNebolo0F:
ADD R1, A ;pridaj do suctu
INC R2 ;zvys pocet
MOVX A, @R0
INC R0
CJNE A, #0FH, EsteNebolo0F
ADD R1, A ;pridaj aj to posledne 0F do suctu
INC R2 ;zvys pocet
MOV R0, #30H
MOVX @R0, R1 ;sucet
INC R0
MOV A, R1
MOV B, R2
DIVAB
MOVX @R0, A ;priemer
Tak dajak zhruba, mozu tam byt nepresnosti ptz predpotopnu 8051 som nevidel asi 15rokov
velmo pekne dakujem