Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Dyskusja:Asembler - Wikipedia, wolna encyklopedia

Dyskusja:Asembler

Z Wikipedii

Należy pisać "assembler" czy "asembler"?

W języku polskim istnieje WYŁĄCZNIE słowo asembler przez jedno S. Pozostawiamy natomiast pisownię SS w nazwach własnych, np. w nazwach programów. Beno Moja dyskusja 09:37, 23 kwi 2005 (CEST)

Spis treści

[edytuj] Asembler to nie język programowania!

Tak mnie przynajmniej uczono na studiach (studiuję informatykę). Wersja 18:17, 11 lis 2004 Tsca jest najbardziej poprawna. Jak ktoś znajdzie, że asembler to język programowania, niech poda źródło, aby to zrewidować.koobak 18:28, 29 lis 2005 (CET)

Może u Was używa się jakiejś bardzo wyrafinowanej, specjalistycznej definicji języka programowania? Czy chcesz powiedzieć, że asembler nie jest językiem programowania wobec definicji podanej tutaj (która brzmi całkiem OK dla nieinformatyka)? --Bansp 18:45, 29 lis 2005 (CET)

Asembler, to jakby nie patrzec, jezyk maszynowy, a czy to jest jezyk programowania? Na wiki podaja, ze tak... PALLADINUS talk 23:24, 29 lis 2005 (CET)

Powiem tak: Wikipedia ma zawierać wiedzę, a nie czyjeś widzimisie na temat wiedzy. Przecież to ma być encyklopedia! Nie można w encyklopedii zamieszczać nieprawdy! Definicje, które się tutaj znajdują muszą być OK dla każdego (i specjalisty i laika). Ewentualnie można dobrać odpowiednio słownictwo. koobak 23:41, 29 lis 2005 (CET)
Dla mnie jezyk maszynowy to raczej ciąg '0' i '1'. A asembler (tak mnie też uczono na informatyce :P) to jezyk programowania. Z resztą, zadajmy sobie proste pytanie: "Czy w Asemblerze można napisać program?" Otóż moim skromnym zdaniem: tak. Co (przynajmniej dla mnie) jest równoważne stwierdzniu, że jest on jezykiem programowania. 18:17, 23 gru 2005 (CET)Egon 18:17, 23 gru 2005 (CET)

No wiec tak, PWN [1] mowi o jezyku maszynowym, WIEM, wp.pl i interia [2] [3] [4] o jezyku programowania niskiego poziomu. No i kto sie w tym rozezna? I jeszcze digipedia [5] tez o jezyku programowania mowi. - PALLADINUS talk 23:53, 29 lis 2005 (CET)

Koobak: ze specjalistami to jest tak, że czasem długo debatują, której definicji danego pojęcia chcą używać :-), no a (nie)prawda w takim ujęciu, jakiego się domagasz, jest niestety względna wobec przyjętych definicji. Ja tam informatykiem nie jestem, ale i tak otarłem się o debaty, czy coś tam jest już językiem programowania, czy jeszcze językiem skryptowym -- to zależy od Twoich definicji. No i weź Bieleckiego ze swoimi definicjami -- to on mówi prawdę, czy ci, co tradycyjnie rzeczy nazywają? ;-) Powyżej chodziło mi o to, że definicja języka programowania taka jaka jest tu, jest i OK dla laika, i zapewne do przyjęcia dla Knutha (najwyżej z lekkim skrzywieniem), bo to właśnie encyklopedia ma chyba być, a nie leksykon terminów informatycznych. To tak IMHO, bo kłócić się, jako niespecjalista i newbie tutaj, nie mam zamiaru. Pozdro, --Bansp 01:07, 30 lis 2005 (CET)

Jeszcze jeden dowód: asemblery tej samej maszyny mogą mieć całkiem różne składnie - np. składnie Intela i AT&T dla procesorów x86. --matusz d 15:14, 9 sty 2006 (CET)

Asembler jest językiem - składnia większości implementacji asemblera x86 daje m.in. możliwość tworzenia makrodefinicji, obok mnemoników występują instrukcje sterujące (.286, data, segment,...) a poszczególne kompilatory posiadają szereg rozszerzeń, np. nasm pozwala na używanie if czy while, definiowanie struktur i unii. Kod wynikowy przeważnie przechodzi przez etap linkowania, niektóre asemblery pozwalają na optymalizację kodu. Mnemoniki niektórych instrukcji (właśnie: instrukcji) nie mają przełożenia 1:1 w kodzie maszynowym (np. nop to najczęściej mov ax, ax xchg ax, ax). To jest język programowania (niskiego poziomu). :] Kro 05:52, 15 sty 2006 (CET)

nop = xchg ax, ax ?? możesz mi przybliżyć pod jakim asemblerem (nasm? tasm? masm? fasm? ???)

Przyznam szczerze że nigdy mi się jeszcze nie zdarzyło uzyskać "xchg ax, ax" używając nop'a ;> Co nie zmienia faktu, że wynik operacji obu instrukcji jest taki sam. Co to za dziwny asembler który zamienia nop na xchg ax, ax?? No a skoro już się "czepiam" ;) to (.286, data, segment,...) to jest zbiór dyrektryw dla asemblera a nie zbiór instrukcji sterujących. Pozdrawiam kbhood 14:22, 15 lut 2006 (CET)

NOP = XCHG (E)AX,(E)AX.
Opcod 'NOP' to 0x90 - w tym opcodzie ostatnie 3 bity to numer rejestru. Numer rejestru eax to 0, wiec 90. Dla przykładu, xchg (e)cx,(e)cx to bedzie 0x91 (numer rejestru ecx to 1).
W czasach 8086 istnialo to tylko jako xchg ax,ax, ale w krotki czas potem zostala ustanowiona 'nowa' nazwa dla tego opcodu - nop. Sytuacja podobna jak z je/jz - ten sam opcod, ale inna nazwa, dla zachowania czytelnosci.
Pozdrawiam Fr3m3n
Zgadza się Fr3m3n. Po przestudiowaniu tablicy opkodów dla procesora Intel przyznaję rację, że instrukcje
XCHG (E)AX, (E)AX
oraz
NOP
mają ten sam opkod. Zwracam honor wikipedyście Kro.
Pozdrawiam kbhood

[edytuj] Przykład

Zważywszy na naturę asemblera, można by się pokusić o słowną interpretację obok każdego z poleceń przykładu, bo tak jak jest, to baaardzo sucho wygląda :-) --Bansp 18:50, 29 lis 2005 (CET)

[edytuj] czym jest język programowania ?

Najpopularniejszą "środowiskową" definicją j. p. jest taka, w której językiem programowania jest wszystko, co pozwala na instrukcje warunkowe i pętle oraz bodajże funkcje. W ramach tej definicji nawet LaTeX jest j.p (o tym że jest nim PS chyba wszyscy wiedzą?) a tym bardziej asembler :P

Pozdrawiam --WarX <talk> 23:34, 29 lis 2005 (CET)

[edytuj] Czym nie jest asembler

Pogodzę Was koledzy. Asembler nie jest w żadnym wypadku jezykiem oprogramownia. Asembler, to program tłumaczący język asemblera ( czyli to co tu definiujecie ) lub jak wolicie język mnemonik na kod maszynowy. To co tu napisaliście powinno figurowac pod hasłem "języki asemblera", hasło asembler powinno mieć treść: program tłumaczący języki asemblera na odpowiadajace im kody maszynowe. Niestety nie jestem wikipedystą i nie wiem jak to zrobić.:(

wyrazy uznania za ciężką i pożyteczną pracę :)

M

Tak, ale nie do końca - po polsku często używa się słowa asembler zarówno w odniesieniu do programu jak i języka. Trzeba by dopisać trochę, żeby był sens rozdzielać to na dwie części. Poza tym to nie zmienia istoty sprawy - że każdy język asemblera jest językiem programowania ;-) . --matusz d 15:55, 14 sty 2006 (CET)
Kasztan to i drzewo i owoc, więc rozumowanie jak najbardziej błędne. Równie dobrze mogę twierdzić, że asembler to nie program do czytania i tłumaczenia plików, bo pliki czyta i tłumaczy interpreter asemblera. Kro 05:45, 15 sty 2006 (CET)
No cóż, kasztan to drzewo i owoc, śliwka też, ale nic z tego nie wynika dla kwestii asemblera. ;)
Aby się nie rozwodzić, cytat z brytyjskiej Wikipedii ( podkreślenia są moje ):
"An assembler is a computer program for translating assembly language — essentially, a mnemonic representation of machine language — into object code. A cross assembler (see cross compiler) produces code for one type of processor, but runs on another.
As well as translating assembly instruction mnemonics into opcodes, assemblers provide the ability to use symbolic names for memory locations (saving tedious calculations and manually updating addresses when a program is slightly modified), and macro facilities for performing textual substitution — typically used to encode common short sequences of instructions to run inline instead of in a subroutine.
Assemblers are far simpler to write than compilers for high-level languages, and have been available since the 1950s. "
jeszcze raz pozdrawiam
M

[edytuj] asembler a Asembler

Chciałbym zwrócić uwagę na fakt, że używamy słowa "asembler" jeśli odwołujemy się do programu tłumaczącego mnemoniki do postaci binarnej. Natomiast słowa "Asembler" w przypadku gdy chodzi nam o język. Taką terminologię stosują autorzy książek poświęconych zagadnieniom programowania w języku Asemblera.

"Aby napisać program w języku Asembler, musimy znać składnię i znaczenie słów należących do tego języka. Znajomość syntaktyki i semantyki języka stanowi zaledwie część wiedzy niezbędnej do tworzenia programu asemblerowego. Program źródłowy (z rozszerzeniem asm) musi być zapisany zgodnie nie tylko ze składnią i znaczeniem słów tworzących język Asembler, lecz także z zasadami asemblera-translatora czyli programu, który czyta i analizuje zawartość programu źródłowego oraz w razie potrzeby ponawia te czynności. "
    • Stanisław Kruk " Asembler - kurs programowania dla średnio zaawansowanych" wyd. Mikom

A tu kolejny cytat tego samego autora:

"Pomysł był prosty; należało napisać program przekształcający monotonne ciągi zerojedynkowe, które oznaczałyby kody rozkazów procesora oraz ich adresy w pamięci, na symboliczne nazwy. Dokonano tego i okazało się, że to działa aż do dziś - tak powstał symboliczny asembler (jako program-translator pisany jest zawsze małą literką, aby nie mylić z nazwą języka Asembler)."
    • Stanisław Kruk " Asembler - Podręcznik użytkownika" wydanie 3 poprawione i uzupełnione, wyd. Mikom

Dla odmiany cytat innego autora:

"Niektórzy ludzie definiują język Asemblera jako język, w którym z jednego wiersza tekstu źródłowego (zapisanego przez programistę) tworzy się jedną instrukcję maszynową. Dosłownie to nie jest prawda, gdyż niektóre wiersze zapisane przez programistę w kodzie źródłowym są poleceniami dla programu asemblera i nie powodują utworzenia żadnej instrukcji maszynowej.
Moja definicja Asemblera jest następująca (to wciąż cytat - dop.):

Język Asemblera jest językiem, który umożliwia sprawowanie całkowitej kontroli nad każdą poszczególną instrukcją maszynową, wytworzoną przez program translatora."

    • Jeff Duntemann " Zrozumieć Asembler"

W ostatniej definicji "program translatora" to po prostu asembler (przez małe 'a' bo chodzi o program a nie język).

A .. i jeszcze jedno. A propos historii języka (wybitny znawca tematu - Stanisław Kruk):

"Jak podają książki o historii Asemblera, podczas rywalizacji między mocarstwami zaprogramowano rakietę Vanquard - jako odpowiedź na Sputnika z 1957 r. - w języku wewnętrznym maszyny. Po prostu "nafaszerowano" jej wnętrze zerami i jedynkami. I cóż się stało. Ano, stało się, programista przeoczył zero czy jedynkę, po czym odbył się kosztowny spektakl na nieboskłonie. Czy ten programista dalej tam pracował? Nie wiadomo. W każdym razie poważnie rzecz potraktowano, wzięto pod uwagę omylność człowieka i sięgnięto po pomysł z początku lat 50. Pomysł był prosty ..."

dalej znajduje się fragment przytoczony przeze mnie wyżej.

I kolejna sprawa... W artykule zamiast "Przykładowe polecenie" powinno być "Przykładowe polecenia" gdyż podano ciąg 4 instrukcji z których każda z nich jest poleceniem dla procesora. Następnie fragment "Rozszerzeniem Asemblera z zachowaniem wszystkich jego możliwości jest makroasembler" powinien być uzupełniony o co dokładnie Makroasembler rozszerza funkcjonalność Asemblera, tak by zdanie to wnosiło do definicji coś konkretnego. Makroasembler w skrócie (dla potrzeb tego artykułu) uzupełnia dziewiczy język Asemblera o składnię języka wysokiego poziomu, a więc możliwe staje się stosowanie iteracji warunkowych ograniczonych jak i nieograniczonych (for, while, repeat...until) oraz wyboru warunkowego (if, if...else), makr, i wysokopoziomowej składni wywoływania procedur (invoke zamiast call - własność Macro Assembler'a) a oto przykład z Makroasemblera:

.if eax == 7
    add eax, ebx
    invoke foo, param1, param2, ebx
.else
    invoke bar, eax, param2, param3
.endif
    ret

co w języku Asemblera przybrałoby postać (np.):

cmp  eax, 7
jne  label_else

add  eax, ebx
push ebx
push param2
push param1
call foo
jmp  label_endif

label_else:
push  param3
push  param2
push  eax
call  bar

label_endif:
ret

po więcej przykładów i informacji na temat makroasemblera -> www.masm32.com , www.win32asm.cjb.net (szczególnie polecam dział tutorials i source) Pozdrawiam [powyższe napisane przeze mnie - Kbhood 11:37, 15 lut 2006 (CET)]

Jeśli Asembler to język, a asembler to program, to chyba powinno się pisać język Asembler, a nie język Asemblera (jak to jest w art.), bo to trochę jak język Pascala. royas 12:41, 6 lip 2006 (CEST)

Zgadzam się. Jakkolwiek, takie tłumaczenie zastosowano (m.in.) w książce "Zrozumieć Asembler", autor Jeff Duntemann. Widać tłumacz wpadł w tę samą pułapkę.
Pozdrawiam kbhood

[edytuj] Asembler- język programistów

przypisuje nazwy symboliczne:

                             a)wyłącznie argumentom operacji
                             b)operacjom oraz ich argumentom
                             c)wyłącznie operacjom

[6] OS stworzony w Asemblerze :-) --Pan Czips 10:15, 8 lip 2007 (CEST)

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com