BARDZO PILNE
BARDZO PILNE
Bardzo prosze jeżeli by ktoś mógł to niech napisze mi następujący program w asemblerze dla mikrokontrolera '51.
TEMAT:
Porównaj dwie dane w rejestrach R6 i R7. Jeżeli R6 jest większe bądź równe R7 to podświetl czerwoną diode LED (P4.3).
TEMAT:
Porównaj dwie dane w rejestrach R6 i R7. Jeżeli R6 jest większe bądź równe R7 to podświetl czerwoną diode LED (P4.3).
Kod: Zaznacz cały
clr p4_3
clr c
mov A,r6
subb A,r7
jc exit
setb p4_3
exit:
ret
aa...? kompilator...no niby tak
tylko że w 80C535 port P4 ma adres 0xE8, a w Philips 80C552 ten port ma adres 0xC0,
a 0xE8 to jest rejestr IEN1, taki malutki, od przerwań, a 0xC0 to jest adres rejestru IRCON,
tylko że w 80C535....
no i widzisz co się narobiło.
[ Dodano: 23-03-2006, 17:03 ]
tylko że w 80C535 port P4 ma adres 0xE8, a w Philips 80C552 ten port ma adres 0xC0,
a 0xE8 to jest rejestr IEN1, taki malutki, od przerwań, a 0xC0 to jest adres rejestru IRCON,
tylko że w 80C535....
no i widzisz co się narobiło.
[ Dodano: 23-03-2006, 17:03 ]
no, a potem będzie w opiniach o forum, że się posty po ekranie rozmazują...kildas pisze:Przez ciebie oplułem monitor.
Rózne adresy poszczególnych rejestrów w niczym nie przeszkadzają. Każdy dobry asembler (bo kompilatorem raczej tego programu nazwać nie można) umozliwia dołączanie plików (coś ala *.h z C) z definicjami rejestrów a w tych plikach specyficznych dla każdego mikrokontrolera są własciwe adresy przypisane do odpowiednich rejestrów. Oczywiście 'przenośność' takiego programu w tej sytuacji jest żadna (oczywiście mowa o skompilowanym <o rany> tzn zasemblowanym programie).tasza pisze:aa...? kompilator...no niby tak
tylko że w 80C535 port P4 ma adres 0xE8, a w Philips 80C552 ten port ma adres 0xC0,
a 0xE8 to jest rejestr IEN1, taki malutki, od przerwań, a 0xC0 to jest adres rejestru IRCON,
tylko że w 80C535....
no i widzisz co się narobiło.
No, tak ...tasza pisze:aa...? kompilator...no niby tak
tylko że w 80C535 port P4 ma adres 0xE8, a w Philips 80C552 ten port ma adres 0xC0,
a 0xE8 to jest rejestr IEN1, taki malutki, od przerwań, a 0xC0 to jest adres rejestru IRCON,
tylko że w 80C535....
Przecież w każdym programie jest jakiś include "..z czymś tam.." (jak w http://www.edw.com.pl/forum/viewtopic.php?t=3162 ), które definiuje podstawowe zasoby danego modelu procka. Sam kompilator oczywiście, że nie zna wymienonych stałych, nawet nie powienien ich znać, ale czy takich oczywistych rzeczach trzeba pisać? Wychodzi, że tak, bo zdarzają się przypadki oplucia monitorów.
Na przyszłośćtasza pisze:no i widzisz co się narobiło.
Ale się porobiło ... też się uśmiałem, ale mój monitor nie ucierpiał