Asembler Z80 i dodawanie ..
Masz problem? Zapytaj na forum elektroda.pl
From: "muniek" <muniek241_at_nospam_wp.pl>
Subject: Asembler Z80 i dodawanie ..
Date: Sun, 17 Nov 2002 10:46:48 +0100
Witam!
Mam do napisania program na Z80 (w asemeblerze) który będzie realizował
dodawanie dwóch 32-bitowych liczb. Zaczołem coś robić, ale to chyba nie tak
(
Aha. Muszę jeszcze napisać rozmieszczenie poszczególnych opracji w pamięci.
Czy mógłby ktoś mi pomóc? :)
Pozdrawiam
muni
From: "jerry1111" <jerry1111_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Sun, 17 Nov 2002 10:59:04 +0100
Mam do napisania program na Z80 (w asemeblerze) który będzie realizował
dodawanie dwóch 32-bitowych liczb. Zaczołem coś robić, ale to chyba nie tak
Dodajesz do siebie 16 mlodszych bitow.
Dostajesz 16bitow wyniku i carry.
Potem w asemblerze Z80 chyba masz ADC (add with carry)
i dodajesz do siebie 16 starszych bitow.
Carry wtedy jest 33 bitem wyniku.
jerry
From: Marek Lewandowski <nospamabuse_at_nospam_poczta.onet.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Sun, 17 Nov 2002 12:06:31 +0100
jerry1111 wrote:
Mam do napisania program na Z80 (w asemeblerze) który będzie realizował
dodawanie dwóch 32-bitowych liczb. Zaczołem coś robić, ale to chyba nie tak
Dodajesz do siebie 16 mlodszych bitow.
Dostajesz 16bitow wyniku i carry.
Potem w asemblerze Z80 chyba masz ADC (add with carry)
i dodajesz do siebie 16 starszych bitow.
Carry wtedy jest 33 bitem wyniku.
Tja, tylko 4 razy po 8 bit chyba... ;-P
--
Marek Lewandowski ICQ# 10139051/GG# 154441
locustXpoczta|onet|pl
http://locust.republika.pl
[! Odpowiadaj pod cytatem. Tnij cytaty. Podpisuj posty. !]
From: "MS" <m__s_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Sun, 17 Nov 2002 13:03:25 +0100
Tja, tylko 4 razy po 8 bit chyba... ;-P
--
Niekoniecznie ;-P
--
_
|\ /| (_ m__s_at_nospam_wp.pl
| | ___) G-G 531829
___________________________
Ziemia jest piekłem innego świata
From: Marek Lewandowski <nospamabuse_at_nospam_poczta.onet.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Mon, 18 Nov 2002 08:31:09 +0100
MS wrote:
Tja, tylko 4 razy po 8 bit chyba... ;-P
--
>
> Niekoniecznie ;-P
Wiem, że można, ale chyba mimo wszystko szybciej będzie po 8 bit?
Znaczy, jak obie liczby są w przypadkowym miejscu pamięci...
--
Marek Lewandowski ICQ# 10139051/GG# 154441
locustXpoczta|onet|pl
http://locust.republika.pl
[! Odpowiadaj pod cytatem. Tnij cytaty. Podpisuj posty. !]
From: "jerry1111" <jerry1111_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Sun, 17 Nov 2002 13:34:26 +0100
Dodajesz do siebie 16 mlodszych bitow.
Dostajesz 16bitow wyniku i carry.
Potem w asemblerze Z80 chyba masz ADC (add with carry)
i dodajesz do siebie 16 starszych bitow.
Carry wtedy jest 33 bitem wyniku.
Tja, tylko 4 razy po 8 bit chyba... ;-P
Ekhm...
W asemblerze Z80 ukradli ADD hl,de ???
Czy cos zle pamietam???
jerry
From: "Tomasz Bednarz" <tb_at_nospam_internet.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Sun, 17 Nov 2002 16:08:33 +0100
[...]
Tja, tylko 4 razy po 8 bit chyba... ;-P
Ekhm...
W asemblerze Z80 ukradli ADD hl,de ???
Czy cos zle pamietam???
Dobrze pamietasz w Z80 jest dodawanie rejestrow
osmiobitorych np. add a,c
ale jest tez dodawanie rejestrow 16 bitowych
np. add hl, bc
jest tez adc hl,bc i wtedy dodawane jest rowniez przeniesienie z poprzedniej
opeacaji
Reasumijac: Jery1111 w pierszej wypowiedzi mial racje
TB
From: "jerry1111" <jerry1111_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Sun, 17 Nov 2002 16:19:05 +0100
Reasumijac: Jery1111 w pierszej wypowiedzi mial racje
Thx.
Tak mi sie wydawalo, bo chociaz od 8 czy 9 lat
nie dotknalem sie do Z80, to wczesniej walkowalem go
na wszelkie sposoby przez chyba 10 lat :-)
No i tak w glowie cos zostalo. Nawet siakies
ksiazki na polce sa od Z80.
Poza tym to jest super procesor dla bardzo poczatkujacych
jesli chodzi o nauke asemblera. Wade ma taka, ze
jest to 'tylko' procek - bez peryferiow, chociaz moze
teraz robia jednoukladowce oparte na jadrze Z80.
jerry
From: "muniek" <muniek241_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Mon, 18 Nov 2002 09:30:10 +0100
Użytkownik "jerry1111" <jerry1111_at_nospam_wp.pl> napisał w wiadomości
news:ar7pd3$rtv$1_at_nospam_news.tpi.pl...
Mam do napisania program na Z80 (w asemeblerze) który będzie realizował
dodawanie dwóch 32-bitowych liczb. Zaczołem coś robić, ale to chyba nie
tak
Dodajesz do siebie 16 mlodszych bitow.
Dostajesz 16bitow wyniku i carry.
Potem w asemblerze Z80 chyba masz ADC (add with carry)
i dodajesz do siebie 16 starszych bitow.
Carry wtedy jest 33 bitem wyniku.
Witam ponownie.
Zadaję sobie sprawę że to co zaraz napiszę, może wywołaś falę krytyki, no
ale ;)
Czy ktoś mógłby napisać ten programik i zamieścić na grupie? Nie to że
jestem leniwy, ale próbuję (naprawdę!) ale chyba (napewno) robię coś nie tak
( Więc jak ? Pomożecie ? :)
Aha. Przy innym programie mam do wykonania operacje LD(L3),L oraz
LD(L3+1),H, i tutaj pytanie. Jakie kody mają te operacje? Na moim kserze z
kodami nie ma takiego czegoś :( (jedynie co znalazłem to LD (L-coś), A),
czyli tylko z akumulatorem)
Pozdrawiam
Muni
From: "Tomasz Bednarz" <tb_at_nospam_internet.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Tue, 19 Nov 2002 01:26:43 +0100
[...]
Zadaję sobie sprawę że to co zaraz napiszę, może wywołaś falę krytyki, no
ale ;)
Czy ktoś mógłby napisać ten programik i zamieścić na grupie?
Moglby a,e napisz najpierw skad masz pobrac te liczby do dodania i gdzie je
wrzucic ?!
Nie to że
jestem leniwy, ale próbuję (naprawdę!) ale chyba (napewno) robię coś nie
tak
( Więc jak ? Pomożecie ? :)
Aha. Przy innym programie mam do wykonania operacje LD(L3),L oraz
LD(L3+1),H, i tutaj pytanie. Jakie kody mają te operacje? Na moim kserze z
kodami nie ma takiego czegoś :( (jedynie co znalazłem to LD (L-coś), A),
czyli tylko z akumulatorem)
A masz jakas knige z rozkazami do Z80 ?
TB
From: "muniek" <muniek241_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Tue, 19 Nov 2002 07:26:35 +0100
Użytkownik "Tomasz Bednarz" <tb_at_nospam_internet.pl> napisał w wiadomości
news:arc0jr$mlf$1_at_nospam_news.tpi.pl...
[...]
Zadaję sobie sprawę że to co zaraz napiszę, może wywołaś falę krytyki,
no
ale ;)
Czy ktoś mógłby napisać ten programik i zamieścić na grupie?
Moglby a,e napisz najpierw skad masz pobrac te liczby do dodania i gdzie
je
wrzucic ?!
A więc tak. Liczby (dwie + jedna na wynik)32-bitowe mam sobie zadeklarować
w programie. Miejsce gdzie je mam przechowywać jest dowolne .
Nie to że
jestem leniwy, ale próbuję (naprawdę!) ale chyba (napewno) robię coś nie
tak
( Więc jak ? Pomożecie ? :)
Aha. Przy innym programie mam do wykonania operacje LD(L3),L oraz
LD(L3+1),H, i tutaj pytanie. Jakie kody mają te operacje? Na moim kserze
z
kodami nie ma takiego czegoś :( (jedynie co znalazłem to LD (L-coś), A),
czyli tylko z akumulatorem)
A masz jakas knige z rozkazami do Z80 ?
Mam ksero (kilkanaście stron) z rozkazami. No ale właśnie tam tego co szukam
to nie ma :(
Pozdrawiam
muni
From: "MS" <m__s_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Tue, 19 Nov 2002 18:53:00 +0100
A więc tak. Liczby (dwie + jedna na wynik)32-bitowe mam sobie
zadeklarować
w programie. Miejsce gdzie je mam przechowywać jest dowolne .
Mam ksero (kilkanaście stron) z rozkazami. No ale właśnie tam tego co
szukam
to nie ma :(
Chłopie!!! marudzisz jak stara panna , gdzie Ty się uszysz??
profil elektroniczny czy... artystyczny????
Zakładając że pamięć systemu zorganizowana jest tak:
0000H..1FFFH - pamięć programu (np EPROM) 8kB
2000H..FFFFH - pamięć danych (RAM) pozostałe 56kB
i :
2001H 2000H(młodsze 16 bitów liczby pierwszej)
2003H 2002H (starsze 16 bitów liczby pierwszej
2005H 2004H (młodsze 16 bitów liczby drugiej)
2006H 2005H (starsze 16 bitów liczby drugiej)
ORG 0
LD SP,0FF00H ;USTALAM PRZESTRZEŃ STOSU
LD HL,(2000H) ;HL<-SKŁADNIK1
LD BC,(2004H) ;BC<-SKŁADNIK2
ADD HL,BC ;CY HL = HL+BC
PUSH HL ;ZAPAMIĘTUJĘ SUMĘ NA STOSIE
LD HL,(2002H) ;HL <-SKŁADNIK1
LD BC,(2006H) ;BC <-SKŁADNIK2
ADC HL,BC ;CY HL= HL+BC+CY
POP BC
;WYNIK DODAWANIA 2 32 BITOWYCH LICZB: CY HL BC
KONIEC:
JP KONIEC
END
ps. prosiłbym kogoś o weryfikację bo program na Z80 pisałem ostatnio ponad
15 lat temu...
--
_
|\ /| (_ m__s_at_nospam_wp.pl
| | ___) G-G 531829
___________________________
Ziemia jest piekłem innego świata
From: "Piotrek" <piotrekk5_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Thu, 21 Nov 2002 16:12:55 +0100
Użytkownik "MS" <m__s_at_nospam_wp.pl> napisał w wiadomości
news:ardtpj$fd3$1_at_nospam_news.tpi.pl...
Zakładając że pamięć systemu zorganizowana jest tak:
[ciach]
Witam!
Czyli po ten program w pamięci wyglądał by tak : ??? (zakładając że L1,L2 i
L3 to liczby trzydziestdwubitowe i ORG 0000)
0000 2A LD HL,(L1)
0001 17
0002 00
0003 ED LD BC,(L2)
0004 4B
0005 19
0006 00
0007 09 ADD HL,BC
0008 22 LD(L3),HL
0009 1B
000A 00
000B E5 PUSH HL
000C 2A LD HL,(L+1)
000D 18
000E 00
000F ED LD BC,(L2+1)
0010 4B
0011 1A
0010 00
0011 ED ADC HL,BC
0012 4A
0013 22 LD(L3+1),HL
0014 1C
0015 00
0016 C1 POP BC
0017 L1
0018 L1+1
0019 L2
001A L2+1
001B L3
001C L3+1
Pozdrawiam
Piotrek
From: jfox_at_nospam_poczta.onet.pl (J.F.)
Subject: Re: Asembler Z80 i dodawanie ..
Date: Thu, 21 Nov 2002 19:45:11 GMT
On Thu, 21 Nov 2002 16:12:55 +0100, Piotrek wrote:
Czyli po ten program w pamięci wyglądał by tak : ??? (zakładając że L1,L2 i
L3 to liczby trzydziestdwubitowe i ORG 0000)
0000 2A LD HL,(L1)
0001 17
0002 00
Dziwne jakies. L1 masz pod adresem 0017H - tu mial byc ROM
[...]
000C 2A LD HL,(L+1)
000D 18
000E 00
Natepne 16 bitow to jest pod adresem 0019h a nie 0018h jak w tym
rozkazie.
0016 C1 POP BC
tu pewnie powinienes wpisac ORG 2000h
J.
From: "IYIS" <m__s_at_nospam_wp.pl>
Subject: Re: Asembler Z80 i dodawanie ..
Date: Fri, 22 Nov 2002 00:24:35 +0100
1 0000 org 0
2 0000 3100FF ld sp,0ff00h
3 0003 2A0020 ld hl,(2000h)
4 0006 ED4B0420 ld bc,(2004h)
5 000A 09 add hl,bc
6 000B E5 push hl
7 000C 2A0220 ld hl,(2002h)
8 000F ED4B0620 ld bc,(2006h)
9 0013 ED4A adc hl,bc
10 0015 C1 pop bc
11 0016 KONIEC:
12 0016 C31600 JP KONIEC
13 0019 end
--
_
|\ /| (_ m__s_at_nospam_wp.pl
| | ___) G-G 531829
___________________________
Ziemia jest piekłem innego świata