Thread View: pl.comp.lang.asm
11 messages
11 total messages
Started by BLE_Maciek
Thu, 29 Dec 2005 14:08
Cross programming ;-)
Author: BLE_Maciek
Date: Thu, 29 Dec 2005 14:08
Date: Thu, 29 Dec 2005 14:08
43 lines
1267 bytes
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 ;-)
Author: Grzegorz Szyszlo
Date: Wed, 04 Jan 2006 10:39
Date: Wed, 04 Jan 2006 10:39
16 lines
1393 bytes
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 ;-)
Author: Arek
Date: Wed, 04 Jan 2006 21:24
Date: Wed, 04 Jan 2006 21:24
44 lines
2641 bytes
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 ;-)
Author: Derek Kuliński / takeda
Date: Thu, 05 Jan 2006 00:30
Date: Thu, 05 Jan 2006 00:30
13 lines
1737 bytes
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 ;-)
Author: BLE_Maciek
Date: Thu, 05 Jan 2006 12:41
Date: Thu, 05 Jan 2006 12:41
50 lines
3137 bytes
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 ;-)
Author: Arek
Date: Thu, 05 Jan 2006 17:05
Date: Thu, 05 Jan 2006 17:05
20 lines
2212 bytes
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 ;-)
Author: BLE_Maciek
Date: Thu, 05 Jan 2006 20:02
Date: Thu, 05 Jan 2006 20:02
7 lines
1155 bytes
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 ;-)
Author: Grzegorz Szyszlo
Date: Tue, 10 Jan 2006 11:31
Date: Tue, 10 Jan 2006 11:31
35 lines
2176 bytes
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 ;-)
Author: Grzegorz Szyszlo
Date: Tue, 10 Jan 2006 11:33
Date: Tue, 10 Jan 2006 11:33
17 lines
1897 bytes
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 ;-)
Author: Arek
Date: Tue, 10 Jan 2006 16:47
Date: Tue, 10 Jan 2006 16:47
9 lines
1312 bytes
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 ;-)
Author: geo
Date: Wed, 11 Jan 2006 17:16
Date: Wed, 11 Jan 2006 17:16
11 lines
1815 bytes
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