Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Asembler


  • Zaloguj się, aby dodać odpowiedź
16 odpowiedzi w tym temacie

#1 macQUB

macQUB
  • 334 postów
  • SkądPodkarpacie

Napisano 19 marca 2009 - 21:27

W czym na Mac'u pisać w asemblerze (czy da się w Xcode). System jaką ma instrukcje przerwania, oraz gdzie mogę znaleźć numery funkcji obsługujących systemowe urządzenia wej./wyj. Czy są jakieś różnice pomiędzy procesorami Intela w "zwykłych" PC, a makowskim (zdaje się że obydwa należą do tej samej rodziny x86, ale nie jestem pewien:-))

#2 misioslaw

misioslaw
  • 1 595 postów
  • SkądTychy

Napisano 19 marca 2009 - 22:31

Jeśli chcesz pisać tak jak na PC pod DOSa to zapomnij. Albo piszesz "pod System" - czyli używając systemowych funkcji i bibliotek. albo piszesz natywnie pod EFI.

#3 heretique

heretique
  • 334 postów
  • SkądKraków

Napisano 19 marca 2009 - 22:43

Odpowiem przewrotnie: teoretycznie się da. Są narzędzia. Maki intelowe to ten sam intel co w blaszakach, są jeszcze oczywiście PowerPC. Żeby coś napisać w tym asemblerze, choćby wstawkę (pomijam pytanie "po co?"), potrzeba sporo wiedzy i pewnego doświadczenia w tej materii. Jeśli kolega ma nawet odrobinę wiedzy i doświadczenia, to pewnie wie jakich narzędzi potrzebuje i pewnie wie jak sprawdzić czy są one dostępne. Nawet nie trzeba gógli do tego ;-)

#4 misioslaw

misioslaw
  • 1 595 postów
  • SkądTychy

Napisano 20 marca 2009 - 04:53

Maki intelowe to ten sam intel co w blaszakach

Procesor ten sam, ale płyta główna inna.
Tak jak wspomniałem wcześniej, pisać pod DOSa posługując się przerwaniami BIOSu zbytnio się nie da.
Można pisać pod EFI, co łatwe nie jest ze względu na skąpą dokumentacje ( pod EFI można też pisać w C, żeby było zabawniej to w Microsoft Visual Studio :D)
Pozostaje właściwie pisanie pod system, ale to wygodniej robić w innym języku.

#5 macQUB

macQUB
  • 334 postów
  • SkądPodkarpacie

Napisano 20 marca 2009 - 10:05

A gdzie mogę znaleźć numery funkcji dla MacOSX, i w jakim pliku to zapisywać ( przecież chyba nie w DOS-owskim .com-ie ani .exe, oraz jaki ma być owset dla tego pliku , a tak nawiasem mówiąc przecież jądro systemu było napisane w asemblerze dopiero później zostało przepisane na C :-))

Jeśli chcesz pisać tak jak na PC pod DOSa to zapomnij

to że w asemblerze pisze się pod dany system to wiem :-)

Może w NASM?

---- Dodano 20-03-2009 o godzinie 13:50 ----
Ale, jak bym pisał na windowsie (na Mac-u) pod DOS-a to standardowa komenda przerwań (zdaje się "int 21h")zadziałała by?

#6 MacDada

MacDada

    MyApple Team

  • 7 237 postów
  • Skąd3city

Napisano 20 marca 2009 - 13:44

STFG:
assembler mac - Google Search

Przeczytanie pierwszych kilku wyników sprawi, że będziesz zadawał o połowę mniej pytań na forum...
Jest tam nawet oficjalna dokumentacja Apple.

#7 ris

ris
  • 17 postów
  • SkądJeżowe

Napisano 09 kwietnia 2009 - 22:34

kiedys sie z tym meczyłem. jest nasm (i ma zapisa w stylu at) ale: nie moze wygenerowac info debuggujacej, którą da się w gdb odpalic. jesli chcesz na macu to w xcode z gdb ladnie powinno hulac, ale tam to jest gcc + as i mamy skladnie intela. możesz skompilowac do asemblera i zobaczyc jak to wyglada. jesli chcesz w nasmie poklepac, to postaw linuxa.

#8 Scypin

Scypin
  • 299 postów

Napisano 03 maja 2009 - 20:17

lista rozkazów jest ta sama nie używasz numerów przerwań tylko Cocoa podobnie jak programując pod winde się używa WinApi. nasm chyba nie zadziała bo nie ma poleceń Cocoa, nie wiem jaki jest asembler pod mac… dobrze że nie pytasz o PowerPC ,bo tam już całkiem jest ciężko znaleźć cokolwiek

#9 macQUB

macQUB
  • 334 postów
  • SkądPodkarpacie

Napisano 10 maja 2009 - 08:17

A czy zadziałałoby: Dosbox + dos + NASM + NASMedit?

#10 tomasz_konrad

tomasz_konrad
  • 165 postów
  • SkądGdańsk / Kielce

Napisano 11 maja 2009 - 09:03

A czy zadziałałoby: Dosbox + dos + NASM + NASMedit?


Ale kombinacja! :-) Nie wiem czy ktoś testował :> Ja niestety nie.

Mam takie pytanie do Ciebie, a dlaczego chcesz w asemblerze kodować? Czy masz przygotować projekt na zaliczenie na uczelnię? Jeśli tak to prościej jest wykorzystać wirtualną maszynę z DOS'em. Nie wiem czy patent z DOSBox'em będzie udany (i wygodny w użyciu).

Jeżeli pragniesz spróbować sił w kodowaniu niskopoziomowym to może zakup C-64, no Amigi 500 nie byłby głupi? Myślę serio, bo zakup jakiejś płytki rozwojowej z CPU Atmegi, ZiLOG'a jest dość sporym wydatkiem (tam możesz śmiało pisać w C czy asemblerze albo mix). Kodowanie na OS X w asemblerze jest raczej pomyłką, no - bardzo trudne, a wydajność jaką by się osiągnęło raczej wątpliwa i ciężka do oszacowania. Obecne Mac'e to warstwa firmware, nad tym rozbudowany, zaawansowany system operacyjny więc dobieranie się do rejestrów CPU czy układów wspomagających jest dość ryzykowne.

#11 macQUB

macQUB
  • 334 postów
  • SkądPodkarpacie

Napisano 11 maja 2009 - 13:01

Potrzebuje napisać projekt w asemblerze,

Jeśli tak to prościej jest wykorzystać wirtualną maszynę z DOS'em.


Czy mógłbyś podać przykład takiego emulatora (na uczelni używamy takiego zestawienia programów jak podałem powyrzej)

#12 tomasz_konrad

tomasz_konrad
  • 165 postów
  • SkądGdańsk / Kielce

Napisano 11 maja 2009 - 13:57

Ja swego czasu używałem starusieńkiego VirtualPC (stara wersja) jakiego dostałem. Tam potem zainstalowałem sobie leciwy Win'98 oraz DOS. Proces tworzenia konfiguracji maszyny masz opisany w instrukcji VPC. Jest to dość proste, w przypadku DOS'a bardzo proste. Mając potem DOS'a wrzucisz sobie NortonCommander, NASM'a czy czego tam używasz i jakieś proste programiki w asemblerze możesz trzaskać ;-) Co do VPC to rzuć okiem na aukcje, może ktoś się pozbywa starej wersji, nie orientuje się teraz jak kupno nowego. Możesz spróbować także GuestPC (czy jakoś tak). Masz Mac'a z Intel'em, nie ma na OS X'a żadnego VMWare z preinstalowanym DOS'em? :-p

#13 wojtkow

wojtkow


  • 6 767 postów
  • Płeć:
  • SkądPoznań

Napisano 11 maja 2009 - 14:35

na OSX masz VMware Fusion, jest ono komercyjne ale ma 30 dniowy trial, może to Ci wystarczy. Obrazymaszyn wirtualnych z DOSem są do pobrania w sieci, wystarczy poszukać, nie ma różnicy większej różnicy, czy obraz jest na OSXa czy Windows (różnice są w organizacji plików, ale Fusion radzi sobie z organizacją Windowsową)

#14 grabka

grabka
  • 184 postów

Napisano 12 maja 2009 - 16:24

Odpowiedź brzmi DosBox :)

DOSBox, a x86 emulator with DOS

Na studiach mieliśmy maszyny z Linuxem, a na nich Dosbox i wszyscy pisali na tym swoje asemblerowe programiki :)

#15 mroman

mroman
  • 54 postów
  • SkądLublin

Napisano 16 maja 2009 - 16:04

Odpowiedź brzmi DosBox :)
Na studiach mieliśmy maszyny z Linuxem, a na nich Dosbox


Przekombinowane - na moich studiach były linuxy bez dosboxa i też wszyscy pisali na nich asemblerowe programiki.

#16 macQUB

macQUB
  • 334 postów
  • SkądPodkarpacie

Napisano 17 maja 2009 - 11:25

Dobra, na winie zainstalowałem DosBox'a i działa jak narazie :-) Na OSX'e nie mogłem uruchomić NASMIDE

#17 digest

digest
  • 126 postów

Napisano 23 sierpnia 2009 - 10:12

Na Mac-u działa qemu. Używam (prawie) codziennie i nie mam z nim problemów.




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych