Vinn nätagg från Seasonic
Permalänk
Medlem

Assembler

Hej jag känner att jag kan det mesta i C nu så jag har bestämt mig för att gå vidare till Assembler. Men problemet är vilken assembler jag ska använda.
spelar det någonroll vilken man väljer? vilken använder ni och varför och vilka kan ni rekomendera?

Permalänk
Medlem

Vilken assembler du ska lära dig beror ju helt på vilken hårdvaruplattform du använder. Är det x86 då bör du satsa på att lära dig x86 asm med Intel syntax, och inte AT&T:s kassa syntax (som bl.a. gcc använder)

När det kommer till programmering så räcker det inte att man kan språkets syntax, utan det är enormt mycket mer man måste kunna. Använd C och försök att skriva lagom stora projekt för att få lite erfarenhet av att verkligen använda språket.

Permalänk
Medlem

Det finns en överhängande risk att du tröttnar på att lära dig assembler om du inte tycker det är roligt, och det blir roligt om du känner att du verkligen får något riktigt gjort. När jag lärde mig assembler hoppade jag direkt in på att göra windows-program, det var så kul så jag håller på med det än idag, flera år senare. Ett perfekt paket för att komma igång med 32-bitars assembler för windows är masm32 + radasm. Dom två tillsammans gör assembler lekande lätt, och du kan komma igång direkt med själva programmerandet m.h.a massa fina templates och sånt. Jag hjälper gärna till om du vill ha hjälp med detta.

masm32 v9: http://spiff.tripnet.se/~iczelion/files/m32v9r.zip
radasm IDE: http://www.radasm.com/RadASM2000/RadASM.zip
radasm Programming Pack: http://www.radasm.com/RadASM2000/Assembly.zip

pedagogisk assembler-tutorial för nyburgare: http://www.madwizard.org/dl.php?file=tutors.win32asm

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Delight
Ett perfekt paket för att komma igång med 32-bitars assembler för windows är masm32 + radasm. Dom två tillsammans gör assembler lekande lätt, och du kan komma igång direkt med själva programmerandet m.h.a massa fina templates och sånt. Jag hjälper gärna till om du vill ha hjälp med detta.

masm32 v9: http://spiff.tripnet.se/~iczelion/files/m32v9r.zip
radasm IDE: http://www.radasm.com/RadASM2000/RadASM.zip
radasm Programming Pack: http://www.radasm.com/RadASM2000/Assembly.zip

pedagogisk assembler-tutorial för nyburgare: http://www.madwizard.org/dl.php?file=tutors.win32asm

Är inte det HLASM du snackar om? .. med massor av makron i koden?
Det är ju bara skit .. använder man det så kan man lika gärna använda C.

Det är inte Assembler, därav namnet "High Level Assembler"

Permalänk
Medlem

Om du kan det mesta i C rekommenderar jag dig att gå vidare till C++, inte asm
Det finns verkligen ingen som helst (rationell) anledning att skriva vanliga program (såsom Delight gör ) i asm, och även när man ska hårdoptimera saker är det i ytterst få tillfällen som det är värt (eller ens ger en ökning i prestanda) att köra asm, med tanke på hur väldigt fin maskinkod som dagens compilers spottar ur sig.

Visa signatur

hmm

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Erty
Om du kan det mesta i C rekommenderar jag dig att gå vidare till C++, inte asm
Det finns verkligen ingen som helst (rationell) anledning att skriva vanliga program (såsom Delight gör ) i asm, och även när man ska hårdoptimera saker är det i ytterst få tillfällen som det är värt (eller ens ger en ökning i prestanda) att köra asm, med tanke på hur väldigt fin maskinkod som dagens compilers spottar ur sig.

jag vill lära mig asm för att lära mig hur datorn och operativ systemen fungerar, inte för att jag vill göra stora projekt i det.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av avird
jag vill lära mig asm för att lära mig hur datorn och operativ systemen fungerar, inte för att jag vill göra stora projekt i det.

Då är det vanlig x86 (om du sitter på en PC) asm du ska lära dig. Inte det skiten som Delight länkade till alltså.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av MagnusL
Då är det vanlig x86 (om du sitter på en PC) asm du ska lära dig. Inte det skiten som Delight länkade till alltså.

ok tack, vilken assembler är det man ska använda då om man ska skriva för vanlig x86 asm?

Permalänk

Om du bara vill lära dig om datorns uppbyggnad etc. så kan jag rekommendera att du leker lite med SPIM. SPIM är en MIPS-simulator, som kan köra MIPS-assembler direkt och i realtid visa samtliga processor-register och innehållet i minnet. Du kan även stega dig igenom dina program instruktion för instruktion och se resultatet av alla steg, det är väldigt lärorikt. En bonus är ju att MIPS-assembler är väldigt enkelt och stilfullt. SPIM finns både till *NIX, OSX och Windows, det grafiska skalet är rekommenderat att använda medan du lär dig. Om du vill ha en tutorial så kan http://chortle.ccsu.edu/AssemblyTutorial/TutorialContents.htm... vara en bra start, den är ganska genomgående.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av MagnusL
Är inte det HLASM du snackar om? .. med massor av makron i koden?
Det är ju bara skit .. använder man det så kan man lika gärna använda C.

Det är inte Assembler, därav namnet "High Level Assembler"

Suck! Detta är High Level Assembler http://webster.cs.ucr.edu/AsmTools/HLA/index.html.

Masm har utmärkta makromöjligheter, men det finns ingen som tvingar dig att använda det. Jag kan inte förstå hur du kan vara så himla negativ till något du inte har provat. Det är inte första gången du skriker till för att min favoritassembler har massa extrafunktioner som du själv inte skulle använda. Sluta med det.

Citat:

Ursprungligen inskrivet av avird
ok tack, vilken assembler är det man ska använda då om man ska skriva för vanlig x86 asm?

masm är en komplett assembler för x86 assembly, den rekomenderar jag starkt, och MagnusL måste ha några taskiga barndomsminnen förknippade med masm, för jag kan verkligen inte förstå hans renonemang

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Delight
Suck! Detta är High Level Assembler http://webster.cs.ucr.edu/AsmTools/HLA/index.html.

Masm har utmärkta makromöjligheter, men det finns ingen som tvingar dig att använda det. Jag kan inte förstå hur du kan vara så himla negativ till något du inte har provat. Det är inte första gången du skriker till för att min favoritassembler har massa extrafunktioner som du själv inte skulle använda. Sluta med det.

masm är en komplett assembler för x86 assembly, den rekomenderar jag starkt, och MagnusL måste ha några taskiga barndomsminnen förknippade med masm, för jag kan verkligen inte förstå hans renonemang

så om jag lär mig masm, så kan lätt gå över till någon annan assembler för t.ex linux eller nasm?

Permalänk
Medlem

Ja, definitivt. Egentligen kan du välja vilken assembler som helst så länge syntaxen är den samma, vilken den oftast är. Eftersom "språket" inte har med assemblern att göra, utan processorn, så spelar det ingen större roll. Det är ofta små skillnader olika assemblers emellan, vissa kräver dock lite mer extra arbete än andra. Att länka till windows api:t kan kräva lite kod ibland, men med masm's makron kan man länka in allt sånt med bara en rad. Observera att du KAN göra allt manuellt oxå om du vill Om du har planer på att börja pilla med linux-assembler senare tycker jag du ska sätta igång med fasm istället. fasm har naturligt stöd för dos, windows och linux. Du kan dock fortfarande använda RadASM som jag tycker är det i särklass bästa IDEt för assemblerprogrammering.

http://flatassembler.net/

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Medlem

Är på slutet av en assemblerkurs där vi programmer MIPS.

Hur pass mycket jobb är det att vänja in sig vid att koda emot x86 i windows istället egentligen?
Känns som att det skulle kunna vara lite småskoj

Permalänk
Medlem

Jag har bara sysslat med x86 assembly och tog mig en titt på MIPS precis. Tyckte det såg överkomligt ut, möjligtvis lite krångligare än x86 med alla dessa register Du kommer nog tycka att en övergång till x86 asm är relativt smärtfri.

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Delight
Ja, definitivt. Egentligen kan du välja vilken assembler som helst så länge syntaxen är den samma, vilken den oftast är. Eftersom "språket" inte har med assemblern att göra, utan processorn, så spelar det ingen större roll. Det är ofta små skillnader olika assemblers emellan, vissa kräver dock lite mer extra arbete än andra. Att länka till windows api:t kan kräva lite kod ibland, men med masm's makron kan man länka in allt sånt med bara en rad. Observera att du KAN göra allt manuellt oxå om du vill Om du har planer på att börja pilla med linux-assembler senare tycker jag du ska sätta igång med fasm istället. fasm har naturligt stöd för dos, windows och linux. Du kan dock fortfarande använda RadASM som jag tycker är det i särklass bästa IDEt för assemblerprogrammering.

http://flatassembler.net/

NASM har också stöd för DOS, Windows och Linux, bara en side-note.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Jo, men jag har följt utvecklingen av fasm under flera år och dessutom gjort några av verktygen som ingår (ingick?) i ett fasmpaket som fanns för några år sedan när jag var aktiv på den biten, det gör fasm mycket roligare

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Medlem

tackar så mycket för alla svar. men hur stor skillnad är det om jag väljer fasm eller nasm?

Permalänk
Medlem

Inte jättstora skillnader. En sak jag gillar med fasm är att alla assembler-inställningar bakas in i själva asmfilen vilket förenklar det hela så man slipper dona med parametrar och sånt. Bara o köra en c:\FASM\fasm.exe minfil.asm så är det klart

Sen är fasm på lägre nivå än tex masm eftersom man får skapa delar i PE-formatet (windows exe) själv genom att ange sektioner. Detta är trevligt om man vill ha anledning att gräva djupare i det.

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."