Equ – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Equ – Assembler – Fórum – Programujte.comEqu – Assembler – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
xp0
Věrný člen
3. 2. 2007   #1
-
0
-

AS51 mi nechce přeložit "port equ p1", akorat píše syntax error; ale ASM51 to zase přeloží bezproblému, můžete mi někdo říct v čem je problém?

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Reklama
Reklama
xp0
Věrný člen
4. 2. 2007   #2
-
0
-

mám ještě jeden dotaz, jak se dá přistupovat k jednotlivým bitum v bitově adresovatelném protoru? nechci to přes indexi jako(20h.1), ale místo jedničky proměnou,

     BUFFER EQU 20H

xBIT EQU 30H
MOV xBIT,#1
SETB BUFFER.#xBIT

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
xp0
Věrný člen
6. 2. 2007   #3
-
0
-

asi by bylo nejlepší napsat pro co přesně to potřebuju: např. na P3.0 budou vstupní data, odkuď budu bit po bitu postupně ukládat do C a z něho potom budu ukládat ty jednotlivy bity na adresu třeba těch 20h, kde je bitově adresovatelný prostor; no a tady je ten problém buď můžu napsat zbytečně dlouhý program, kde to budu muset vše rozepsat( pro první bit mov 20h.0,c; mov 20h.1,c pro druhy bit a tak dál) nebo napsat mov 20h.x,c
inc x kde to x by bylo od 0-7 a program by byl mnohem jednoduši, ví někdo jestli to jde takhle realizovat, pokud ano tak jak?

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
xp0
Věrný člen
7. 2. 2007   #4
-
0
-

tak si odpovím sám, zjistil jsem, že něco takovýho není možny, takže mi nezbyde nic jinýho než to rozepsat

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Matěj Pácha0
Super člen
7. 2. 2007   #5
-
0
-

Teď sice plácnu z hlavy, ale není náhodou část paměťovýho prostoru adresovatelná jak bitově, tak i bytově? Myslím, že tam něco takovýho bylo...

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
xp0
Věrný člen
7. 2. 2007   #6
-
0
-

ano od adresy 20h do 2Fh je bitově adresovatelný prostor, prvně se uvádní adresa bajtu a za tečkou bit např 20h.2

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Martin Morawiec0
Stálý člen
9. 2. 2007   #7
-
0
-

To xp:Podle mě "port equ p1" nelze, jde "proměnná equ adresa v paměti" a bitově adresované jsou porty př.:"p1.0" a pak akumulátor př.:"acc.0"

Nahlásit jako SPAM
IP: ...–
xp0
Věrný člen
11. 2. 2007   #8
-
0
-

To OLDA220:port equ p1 lze, ale ne v as51
narazil jsem na další problém jak vybrat segment cseg, dseg, bseg a iseg?

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Martin Morawiec0
Stálý člen
17. 2. 2007   #9
-
0
-

To xp:Říkám "Podle mě", hovořím za instrukční sadu a debuger co je v as51.
Nepochopil jsem Tvou otázku ohledně segmentů, můžeš blíže specifikovat ?

Nahlásit jako SPAM
IP: ...–
xp0
Věrný člen
17. 2. 2007   #10
-
0
-

tohle jsem už vyřešil, nakonec se jednalo jen o symbolické pojmenování paměťových prostorů 8051

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
xp0
Věrný člen
17. 2. 2007   #11
-
0
-

ještě tady mám ten program pro přístup k jednotlivým bitum na adrese 20h, registr R7 se nastaví na hodnotu hledaného bitu, např. chci uloži data na 20h.4, R7 se musi nastavit na 4;

DAT BIT 21H.0

ad0 bit 20h.0
ad1 bit 20h.1
ad2 bit 20h.2
ad3 bit 20h.3
ad4 bit 20h.4
ad5 bit 20h.5
ad6 bit 20h.6
ad7 bit 20h.7



;************ bitove pole *************
bitPole:MOV C,DAT
CJNE R7,#0,bit1
MOV ad0,C
RET
bit1:CJNE R7,#1,bit2
MOV ad1,C
RET
bit2:CJNE R7,#2,bit3
MOV ad2,C
RET
bit3:CJNE R7,#3,bit4
MOV ad3,C
RET
bit4:CJNE R7,#4,bit5
MOV ad4,C
RET
bit5:CJNE r7,#5,bit6
MOV ad5,C
RET
bit6:CJNE R7,#6,bit7
MOV ad6,C
RET
bit7:CJNE R7,#7,ERROR
MOV ad7,C
RET
ERROR:RET


nedává mi smysl proč nelze napsat
mov 20h.0,c
ale musím psát:
ad0 bit 20h.0
mov ad0,c

nedá se tento program napsat lépe a efektivněji?

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Martin Morawiec0
Stálý člen
18. 2. 2007   #12
-
0
-

To xp:Myslím že dá :)



dec r7
cjne r7,#0,dal
mov a,#1
jmp konec
dal: mov a,#1
zpet: mov b,#2
mul ab
djnz r7,zpet
konec: mov p3,a
nop

Otázkou je jestli to je kratší kód :(

Nahlásit jako SPAM
IP: ...–
Tax0
Super člen
20. 2. 2007   #13
-
0
-

Nějak sem nepochopil proč je chceš ukládat bit po bitu a navíc přes C? C je příznak přenosu (přetečení při součtu).

mov A, P3 

mov 20h, A
Potom už bitově pracuješ s jednotlivými hodnotami. Nebo adresuješ rovnou bitově ACC.
mov 20h.0, C by fungovat mělo, záleží jak na kterém překladači...

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
xp0
Věrný člen
22. 2. 2007   #14
-
0
-

To Tax:můsím to ukládat přes c protože existují jen 2 přesunové bitové instrukce mov c,bit; mov bit,c; a data nemám na celým portu, ale jen na P3.0, kde mi přijde postupně 8 bitů, jinak jsem přišel na mnohem elegantnější řešení a to, že si uložím příchozí bit do c a pak pomocí instrukce RLC A postupně naplním celý akumulátor a jeho hodnotu si uložím; to původní řešení mělo jeden velkej problém, že instrukce cjne mění příznak c, pak by to nemělo vůbec fungovat, ale je zvláštní, že to fungovalo bezproblému jak v debugeru tak i v 8051

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Tax0
Super člen
22. 2. 2007   #15
-
0
-

nějak jsem nepochopil co myslíš tím že to na P3 příjde postupně 8 bitů? ano příjde tak jednoduše uložíš celý bajt ne ? jinak toto se dá obejít mnoha způsoby použitelné by mohlo být třeba i JB (Jump if Bit set.) na návěstí kde bys provodlo požadovanou operaci, třeba inkrementaci určitého registru nebo adresy,....

To RLC je šokovné řešení ;)

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
xp0
Věrný člen
24. 2. 2007   #16
-
0
-

To Tax: měl jsem to napsat hned, jedná se o sériovou komunikaci

Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Martin Morawiec0
Stálý člen
28. 2. 2007   #17
-
0
-

To xp:Tos měl a krom toho 8051 podporuje sériový přenos i když s tímdle ti nepomůžu, musíš poledat na netu jsem to kdesi viděl... když by jsi použil to RLC A, tak to můžeš sombinovat s vnějším přerušením které je na P3 ;)

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 157 hostů

Podobná vlákna

Metoda equals (porovnání odkazů na objekt) — založil Začátečník11

Equality function — založil nord

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý