AT89C52 i assmebler



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Henry(k)" <henrico_at_nospam_friko6.onet.pl>
Subject: AT89C52 i assmebler
Date: Mon, 15 Nov 1999 13:51:26 +0100


Mam parę pytań, może lamerskie ale jestem tylko początkujący.

1. Procesor AT89C52 ma 256 bajtów pamięci. Rozumiem, że adresy
górnych 128 bajtów są równoległe z rejestrami specjalnymi
ale są niezależne. Czyli jeśli ustawię np. początek adresu
stosu: mov SP, #80h to nie nadpisze on rejestrów ?
Jak wygląda dostęp (wpisanie wartości np. 20h) do adresu
RAM 0A0h i rejestru P2 (też 0A0h) - proszę o przykład.

2. W swoim programie muszę wykorzystać Timer0. Czy oznacza
to, że nie mogę wykorzystać linii P3.4-T0 jako wyjścia
(i analogicznie z T1), bo lektura z EP12/94 strona 50
jakoś na to wskazuje.

3. Różnica między ACALL i LCALL to zakres adresowanej pamięci
na skok. Jeżeli nie jestem pewien czy ACALL zmieści się
w obszarze strony 2kB czy bez większych problemów mogę
użyć LCALL zakładając, że jeden bajt więcej na instrukcję
mnie nie interesuje? Podobnie z AJMP / LJMP.

4. W przykładowym programie obsługi I2C dołączonym do noty
aplikacyjnej ATMELA - AT24cxx są takie linijki:
ORG 40H
buffer: DS PSIZE ; storage for read/write data
ORG 60H ; stack origin
stack: DS 20H ; stack depth
Co to jest te "DS" bo ja nie mam pojęcia.

--
Pozdrowionka.
Henry(k) < henrico_at_nospam_friko6.onet.pl >



Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: AT89C52 i assmebler
Date: 15 Nov 1999 15:03:43 GMT


On Mon, 15 Nov 1999 13:51:26 +0100, Henry(k) <henrico_at_nospam_friko6.onet.pl> wrote:
ORG 40H
buffer: DS PSIZE ; storage for read/write data
ORG 60H ; stack origin
stack: DS 20H ; stack depth
Co to jest te "DS" bo ja nie mam pojęcia.

To jest "define space", czyli zarezerwowanie miejsca.
Assembler przestawia licznik adresow o zadana ilosc bajtow,
i automatycznie wylicza adresy.
Powyzej to jest moze kiepski przyklad, normalnie uzywasz tak

ORG 40H
bufor1: DS 4
bufor2: DS 7
lstron: DS 1
timer: DS 2

A dalej to juz assemblera rola zeby wyliczyc ze bufor2 ma adres 44h,
a lstron 4Bh.

J.