måndag 3 oktober 2011

Uppgift 8b


Som vanligt valde jag att sätta mig in i något komplicerat, min frågetälning var " Vad är assembler och vad är fördelarna och nackdelarna med ett sådant lågnivåspråk?"
Kan börja med att säga att säga att assembler är ett djupt hål och kunskaper om hur processorn och arbetsminnen fungerar är ett krav för att förstå. Något jag inte hade så bra koll på. Men efter att ha läst på lite om minnets register, hexkod och binärkod så har det klarnat lite iaf.

Men låt oss börja från början, först har du en processor som bara läser binärkod, för att göra det lite lättare för programera så infördes ett språk med symboliska namn, detta språk är assembler. Detta språk bestäms vanligtvis av processorföretaget och kan skilja sig åt från processormodel till model.  Går man längre upp i skalan med programmeringsspråk kommer språk som java, c++ och C#. Dom här är inte låsta till en specifik processor model, dom fungerar så att det finns en kompliator som översätter koden till rätt assemblerspråk. Sen har processorn en kompliator som översätter assemblerkoden till maskinkod.

På ett x86/DOS system skulle ett vanligt “Hello World” program kunna se ut så här:

mov    ah,9
mov    dx,offset helloworld
int 21h
mov    ah,4Ch
int 21h
hello  
db 'Hello, World!',0dh,0ah,'$'

Här utnyttjas möjligheten att använda symboliska namn, hellowolrd är namnet på minnescellen där texten “Hello World” finns. Sedan används instruktionen “int” för att skriva ut texten på skärmen.


Fördelar och nackdelar med Assembler.
Fördelarna med assembler är att språket är mycket snabbt och att det går skriva direkt till processorn utan att vara beroende av något annat. Dom stora nackdelarna är att programmeraren måste lära sig olika versioner av språket beroende på processorn och att det kan vara svårt att förstå språket.

Vad som fascinerar mig med assembler är reverse engineering, att vem som helst med kunskaper om assembler kan debuga ett färdigt program, lista ut hur det fungerarar och skriva om det så det passar ändamålet bättre. (Vilket jag aldrig skulle göra på ett olagligt sett, bara av ren nyfikenhet) Klippet som inspirerade mig att vilja läsa mer om assembler är just ett sådant klipp. I det här klippet plockar en programmerare isär spelet MS RÖJ men syfte att ändra lite i koden.

Det är på detta sett som hackare skriver “cracks” till spel och program.

Video


Efter att ha läst mycket om assembler inser jag att det är ett mycket ineffektivt sett att skriva program på och att högnivåspråk är ett måste för att kunna skriva ett avancerat program. Det går självklart men ingen människa skulle ha tiden eller orken att skriva ett program som Photoshop i assembler. Det är bara när det inte finns något annat alternativ som assembler borde användas, som till exempel när ett elektronikföretag ska bygga ett kretskort med få funktioner.

Inga kommentarer:

Skicka en kommentar