🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
11 messages
11 total messages Started by BLE_Maciek Thu, 29 Dec 2005 14:08
Cross programming ;-)
#45
Author: BLE_Maciek
Date: Thu, 29 Dec 2005 14:08
43 lines
1267 bytes
Wymyśliłem coś takiego:

	.org 0

	call M,1F0Eh
	or H
	ld (BC),A
	cp (HL)
	jr dalej
	xor H
dalej:
	adc A,D
	ret NC
	db 0Ah
	ret NZ
	db 74h
	inc B
	call 0EB21h
	push AF
	cp B
	nop
	ld C,H
	call 4121h
	ld L,H
	ld H,C
	db 32
	ld L,L
	ld H,C
	db 32
	ld L,E
	ld L,A
	db 74h
	ld H,C
	dec C
	ld A,(BC)
	nop

Powyższy kod assemblujemy, dajemy plikowi wynikowemu rozszerzenie COM
i uruchamiamy w DOSie.
:->

BTW a może pecety są jednak o na Z80 oparte ? Przecież program który
zamieściłem działa ... ;-)
Re: Cross programming ;-)
#46
Author: Grzegorz Szyszlo
Date: Wed, 04 Jan 2006 10:39
16 lines
1393 bytes
BLE_Maciek napisał(a):

> Powyższy kod assemblujemy, dajemy plikowi wynikowemu rozszerzenie COM
> i uruchamiamy w DOSie.
> :->
> 
> BTW a może pecety są jednak o na Z80 oparte ? Przecież program który
> zamieściłem działa ... ;-)

no niezupelnie ;) zestaw instrukcji Z80 i 8088 jest oparty
na zestawie instrukcji procesora 4004 (chyba).
dlatego spora czesc instrukcji z80 i 8088/8086 sie pokrywa,
a z 80xx w modelu TINY pamiec adresuje sie tak samo jak w z80,
bo wszystko jest ograniczone do 64kb :P

znik.
Re: Cross programming ;-)
#47
Author: Arek
Date: Wed, 04 Jan 2006 21:24
44 lines
2641 bytes
Grzegorz Szyszlo napisał(a) w wiadomości: ...
>BLE_Maciek napisał(a):
>
>> Powyższy kod assemblujemy, dajemy plikowi wynikowemu rozszerzenie COM
>> i uruchamiamy w DOSie.
>> :->

No działa. Ale coś mi crossasm wygenerował równe 64KB a taki .COM
jest już trochę za długi, musiałem ręcznie skrócić. No i tych db nie
dało się zamienić instrukcjami?

>> BTW a może pecety są jednak o na Z80 oparte ? Przecież program który
>> zamieściłem działa ... ;-)

Swojego czasu kombinowałem, jak skonstruować binaria, aby poszły
zarówno na Amidze jak i na PC :)  Ale Amigi nie miałem...
Jest gdzieś program do generacji samorozpakowujących się archiwów
dla DOSa. Archiwa (w tym kod startowy) były tylko z kodów odpowiadających
literom, cyfrom itp. znakom. Chodziło o przesyłanie pocztą, która obcina
zarówno znaki >128 jak i te najniższe. Kod startowy generował w pamięci
"normalną" już procedurę rozpoakowującą a ta rozpakowywała (raczej
odkodowywała) archiwum. Później ktoś zastosował to w niecnym celu:
do zamaskowania wirusa. Od tej pory większość antywirów wyje jak psy
gdy coś takiego zobaczy...

>no niezupelnie ;) zestaw instrukcji Z80 i 8088 jest oparty
>na zestawie instrukcji procesora 4004 (chyba).


Nie pamiętam historii, ale chyba 4004, 8008, 8080, 8085 coś tam
dziedziczyły. Z80 to odbicie od 8080.

Tu nawet jakby potwierdzenie:
http://pl.wikipedia.org/wiki/Intel_8080

polski 8080 ?
http://www.datasheetcatalog.com/datasheets_pdf/M/C/Y/7/MCY7880.shtml

>dlatego spora czesc instrukcji z80 i 8088/8086 sie pokrywa,

Zbyt optymistyczne. Pawian i neandertalczyk z daleka też podobne. :)
Ten drugi mądrzejszy ale ogon stracił, po gałęziach już tak nie skacze.

Arek
Re: Cross programming ;-)
#48
Author: Derek Kuliński / takeda
Date: Thu, 05 Jan 2006 00:30
13 lines
1737 bytes
On Wed, 4 Jan 2006 22:24:42 +0100, Arek wrote:

> Swojego czasu kombinowałem, jak skonstruować binaria, aby poszły
> zarówno na Amidze jak i na PC :)  Ale Amigi nie miałem...

Nadal uważasz, że dało by się? Amiga używała całkiem innego procesora niż
PC, może się nie znam, ale wydaje mi się, że coś takiego raczej chyba nie
da się napisać. No chyba, że system operacyjny przewiduje taką możliwość.

-- 
ダレック
takeda@IRCnet.EFnet, ICQ# 15827691, YahooIM: takeda64
http://ircwiki.takeda.tk - strona wiki poświęcona IRC
Re: Cross programming ;-)
#53
Author: BLE_Maciek
Date: Thu, 05 Jan 2006 12:41
50 lines
3137 bytes
Wed, 4 Jan 2006 22:24:42 +0100 jednostka biologiczna o nazwie "Arek"
<abcdek@poczta.onet.pl.usun_cde> wyslala do portu 119
jednego z serwerow news nastepujace dane:

>No działa. Ale coś mi crossasm wygenerował równe 64KB a taki .COM
>jest już trochę za długi, musiałem ręcznie skrócić. No i tych db nie
>dało się zamienić instrukcjami?
Niestety nie, nie znalazłem odpowiednich, też mnie to gryzło :-)
Chociaż może jakby trochę poombinować, z modyfikacją źródłowego (w
sensie że tego dla x86 który zakodowałem instrukcjami z80) programu
włącznie.

>Swojego czasu kombinowałem, jak skonstruować binaria, aby poszły
>zarówno na Amidze jak i na PC :)  Ale Amigi nie miałem...
:-)
>>no niezupelnie ;) zestaw instrukcji Z80 i 8088 jest oparty
                                            ^^^^
? 8088 to już procesor rodziny 86

>>na zestawie instrukcji procesora 4004 (chyba).
>Nie pamiętam historii, ale chyba 4004, 8008, 8080, 8085 coś tam

>dziedziczyły. Z80 to odbicie od 8080.
Z80 jest zgodny w dół z 8080 i takie zresztą było założenie
projektantów.

>polski 8080 ?
>http://www.datasheetcatalog.com/datasheets_pdf/M/C/Y/7/MCY7880.shtml
Oczywiście że tak. Mam nawet taki drukowany katalog Unitry Cemi chyba
z 1986 gdzie ten procesor jest, tudzież różne opracowania w
kwartalnikach "systemy mikrprocesorowe" wydawanych przez Cemi.

Zresztą Cemi robiła/miała w katalogu więcej rzeczy Intela :-)
http://www.elenota.pl/search.php?szuk=mcy78&man=--wszyscy--&ile=50&start=0
M.in. 8255 (MCY7855), 8251 (MCY7851), 2716 (MCY7716R)

Z tego co dowiedziałem się ostatnio na pl.misc.elektronika, procesory
MCY7880 i EPROMY MCY7716R nie weszły do seryjnej produkcji ze względu
na kłopoty z pasowaniem masek, spowodowane wstrząsami od ulicy
(przypominam że Cemi mieści(ła) się na rogu ul.Komarowa i
ul.Domaniewskiej). Problemy z pasowaniem sprawiały że procent odrzutów
z produkcji był bardzo znaczny i nie opacało się tych scalaków
produkować.

>>dlatego spora czesc instrukcji z80 i 8088/8086 sie pokrywa,
Nie powiedziałbym że spora.

>Zbyt optymistyczne. Pawian i neandertalczyk z daleka też podobne. :)
>Ten drugi mądrzejszy ale ogon stracił, po gałęziach już tak nie skacze.
ROTFL
Re: Cross programming ;-)
#49
Author: Arek
Date: Thu, 05 Jan 2006 17:05
20 lines
2212 bytes
Derek Kuliński / takeda napisał(a) w wiadomości:
<1n6bbwnigzsw6.dlg@takeda.tk.invalid>...
>On Wed, 4 Jan 2006 22:24:42 +0100, Arek wrote:
>
>Nadal uważasz, że dało by się? Amiga używała całkiem innego procesora niż
>PC, może się nie znam, ale wydaje mi się, że coś takiego raczej chyba nie
>da się napisać. No chyba, że system operacyjny przewiduje taką możliwość.


  Chodzi o strukturę plików wykonywalnych w np. DOSie i systemie Amigi.
  Obecnie Np. programy EXE mają w nagłówku zapisany adres startu kodu 16-bit dla DOS
informującego, że potrzebna winda. W innym miejscu nagłówka (w innym nagłówku) mają
inny adres startu dla kodu 32-bit.  Możliwe więc, że fragmenty kodów na różne systemy
(i procesory)  nie musiałyby mieć ani jednego bajtu wspólnego.
  Jeżeli musiałyby się zaczynać od tego samego miejsca (np. początku) to można
spróbować tak spreparować krótki fragmencik kodu dający się wykonać przez oba
procesory, ale inaczej. Na PC skakałby do kodu dla x86 i DOS, na Amidze do kodu
motoroli. Oczywiście to nie musiałoby się udać.
Kiedyś zabrakło mi czasu (i sprzętu) zeby się pobawić.
Arek
Re: Cross programming ;-)
#54
Author: BLE_Maciek
Date: Thu, 05 Jan 2006 20:02
7 lines
1155 bytes
Wed, 4 Jan 2006 22:24:42 +0100 jednostka biologiczna o nazwie "Arek"
<abcdek@poczta.onet.pl.usun_cde> wyslala do portu 119
jednego z serwerow news nastepujace dane:

>No działa. Ale coś mi crossasm wygenerował równe 64KB a taki .COM
Zmień assembler na oficjalny ;-)
Ściągnij sobie ZMASM ze strony Ziloga.
Re: Cross programming ;-)
#55
Author: Grzegorz Szyszlo
Date: Tue, 10 Jan 2006 11:31
35 lines
2176 bytes
Arek napisał(a):

>>no niezupelnie ;) zestaw instrukcji Z80 i 8088 jest oparty
>>na zestawie instrukcji procesora 4004 (chyba).
> 
> Nie pamiętam historii, ale chyba 4004, 8008, 8080, 8085 coś tam
> dziedziczyły. Z80 to odbicie od 8080.
> 
> Tu nawet jakby potwierdzenie:
> http://pl.wikipedia.org/wiki/Intel_8080
> 
> polski 8080 ?
> http://www.datasheetcatalog.com/datasheets_pdf/M/C/Y/7/MCY7880.shtml
> 
> 
>>dlatego spora czesc instrukcji z80 i 8088/8086 sie pokrywa,
> 
> 
> Zbyt optymistyczne. Pawian i neandertalczyk z daleka też podobne. :)
> Ten drugi mądrzejszy ale ogon stracił, po gałęziach już tak nie skacze.
> 
> Arek

Optymizm to jedna sprawa, a to że intel zapewnił pewną zgodność z 8008
(tego ogniwa mi brakowało w historii) to druga. Z80 to faktycznie
skok w bok, bo powstał jako alternatywa do 8008, podczas gdy 8080
jest już następcą. Tak czy siak będąc małolatem, mocno się zdziwiłem
przeglądając wydrukowane tabele z kodami maszynówki (nie mylmy
tego z asmem), bo okazuje się że ilość rozkazów interpretowanych
niemal identycznie jest całkiem spora. niemniej traktuję to
raczej jako ciekawostke niż coś, co warto zgłębiać.

znik.

ps: 201 -> RET  ?  ;)
Re: Cross programming ;-)
#50
Author: Grzegorz Szyszlo
Date: Tue, 10 Jan 2006 11:33
17 lines
1897 bytes
Arek napisał(a):

>   Chodzi o strukturę plików wykonywalnych w np. DOSie i systemie Amigi.
>   Obecnie Np. programy EXE mają w nagłówku zapisany adres startu kodu 16-bit dla DOS
> informującego, że potrzebna winda. W innym miejscu nagłówka (w innym nagłówku) mają
> inny adres startu dla kodu 32-bit.  Możliwe więc, że fragmenty kodów na różne systemy
> (i procesory)  nie musiałyby mieć ani jednego bajtu wspólnego.
>   Jeżeli musiałyby się zaczynać od tego samego miejsca (np. początku) to można
> spróbować tak spreparować krótki fragmencik kodu dający się wykonać przez oba
> procesory, ale inaczej. Na PC skakałby do kodu dla x86 i DOS, na Amidze do kodu
> motoroli. Oczywiście to nie musiałoby się udać.
> Kiedyś zabrakło mi czasu (i sprzętu) zeby się pobawić.
> Arek

zawsze można skorzystać z wypełniaczy NOP. Tylko po co?

znik.
Re: Cross programming ;-)
#51
Author: Arek
Date: Tue, 10 Jan 2006 16:47
9 lines
1312 bytes
Grzegorz Szyszlo napisał(a) w wiadomości: ...
>
>zawsze można skorzystać z wypełniaczy NOP. Tylko po co?


W różnyxh środowiskach (16 i 32-bit) działa np. regedit.exe - bywa pożyteczny.
Oczywiście można zastosować 2 różne programy.
Na różnych komputerach to raczej tylko dla satysfakcji.  :-)
Arek
Re: Cross programming ;-)
#52
Author: geo
Date: Wed, 11 Jan 2006 17:16
11 lines
1815 bytes
Witam

Gdzies na sieci widzialem taki kod, ktory mogl byc wykonywany na PC i
na Macu. Chodzilo oczywiscie o wirusa zarazajacego oba systemy.
Polegalo to na tym, iz ten sam kod binarny dla PC-ta oznaczal jakas
instrukcje arytmetyczna, a dla Motoroli byl rozkazem skoku. Zatem
sterowanie bylo przekazywane w rozne miejsca kodu w zaleznosci od
rodzaju procesora. Na tej zasadzie mozna oczywiscie tworzyc uzyteczne
programy dzialajace w obu systemach.

Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads