• 1
  • 2
2021-12-28, 10:33
  #1
Medlem
DrDoaks avatar
Jag undrar om det är ett bra karriärsval att lära sig något assemblyspråk. Då menar jag inte "lära sig lite assembler för att bli bättre på C++", utan jag menar att faktiskt bli en renodlad assemblare.

Som jag har förstått det, så är assembler mycket svårare att lära sig, vilket också borde innebära att konkurrensen är mindre. Spelet Roller coaster tycoon ska tydligen varit byggt av en (!) man ensam i assambler, något som är ganska imponerande med tanke på spelets komplexitet. En annan fördel med assembler är att det är mer likt maskinkod, så att programvaran blir mer optimerad.

Nackdelen är förstås att det kan kräva kanske fyra gånger så mycket kodtext att köra assembler jämfört med C++... något som rimligen borde göra att de flesta företag undviker att utveckla saker i assembler av kostnadsskäl. Samtidigt tänker jag att många operationer är snarlika varandra, så man borde ju rimligen kunna bygga mallmoduler för dessa, och sen ändra lite i variablerna. Kan jag ha en poäng här, eller är jag ute och cyklar.

Min enda erfarenhet av programmering är inom basic, som är på en extremt mycket högre abstraktionsnivå än C++ och assembler. Jag misstänker att jag kan vara ute och cykla helt och hållet, men vill ändå höra era tankar.
Citera
2021-12-28, 10:36
  #2
Medlem
EXTREMFETMAs avatar
Du ÄR ute och cyklar. Det finns knappt några jobb för assemblerister. Dessutom är GCC bra mycket bättre på att optimera din C-kod än vad du är på att optimera din ASM-kod.
Citera
2021-12-28, 10:40
  #3
Moderator
Protons avatar
C, C++ och assembler --> Personlig utveckling, studier och arbetsliv
/Moderator
Citera
2021-12-28, 10:45
  #4
Moderator
Protons avatar
Citat:
Ursprungligen postat av DrDoak
Jag undrar om det är ett bra karriärsval att lära sig något assemblyspråk. Då menar jag inte "lära sig lite assembler för att bli bättre på C++", utan jag menar att faktiskt bli en renodlad assemblare.

Som jag har förstått det, så är assembler mycket svårare att lära sig, vilket också borde innebära att konkurrensen är mindre. Spelet Roller coaster tycoon ska tydligen varit byggt av en (!) man ensam i assambler, något som är ganska imponerande med tanke på spelets komplexitet. En annan fördel med assembler är att det är mer likt maskinkod, så att programvaran blir mer optimerad.

Nackdelen är förstås att det kan kräva kanske fyra gånger så mycket kodtext att köra assembler jämfört med C++... något som rimligen borde göra att de flesta företag undviker att utveckla saker i assembler av kostnadsskäl. Samtidigt tänker jag att många operationer är snarlika varandra, så man borde ju rimligen kunna bygga mallmoduler för dessa, och sen ändra lite i variablerna. Kan jag ha en poäng här, eller är jag ute och cyklar.

Min enda erfarenhet av programmering är inom basic, som är på en extremt mycket högre abstraktionsnivå än C++ och assembler. Jag misstänker att jag kan vara ute och cykla helt och hållet, men vill ändå höra era tankar.
Jag tror jag med att utbudet av renodalde assemblertjänster är ytterst begränsat.

De tjänster jag sett där man efterlyser embedded-programmerare har det ofta handlat om att koda i C.

Assembler låter väldigt specifikt i dagens läge, speciellt med tanke på att det för de flesta plattformar finns alldeles utmärkta c-kompilatorer.

Assembler är ju specifikt för den processor de ska köras på och jag tror det är lite för snävt, just av anledningen att kompilatorerna är bra nuförtiden och det är enklare att få tag på en generell C-kodare än en specifik asm-kodare.

Nä, ska du koda för embeddedsystem är mitt bet C snarare än assembler.
Citera
2021-12-28, 10:46
  #5
Medlem
trickydicks avatar
ASM är bara meningsfullt i Microcontrollers och knappt där idag. Och det finns många som kan koda assembler. Jag kan t ex koda Z80-assembler.
Citera
2021-12-28, 10:53
  #6
Medlem
flaskborstes avatar
Assembler är väl i första hand användbart till mikrokontrollers, chip tillverkning och liknande i dagsläget.
Dvs anpassade kodsnuttar för special chip som skall gå i produktion. Ganska tråkigt jobb enligt vad jag skulle tycka men det behövs folk som kan assembler och logik på en mer detaljerad nivå.

Dock så finns det en hel del programvara som gör om högnivåspråk till assembler men mycket kan behöva optimeras och handskrivas.
Citera
2021-12-28, 11:36
  #7
Medlem
mikaelss avatar
Citat:
Ursprungligen postat av Proton
Jag tror jag med att utbudet av renodalde assemblertjänster är ytterst begränsat.

De tjänster jag sett där man efterlyser embedded-programmerare har det ofta handlat om att koda i C.

Assembler låter väldigt specifikt i dagens läge, speciellt med tanke på att det för de flesta plattformar finns alldeles utmärkta c-kompilatorer.

Assembler är ju specifikt för den processor de ska köras på och jag tror det är lite för snävt, just av anledningen att kompilatorerna är bra nuförtiden och det är enklare att få tag på en generell C-kodare än en specifik asm-kodare.

Nä, ska du koda för embeddedsystem är mitt bet C snarare än assembler.
Banker och försäkringsbolag har en hel del legacy på stordator, där är det ont om utvecklare, både assembler och COBOL.
https://sebgroup.com/career/who-are-...embler-academy
Har även sett annonser från Skandia och Folksam.
Men då är det ju stordatorassembler, lite mer komplext är på en Intel-processor.
Citera
2021-12-28, 13:39
  #8
Medlem
Entjockbanans avatar
Varför vilja koda i ett lågnivåspråk där det krävs 100 rader av ettor och nollor för att skriva "hello world"? Måste ju vara jävulst tråkigt.

Kan någon skriva hur man skriver "hello world" i Assembler?
Citera
2021-12-28, 14:13
  #9
Medlem
Citat:
Ursprungligen postat av Entjockbanan
Varför vilja koda i ett lågnivåspråk där det krävs 100 rader av ettor och nollor för att skriva "hello world"? Måste ju vara jävulst tråkigt.

Kan någon skriva hur man skriver "hello world" i Assembler?

linux x86-64 asm

Citat:
global _start

section .text

_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, msglen
syscall

mov rax, 60
mov rdi, 0
syscall

section .rodata
msg: db "Hello, world!", 10
msglen: equ $ - msg
Citera
2021-12-28, 14:13
  #10
Medlem
Citat:
Ursprungligen postat av Entjockbanan
Varför vilja koda i ett lågnivåspråk där det krävs 100 rader av ettor och nollor för att skriva "hello world"? Måste ju vara jävulst tråkigt.

Kan någon skriva hur man skriver "hello world" i Assembler?
Assembler != maskinkod
Citera
2021-12-28, 14:22
  #11
Medlem
Har sett c-kod där man i själva c-koden plötsligt lägger in assemblerkod.

Man deklarerar väl där assemblyn börjar med _asm eller nåt ?
Vet inte varför det ska vara bra. Nåt med mem_alloc att göra?

Förrsesten om man måste koda custom (t ec linux) kernel module kanske det kan vara bra
att kunna assembler?
Citera
2021-12-28, 15:13
  #12
Medlem
Entjockbanans avatar
Citat:
Ursprungligen postat av erkki17
Assembler != maskinkod
ok, jag tänkte maskinkod, men det är väl språk man pratar med datorns minne hela tiden? Nära maskinkod?
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in