Diskussion:Assemblersprog

Denne artikel er dobbelt se også Assemblerkode

Aeriklen assembler handler nu om det program, som bruges til oversættelse af assemblersprog. --Rune Magnussen 21. maj 2005 kl. 11:44 (CEST)

Et godt råd efterlyses redigér

Kasper på 14 år vil gerne videregive sine erfaringer med programmering i assemblersprog. Hvilket råd kan man give ham så han ikke helt mister lysten til at bidrage? -- Mvh PHansen 17. jun 2007, 12:58 (CEST)

Mon ikke der er plads til nogle gode, detaljerede værker om assembly ovre på Wikibooks...? sa'e Peo 17. jun 2007, 13:14 (CEST)

Jo, det er muligt - han har brug for hjælp fra folk der både kender til det han vil videregive OG hvordan det kan tilrettelægges på Wikibooks. Der kunne evt arbejdes videre på det i en Bruger:Kmt_dk/Sandkasse eller lignende med en opfordring til at andre kunne blande sig, så både han og vi lærte noget. Der er måske en assemplerkyndig administrator? -- Mvh PHansen 17. jun 2007, 13:26 (CEST)

hej igen nu ved jeg at det er længe siden at jeg har skrevet noget herinde, men det går nok. I mellemtiden har jeg lært en masse, (asm) som jeg nu vil skrive om, hvilket osse indkludere OS, programmering. Men jeg har en regl for at skrive mere her!!

  • 1: Jeg acceptere absolut ingen ændring, med mindre at man har snakket med mig om det, eller af gramatiske grunde.

Og af den grund: du kan ikke skrive noget godt favligt stof hvis alle ændre det med tiden.! og så er der kun et par måder at gøre det på 1 alle dissutere det og skriver. 2 en skriver, og de andre kan så gennem tiden, (i sammarbejde med den der skrev det) rette teksten og eftersom at jeg nu er igang på wikibooks, vil jeg gerne at jeg osse kunne skrive noget, her, som ikke blev rette. OG 1 sidste ting, hvis i tvilver på MIN VIDEN indefor ASM, så vil jeg gerne have at i gider at google, og SELV FINDE ud af noget, inden i taler. (dette er ikke rette mod dem der ved noget)

Kasper

Hvad? Alle må rette alt. Det er et ufravigeligt krav.. --Hockeyindustrien 15. aug 2007, 21:19 (CEST)
Dit krav står i skarp kontrast til teksten under redigeringsvindet:
  • Hvis du ikke ønsker at din tekst skal udsættes for nådesløse redigeringer og at den kan blive kopieret efter forgodtbefindende, så skal du ikke placere den her.
--|EPO| 15. aug 2007, 21:19 (CEST)

Irrelevante afsnit redigér

Afsnittene

  • 3 Segment og registrene
  • 4 Nogle kommandoer
  • 5 Debug.exe

drejer sig ikke om assemblersprog i almindelighed, men om et ganske bestemt (i artiklen ikke specificeret) assemblersprog. Disse afsnit bør slettes, eller flyttes til en artikel om assemblerprogrammeing på pågældende arkitektur. Byrial 16. aug 2007, 01:58 (CEST)


Jeg kan godt se hvad i mener, MEN BRYRIAl, forklar mig lige, hvad er en cpu, Det er der asm bliver brugt, det bilver ***** ikke bruget andre steder. OG EN CPU HAR ALT SER REGISTER, DET kommer du ikke udenom, IKKE DET NORMALE FOLK FORSTÅR VED EN CPU.!!! og NÅR SÅ JEG SKRIVER OM NOGLE KOMMANDOER, ER DET FOR AT DE DER GERNE VIL VIDE NOGET OM AT PROGRAMMERE PÅ EN COMPUTER KAN FÅ EN START.

KMT (Skrev Kmt dk (diskussion • bidrag) . Husk at signere dine indlæg.)

Jeg synes, du skal slappe lidt af. Byrial har kigget artiklen, der for det første er uencyklopædisk og mangler formatering, igennem, og er kommet med nogle konstruktive forslag til en forbedring. Det er ikke en konkurrence om at vide noget om assemblersprog, som du er åbenbart er meget stolt over at kunne. Tænk over, hvilken effekt dit indlæg får, når du skriver med store bogstaver. --Hockeyindustrien 16. aug 2007, 18:13 (CEST)
Ja
jeg gik nok over stregen, men det er fordi, at (som du siger) jeg er stolt over at vide noget, som ikke ret mange ved noget om.
men det der nok har gjordt mig sur, er at nogen for det første begynder at ændre noget, som fx:
med den faglige korretkthed,(det var den der gjorde mig mest sur), og specielt når man skriver noget, alle andre skriver.
Kmt(Skrev Kmt dk (diskussion • bidrag) . Husk at signere dine indlæg.)
KMT, hvorfor skal jeg forklare dig hvad en CPU er? Hvis du ikke synes den danske artikel er god nok, kan du læse den engelske artikel som er mere detaljeret. Og ja, en CPU indeholder registre som varierer meget i antal, typer og egenskaber i forskellige CPU-arkitekturer. Teksten i tre afsnit beskriver - uden at det er nævnt - enkelte detaljer om en bestemt arkitektur og for sidste afsnits vedkommende også et bestemt styresystem. Det er for specialiseret og hører som sagt ikke hjemme i en generel artikel om assemlersprog. Skriv evt. en wikibog om assemblerprogrammering på x86 under Microsoft Windows. Byrial 16. aug 2007, 21:14 (CEST)
Til Kmt. Her er to wikibooks at skele til – for ikke at sige oversætte fra:
Assembly Language (engelsk) og Assembler (80x86 Prozessor)-Programmierung (tysk)
Hvis du laver din egen "sandkasse" eller lille projektside, fx Bruger:Kmt dk/ASM Wikibook eller hvad du nu synes passer, så kan du begynde at bygge bogen op dér. Du kan se her, Kategori:Sandkassen, hvordan mange andre gør det samme, når de vil bygge noget op eller oversætte. -- Mvh PHansen 17. aug 2007, 10:15 (CEST)

En omskrivelse af artikel? Mere generelt? redigér

Jeg har planer om at bruge lidt tid på at få denne artikel skrevet om. Det skrevne om assemblersproget er meget specifikt til x86 arkitektur, og da denne artikel bør være om assembler-sprog generelt, skal disse afsnit vel egentlig skrives helt om.

Jeg har på fornemmelsen at forfatteren er ung. Dette er super at du har lyst og evner til at skrive om dette emne. Men jeg føler dog at artiklen kræver en gang oprydning og "encyclopedificering" i formuleringen. Så det vil jeg prøve at få gjort.

Jeg har givet mit bud på generalitet ved at fjerne tidligere første eksempel. Eksemplet var "information-overload". Jeg har forsøgt at gøre introduktionen lidt mere menneskelig ved at introducere nogle generelle eksempler på hvordan assemblersproget typisk fungerer.

Mvh

--Intel4004 2. jan 2008, 23:04 (CET)

Billedadvarsel redigér

De følgende billeder er blevet slettet fra Commons eller er blevet indstillet til sletning. Hvis billederne er slettet, skal de fjernes fra artiklen. Deltag eventuelt i diskussionen på Commons. Denne besked blev genereret automatisk af CommonsTicker.

Siebrand slettede Image:Wikibooks-logo.png: : dupe Image:Wikibooks-logo-en.png;

-- CommonsTicker 3. jun 2008, 04:19 (CEST)

tekst fjernet fra artikel redigér

Det her hører vist ikke til i artiklen, ved ikke, hvor det ellers skal være. --Ktp72 23. jun 2008, 16:39 (CEST):

Her er et program jeg selv har lavet.

debug
a
jmp 13c  
db 0d,0a," 			programmet er lavet af Kasper Tvede",a9," KEY.COM V.1,00 ""$" 
mov dx,102 
mov ah,09 
int 21 
jmp 152 
db 0d,0a,"du trykkede:","$" 
mov dx,145 
mov ah,09 
int 21 
mov ah,07 
int 21 
cmp al,0d;enter 
je 1aa 
cmp al,09;tab 
je 177 
cmp al,1b;esc 
je 186  
cmp al,20;mellemrum  
je 195 
mov dl,al  
mov ah,02  
int 21 
jmp 143 
jmp 17d 
db "tab","$" 
mov dx,179 
mov ah,9 
int 21 
jmp 143 
jmp 18c 
db "esc","$" 
mov dx,188 
mov ah,9 
int 21 
jmp 143 
jmp 1a1 
db "mellemrum","$" 
mov dx,197 
mov ah,9 
int 21 
jmp 143 
jmp 1c8 
db "enter, klik for at afslutte","$" 
mov dx, 1ac 
mov ah,09 
int 21 
mov ax,0000 
int 16 
mov ah,4c 
int 21 
rcx  
1d8 
n c:\key.com 
w 
q 

Generalisering redigér

Det er et flot stykke arbejde Kasper (som optræder som 'du' og 'dig' osv i nedenstående) har lagt for dagen og jeg er glædeligt overrasket over at der er unge der synes (assembler)programmering er sjovt.

Dels har jeg undervist i assemblerprogrammering, dels er jeg kraftigt uddannet indenfor området (civilingeniør og datalog) og dels har jeg arbejdet med assembler i næsten 10 år (men det er en del år siden!), så når jeg læser artiklen, føler jeg, som andre nævner, at artiklen er lidt for meget Intel x86 assembler-orienteret.

For overskuelighedens skyld gennemgår jeg mine synspunkter på de enkelte afsnit her:

Introduktionen Er generelt fin, men jeg er ikke helt vild med forklaringen om sprogniveauer. Mener den er forholdsvis irrelevant i denne sammenhæng, hvor en konstatering af at assembler er meget maskinnært ville være nok.

Omkring optimeringer er du faktisk lidt på vildspor. En moderne compiler kan lave nogle (controller-specifikke) optimeringer, der kræver MEGET lang erfaring for en programmerør at kunne matche. derudover foregår der, især i x86, en hel del runtime optimering (predictive lookahead jumping, cache-prediction, etc) der gør at det slet ikke er nemt at kodeoptimere direkte i assembler. Til dit 'forsvar' er det rigtigt at vi indtil sidst i 1980'erne kunne håndoptimere bedre end de fleste compilere kunne.

Din pointe om at assemblerprogrammering giver en god forståelse af hvordan computeren fungerer, er lige i øjet. Har netop undervist en gruppe 14-17 årige i "datalogi", hvor jeg startede med CPU'en, gik via assembler og op til C - med passende "håndoversættelse" mellem de enkelte trin. Det gav netop en god fornemmelse af hvordan tingene hænger sammen.

To slags instruktioner Dette afsnit er både for kort og din forklaring omkring pseodu-kommandoer forstår jeg ikke. Hvis du taler om makro'er, burde det nok undlades.

Grundliggende er der "kun" følgende instruktioner: Logiske- og bitvise operationer, addition og subtraktion, bit-check operationer, hop-kommandoer og hukommelses læse/skrive-operationer (herunder fra/til registre).

Eksempler Afsnittet er fint nok, men du bør påpege at det er en slags x86 assembler, der ikke kan eksekveres direkte, men eksemplerne er med for at vise hvordan en "simpel" addition skrives i assembler.

Segment og registrene Jeg kan sagtens abstrahere fra om "move" kommandoen hedder MOV eller LD eller andet - og at argumenterne kan være byttet rundt. Det der derimod er lidt for "snævert", idet jeg kender microcontrollere der kun har 2-3 registre - og mange RISC orienterede controllere holder sig også til få registre. det skulle ikke undre mig, om der findes controllere helt uden registre!

Segmenter er, mig bekendt, en ren Intel (x86) ting, der er et lævn fra gamle dage, hvor der kun kunne addresseres 64K (16-bit) ad gangen og derfor var det nødvendigt at lave forskellige tricks for at tilgå RAM udover de 64K.

I forbindelse med min undervisning, fortalte jeg at registre egentlig blot er nogle navngivne memory-adresser til en lille hukommelse der ligger direkte på controlleren og derfor har en hurtig respons-tid. Men udover respons-tiden, er registre og RAM-adresser fuldstændigt det samme.

Nogle kommandoer Burde egenlig forkortes lidt og ligge under "Eksempler". Du kan eventuelt lave et lidt større eksempel (ca 10 liniers kode) hvor du gennemgår linierne en for en, med en kort forklaring om hvad der sker på controlleren. For at gøre det mere troværdigt, brug den assembler du er vant til og skriv hvilken en det er, så læseren er klar over det. Du bør nok undgå de mere omfattende kommandoer, såsom INT, der er væsenligt mere kompliceret end det du beskriver og som let kommer til at forstyrre overblikket.

/Christian

Tilbage til siden »Assemblersprog«.