Gå til innhold

Anbefalte innlegg

Alt man kan gjøre i andre programmeringsspråk kan man gjøre i asm, men ikke omvendt!

 

Jeg er på en måte enig i dette - men på en annen måte ikke, siden man kan bruke ASM i andre språk og da utvider man språket - på en måte. Man burde heller utvide eller oppgradere drivere til maskinvaren man programmerer mot mener nå jeg hvis man først skal progge i ASM; slik vil du (og andre?) få glede av koden din neste gang du skal bruke funksjonaliteten i den.

Man kan, i noen programmeringsspråk som C/C++, skrive ASM "direkte i språket". Altså man skriver ASM innimellom den vanlige koden i språket. Eller man lager en egen komponent i ASM og kaller funksjonene i denne komponenten fra det språket man bruker til "vanlig".

Det finnes flere funksjoner i standard C/C++ som kan være skrevet i ASM for den platformen de kjører på, så hvorfor gjøre jobben en gang til?

Det er kanskje greit hvis man mener noen har implementert koden til disse funksjonene "for dårlig" - men da må man programmere om disse funksjonene i stedet for å legge til egne synes jeg.

 

C/C++ blir forresten compilert til ASM/maskinkode uansett - og om du bruker en god compiler vil denne koden gå like kjapt stort sett, om ikke kjappere. Det brukes masse ressurser på å forbedre compilere og jeg tviler på om noen av oss "vanlige dødlige" greier å tenke ut bedre algoritmer enn det disse personene allerede har tenkt ut for oss - og i så fall; hvorfor ikke implementere dette i selve compileren slik at disse algoritmene også blir brukt "neste gang" til fordel og ære og berrømelse for deg og andre som bruker den?

Jeg forstår at dette i visse tilfeller kan være vanskeligere å implementere i en compiler siden det kan være en del ting som spiller inn i en kode som ikke er din og som skal tolkes og undersøkes om er en gyldig kandidat for akkurat din optimaliserte algoritme. Men det vil uansett være en umulig oppgave for et menneske å gå igjennom 1000-vis av linjer med kode manuellt for å sjekke om den eller en annen algoritme kunne vært implementert akkurat her. Dette har vi compilere for.

 

Jeg er klar over at det trengs ASM, eller ASM-lignende programmeringsteknikker for å implementere drivere til ny maskinvare og lignende, men jeg tviler på at det er det moesen er ute etter - og jeg tviler på at noen bruker det til noe mer enn det.

 

Man må også tenke på hva man mener med "å gjøre alt". For det er noen som må skrive dette "alt" også, og det kan vise seg å bli en umulig oppgave på grunn av størrelse - og det er som sagt heldigvis noen som har gjordt mye av jobben for deg, og som har gjordt det på en slik måte at koden du skriver fungerer på andre plattformer også.

 

Litt far out og off-topic kanskje, men fikk løst å skrive litt så;

Sett hvis du snakker til meg, og du bruker et språk; norsk (C++).

Hjernen min tolker disse ordene (compilerer) og gjør dem om til maskinkode.

Vi vet ikke om denne innvendige maskinkoden i hjernen min er 0'ere eller 1'ere, som på en datamaskin, men det spiller ingen rolle. Vi vet heller ikke om denne maskinkoden er lik den i en annen hjerne, men det er den sansynligvis ikke (mac, linux, sun, *bsd, windows, amiga, etc.).

 

ASM foregår et bittelite skritt over dette nivået, som sies å være lavnivå og er mer eller mindre dirkete avhengig av maskinen og hvilken type maskinkode den trenger. ASM kan sies å være maskinkode, tror jeg.

 

Siden norsk er en standard (C/C++ standarden), vil flere enn meg forstå hva du snakker om (fungere på flere plattformer).

 

Det som er fordelen med datamaskinen, men som desverre, kanskje, ikke går med hjernen er at man kan snakke direkte til den innimellom.

Man kan innimellom ordene (C/C++ funksjoner) også legge maskinkode i form av ASM.

Man kan gjøre det umulige, snakke med en ny maskinvare-dings eller lære hjernen å snakke -bedre- med en allerede eksisterende maskinvare-dings; alt man kan i ASM som ikke er implementert i C/C++, samtidig eller innimellom at man snakker vanlig norsk (C/C++).

 

Skrev alt for mye - og husker ikke om jeg skrev visse ting fler enn én gang, men samme kan det være. Kanskje visse ting er uforståelige, da er det fordi jeg ikke har forklart dem godt nok.

I grunn kunne jeg bare sagt:

Bruk ASM hvis du skal kode mot maskinvare der dette er nødvendig (det ikke finnes andre alternativer) og C/C++ til resten.

, men det finnes altid noen som mener dette ikke er godt nok, "blabla" :o , uten at de kanskje har evnen til å gjøre noe med det.

De burde i såfall ikke programmere programmerer med denne assemblyen - men drivere, compilere eller kanskje en liten bootloader. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...