Assembler leren.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Graag had ik wat leren programmeren in assembler daarom dat ik me een daarover een boek heb aangeschaft.
Echter men behandelt al de voorbeelden uit een compiler die volledig werkt in dos. Voor de eenvoud. Lijkt me ook logisch maar ik heb enkel MASM32 kunnen downloaden en die werkt volledig in Windows.
Daarom mijn vraag waar vindt ik nog een ouder dos omgeving om in te leren programmeren? In het boek gaat men uit van een MASM omgeving dus het zou handig zijn als ik daarvan een oudere versie kon vinden dan kan ik al de voorbeelden uit het boek gebruiken.

Of heeft er iemand een totaal ander idee? De bedoeling is om te leren werken met assembler en dan bootloaders te gaan bestuderen om de werking van computers hoe zij opstarten ed te bestuderen niet zo zeer om toe te passen in een zekere hogere programeer taal als optimalisatie.
Is het een optie om de code te schrijven in één of andere compiler nadien op de eerste sector van een diskette te schrijven en daar dan een andere computer mee op te starten om zo doende je code te testen?

Groeten.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

Les 1: het is assembly. De assembler is het programmaatje wat je code omzet naar opcodes ("machinetaal") :).

Verder lijkt me DOSBox uitermate geschikt, heb je meteen een sandbox waarin je niets per ongeluk kunt slopen :). Als je met bootloaders aan de gang wilt kan ik je Bochs wel aanraden, die heb ik destijds gebruikt om mijn OSje te testen. Is net als DOSbox ook een emulator, maar dan eentje die daadwerkelijk een machine boot ipv direct in een DOS omgeving start.

[ Voor 68% gewijzigd door .oisyn op 06-02-2008 17:53 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Je zou een dos bootflop kunnen maken, maar misschien is het een beter idee iets als VMWare te gebruiken zodat je een DOS omgeving maakt zonder iedere keer een flop te moeten booten.

Maarem, waarom wil je perse assembly bestuderen om bootloaders te maken? Dat maken kan prima in iets als C bijvoorbeeld. Je hebt stukken meer aan een boek over hoe bootloaders werken dan aan een 'generiek' assembly boek.

Edit: Oh ja, DosBox is ook een optie.

[ Voor 4% gewijzigd door Hydra op 06-02-2008 17:52 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op woensdag 06 februari 2008 @ 17:52:
Je zou een dos bootflop kunnen maken, maar misschien is het een beter idee iets als VMWare te gebruiken zodat je een DOS omgeving maakt zonder iedere keer een flop te moeten booten.
Is VMWare daar ook voor geschikt? Ik kan er falikant naast zitten hoor, maar ik meen ooit eens gelezen te hebben dat VMWare het OS dat je wilt draaien wel moet supporten. Het is ook meer virtualisatiesoftware dan een volle emulator. Aan de andere kant kan ik me nauwelijks voorstellen dat hij geen custom x86 code kan virtualiseren en derhalve geen eigen OS kan draaien.

@ Bert F: Een GoTer (er zat een J in z'n naam, da's het enige dat ik nog weet :P) heeft trouwens ooit eens een schrijf-je-eigen-OS tutorial gepost, die is waarschijnlijk ook wel het lezen waard.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
.oisyn schreef op woensdag 06 februari 2008 @ 17:59:
Is VMWare daar ook voor geschikt?
Ik heb geen flauw idee, maar in princiepe maak je door je eigen bootstrapper te schrijven je eigen OS. Ik neem aan dat VMWare daar ook mee om zou moeten kunnen gaan. VMWare kan vrij veel in ieder geval, het is een virtuele 'PC' waar een OS en de processen daarbinnen in princiepe alles mee zouden moeten kunnen doen.

DosBOX gaat wel werken om assembly in te programmeren, maar ik vrees dat je daarbinnen absoluut geen bootloader kan uitvoeren. Dat uitvoeren is iets wat toch echt door de BIOS gedaan wordt, die laadt botweg de eerste 512 bytes van de eerste sector op je schijf.

@Bert, misschien dat je hier wat aan hebt:
http://www.vnutz.com/content/program_a_bootstrap_loader

https://niels.nu


Acties:
  • 0 Henk 'm!

  • _the_crow_
  • Registratie: September 2000
  • Laatst online: 30-03 14:35

_the_crow_

Rare vogel

De code uit de (bijvoorbeeld) .com-file schrijf je weg naar de bootsector van een diskimage en dan via Bochs daar vanaf 'booten'. Oisyn noemde het al hierboven. Ik mag wel zeggen dat ik daar zeer goede ervaring mee heb. :)

Voor algemene compatibiliteit meen ik dat je de bootsector moet afsluiten met 0xAA55.
.oisyn schreef op woensdag 06 februari 2008 @ 17:59:
@ Bert F: Een GoTer (er zat een J in z'n naam, da's het enige dat ik nog weet :P) heeft trouwens ooit eens een schrijf-je-eigen-OS tutorial gepost, die is waarschijnlijk ook wel het lezen waard.
Dat was JayTaph. Ik heb het topic toen ook gevolgd en heb ooit een poging gewaagd een eigen OS te schrijven. Door tijdgebrek niet doorgezet. :)

[ Voor 45% gewijzigd door _the_crow_ op 06-02-2008 18:11 ]

Schrödingers cat: In this case there are three determinate states the cat could be in: these being Alive, Dead, and Bloody Furious.


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

.oisyn schreef op woensdag 06 februari 2008 @ 17:59:
@ Bert F: Een GoTer (er zat een J in z'n naam, da's het enige dat ik nog weet :P) heeft trouwens ooit eens een schrijf-je-eigen-OS tutorial gepost, die is waarschijnlijk ook wel het lezen waard.
[tutorial] how to write your own OS :)

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op woensdag 06 februari 2008 @ 18:03:
[...]


Ik heb geen flauw idee, maar in princiepe maak je door je eigen bootstrapper te schrijven je eigen OS. Ik neem aan dat VMWare daar ook mee om zou moeten kunnen gaan. VMWare kan vrij veel in ieder geval, het is een virtuele 'PC' waar een OS en de processen daarbinnen in princiepe alles mee zouden moeten kunnen doen.
Mijn idee. Maar er staat me iets van bij dat ik daar iets over gelezen heb, en dat ik dat 'raar' vond.

Any way, bij Bochs zit ook een debugger en bij VMWare geloof niet, wat toch wel een noodzaak is op het moment dat het toch niet helemaal gaat zoals je verwacht (en dit zal gebeuren! ;))

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

.oisyn schreef op woensdag 06 februari 2008 @ 18:15:
[...]

Mijn idee. Maar er staat me iets van bij dat ik daar iets over gelezen heb, en dat ik dat 'raar' vond.

Any way, bij Bochs zit ook een debugger en bij VMWare geloof niet, wat toch wel een noodzaak is op het moment dat het toch niet helemaal gaat zoals je verwacht (en dit zal gebeuren! ;))
VMWare kan dit zeker. Toch zou ik, voornamelijk vanwege de debugger, net als .oisyn bochs aanraden. Tenminste, als je inderdaad een bootloader wil schrijven. Als je programma's voor dos/windows wil maken in assembly, dan is dosbox misschien een betere optie.

Oh, en Ralf Brown's Interrupt List is wel heel erg handig :P

[ Voor 7% gewijzigd door Verwijderd op 06-02-2008 18:36 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor de reacties.

Is dosbox gewoon de dos emulator of zit daar in ook een assembly compiler. Probleem is voor een stuk dat ik geen assembly compiler voor dos kan vinden.

Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Assembly == Assembly, of je het nu in DOS, Windows, Linux of weet ik veel compiled. :) Assembly is namelijk voor een groot gedeelte processor specifiek. Kijk trouwens eens naar NASM als je nog niet over een compiler beschikt.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

Verwijderd

http://osdever.net
http://osdev.org

Hier staat heel veel informatie die je denk ik wel kan gebruiken.

Voor mensen die een kernel willen maken:

http://osdever.net/bkerndev/index.php

Acties:
  • 0 Henk 'm!

Verwijderd

Neem eens een kijkje op de volgende url: http://drpaulcarter.com/pcasm/pcasm-book.pdf.gz

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Assembly == Assembly, of je het nu in DOS, Windows, Linux of weet ik veel compiled. Assembly is namelijk voor een groot gedeelte processor specifiek. Kijk trouwens eens naar NASM als je nog niet over een compiler beschikt.
Dat weet ik wel maar het is gewoon gemakkelijker om die dos output te gebruiken dan een windows venstertje te moeten opzetten.
En in dos zijn ook al die handleidingen geschreven.

Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

In Windows XP heb je nog steeds een command prompt die tot op zekere hoogte hetzelfde is als de oude DOS prompt. Daarin kan je gewoon veel 16bits DOS programma's starten.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
Als je op zoek bent naar een vriendelijke omgeving, kan je het ook icm Visual C++ 2008 Express doen mbv inline assembly... ok, je kan een aantal registers niet aanspreken vanwege de beveiliging in windows, maar je hebt voldoende toegang tot het systeem om het te leren...

Om in een cpp bestand een stukje asm te gebruiken moet je het volgende invoeren in je functie:

code:
1
2
3
4
5
__asm 
{
     mov eax, .... 
     ....nog meer code...
}

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In Windows XP heb je nog steeds een command prompt die tot op zekere hoogte hetzelfde is als de oude DOS prompt. Daarin kan je gewoon veel 16bits DOS programma's starten.
Maar dan moet je wel zo'n dos compiler hebben en dat is nu net mijn probleem. Waar vindt ik dat?

Acties:
  • 0 Henk 'm!

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
AtleX schreef op woensdag 06 februari 2008 @ 20:14:
In Windows XP heb je nog steeds een command prompt die tot op zekere hoogte hetzelfde is als de oude DOS prompt. Daarin kan je gewoon veel 16bits DOS programma's starten.
Behalve op 64 bit versies van windows... daar zijn 16 bit apps (dos en windows) uit ten boze!.... naja ze werken gewoon niet...

[ Voor 4% gewijzigd door Laurens-R op 06-02-2008 21:00 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Geeft Bochs ook een compile omgeving? Als ik dit dan gebruik als virtuele pc waarop ik mijn programma's test kan ik ze met één of andere programma wat daarin zit eerst ook compileren?

Groeten.

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Je kunt van www.masm32.com masm downloaden. Het enige wat je nodig hebt om dos programma te maken ipv een windows programma is een 16 bit linker voor dos. Die kun je hier vinden.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op woensdag 06 februari 2008 @ 22:52:
Geeft Bochs ook een compile omgeving? Als ik dit dan gebruik als virtuele pc waarop ik mijn programma's test kan ik ze met één of andere programma wat daarin zit eerst ook compileren?

Groeten.
Bochs emuleert een volledige computer voor je, je zult dus eerst nog dos/windows/linux/ander os moeten installeren binnen je virtuele computer voor je uberhaubt iets kunt. Daarna heb je natuurlijk alsnog een assembler (="compiler" voor assembly) nodig. Zoals hierboven als is aangehaalt, kijk eens naar nasm. Die is ook prima instaat om 16 bits code te maken.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 11-09 12:01
EvilB2k schreef op woensdag 06 februari 2008 @ 20:21:
Als je op zoek bent naar een vriendelijke omgeving, kan je het ook icm Visual C++ 2008 Express doen mbv inline assembly...
Voor het maken/testen van een bootloader heb jer er niets aan.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 07-09 11:44

Bergen

Spellingscontroleur

Heb je al wat ervaring met andere programmeertalen? Mocht je bijvoorbeeld Delphi hebben, dan kun je daarin ook eerst wat rommelen met inline-assembly...
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TClass.Procedure(A, B, C: Integer); assembler;
asm
  push ebx
  mov ebx, ecx
  mov ecx, C
  sub ecx, 2
  add edx, 4
  @outerLoop:
    push ecx
    mov ecx, 3
  @innerLoop:
    xor eax, eax
    mov byte ptr al, [edx]
    add byte ptr al, [ebx]
    jnc @cont1
    inc ah
    clc
  @cont1:
    add byte ptr al, [ebx+4]
    jnc @cont2

    ...bla bla bla bla...
end;
Als je het zo doet, doet de compiler er verder niets mee, die kopieert het letterlijk in de executable. Het enige 'probleem' is zo dat je niet kan prutsen met interrupts enzo, maar op deze manier kun je in ieder geval de basis van assembly onder de knie krijgen, terwijl je gewoon 'lekker in Windows blijft'.

Meteen een bootloader schrijven terwijl je verder nog nooit met assembly hebt gewerkt, lijkt me nogal een grote stap. Je kunt het proberen natuurlijk, maar makkelijk lijkt het me niet.

[ Voor 9% gewijzigd door Bergen op 07-02-2008 01:46 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op woensdag 06 februari 2008 @ 22:52:
Geeft Bochs ook een compile omgeving? Als ik dit dan gebruik als virtuele pc waarop ik mijn programma's test kan ik ze met één of andere programma wat daarin zit eerst ook compileren?
Je kan idd zoals gezegd een OS installeren, maar handiger lijkt me als je gewoon een windows editor pakt. Als je DOS box gebruikt, wat ik kan aanraden als je gewoon DOS dingen wilt doen, dan kun je direct bij je data op je harde schijf. Als je een bootloader gaat maken moet je dat natuurlijk sowieso onder een ander OS doen, en dan produceer je een image van een disk die Bochs laadt.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Dit was ook een interessante: [Alg] Hoe werkt een OS en hoe schrijf ik er zelf een? ;)

Dat topic van jou werd interessant bij JayTaph in "[tutorial] how to write your own OS"

[ Voor 16% gewijzigd door curry684 op 07-02-2008 10:41 ]

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Verwijderd schreef op woensdag 06 februari 2008 @ 22:52:
Geeft Bochs ook een compile omgeving? Als ik dit dan gebruik als virtuele pc waarop ik mijn programma's test kan ik ze met één of andere programma wat daarin zit eerst ook compileren?
Heb je die link die ik je gaf uberhaupt bekeken? Daar staat een tutorial hoe je letterlijk een bootloader maakt in assembly. Verder kun je dit soort dingen ook gewoon bij mekaar googlen.

Alles wat je nodig hebt is in princiepe NASM (assembler) en RAWRITE (zet je je image mee op de juiste plek), dan kun je nog Bochs bijvoorbeeld gebruiken als 'sandbox' zodat je niet iedere keer je machine hoeft te booten.

[ Voor 4% gewijzigd door Hydra op 07-02-2008 11:13 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb je die link die ik je gaf uberhaupt bekeken? Daar staat een tutorial hoe je letterlijk een bootloader maakt in assembly. Verder kun je dit soort dingen ook gewoon bij mekaar googlen.
Bedankt daarvoor die heb ik gelezen.

Acties:
  • 0 Henk 'm!

Verwijderd

Hydra schreef op donderdag 07 februari 2008 @ 11:10:
Alles wat je nodig hebt is in princiepe NASM (assembler) en RAWRITE (zet je je image mee op de juiste plek), dan kun je nog Bochs bijvoorbeeld gebruiken als 'sandbox' zodat je niet iedere keer je machine hoeft te booten.
Waarom rawrite? Het is totaal overbodig om je bootloader naar een diskette te schrijven als je toch in bochs gaat testen. Bochs kan namelijk net zo goed een image laden. Tenzij je natuurlijk je code wilt gaan testen op een echte computer, maar dan zou ik dd aanraden.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Verwijderd schreef op donderdag 07 februari 2008 @ 13:49:
Waarom rawrite? Het is totaal overbodig om je bootloader naar een diskette te schrijven als je toch in bochs gaat testen. Bochs kan namelijk net zo goed een image laden. Tenzij je natuurlijk je code wilt gaan testen op een echte computer, maar dan zou ik dd aanraden.
Misschien niet helder geformuleerd, maar je hebt inderdaad natuurlijk geen rawrite (of welke tool dan ook) als je Bochs gebruikt, maar dat leek me ook wel duidelijk.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
farlane schreef op donderdag 07 februari 2008 @ 00:33:
[...]


Voor het maken/testen van een bootloader heb jer er niets aan.
Als je gelezen had wat ik erna had geschreven was duidelijk geworden dat ik dat voornamelijk suggereerde dat VC2008 Express een mooie leeromgeving was voor assembly...wat tenslotte ook het doel van de topic was (als ik de topictitel mag geloven). Een bootloader is al zo'n stap verder... dat moet je ook weten hoe bepaalde zaken in de PC architectuur in z'n werk gaan etc.

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Bergen schreef op donderdag 07 februari 2008 @ 01:45:
Als je het zo doet, doet de compiler er verder niets mee, die kopieert het letterlijk in de executable. Het enige 'probleem' is zo dat je niet kan prutsen met interrupts enzo, maar op deze manier kun je in ieder geval de basis van assembly onder de knie krijgen, terwijl je gewoon 'lekker in Windows blijft'.
Assembly zonder interrupts... geen goed idee :) Maar dat is niet het enige, je geheugen layout is ook anders. Zeker als je een boek leest dat voor "DOS"/realmode is geschreven, dan zullen je segmenten op paragraaf boundaries overlappen etc. Verder kan je naar geen een leuke processor data structuur schrijven. (plus dat je in een dos boek waarschijnlijk het meeste doet via 'int 21h', de system call interrupt van MS_DOS; die kan je helemaal niet callen dan omdat je interrupt tabel anders is opgesteld)

Ik heb het vroeger ook nog wel gedaan; de switch van real- naar protected-mode zelf maken in assembly, page tables op zetten, task switching... erg leuk en leerzaam om te doen. Het is aan te raden er dan de Intel 386 Programmers Reference Manual bij te pakken. Als je dat allemaal een keer zelf hebt gedaan zijn OS'en opeens helemaal niet zo'n mysterie meer.

[ Voor 8% gewijzigd door Zoijar op 07-02-2008 14:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb ondertussen MASM32 gedownload en ben er achter gekomen dat je hier ook dos programma's kan compileren.
Door Project en dan Console build al te doen.
Echter hij geeft me telkens opnieuw volgende fout mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.MODEL SMALL
.CODE 

START:

 MOV AH,08H
 INT 21H
 MOV DL,AL
 MOV AH,02H
 INT 21H
 MOV AH,4CH
 INT 21H

 END


en de fout:
Afbeeldingslocatie: http://img167.imageshack.us/img167/3117/fouten9.jpg
Wat doe ik mis? Groeten.

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 00:41

TeeDee

CQB 241

Heb je je foutmeldingen al eens door Google gehaald?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 07-09 11:44

Bergen

Spellingscontroleur

Zoijar schreef op donderdag 07 februari 2008 @ 14:18:
[...]

Assembly zonder interrupts... geen goed idee :)
Dan houdt de functionaliteit bij console apps gauw op ja. :D
Maar dat is niet het enige, je geheugen layout is ook anders. Zeker als je een boek leest dat voor "DOS"/realmode is geschreven, dan zullen je segmenten op paragraaf boundaries overlappen etc. Verder kan je naar geen een leuke processor data structuur schrijven.
Inderdaad, het heeft wel veel beperkingen, maar je kunt er ontzettend snelle dingen mee schrijven. Ik gebruik het veel bij grafische routines en dan kun je de processor heel erg ontlasten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb je je foutmeldingen al eens door Google gehaald?
Ja maar dat levert niets op.

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 00:41

TeeDee

CQB 241

Want?

Je eerste melding: LNK4078 wordt op MSDN een mogelijke oplossing gegeven: Recreate / Relink file. Zo worden er nog veel meer mogelijke oplossingen aangedragen in de diverse resultaten. Heb je snel uitgevogeld dan dat ze geen van allen werkten.

Misschien 16bit vs 32bit. Compiler options etc. etc. Er kan van alles mis zijn. (of _START: ipv START:)
.oisyn schreef op donderdag 07 februari 2008 @ 16:18:
Met MASM32 kun je volgens mij geen DOS apps maken...
Zoiets kwam ik ook tegen in de google results.

[ Voor 50% gewijzigd door TeeDee op 07-02-2008 16:37 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

Met MASM32 kun je volgens mij geen DOS apps maken, alleen Windows console apps. Je int 21 zal bijvoorbeeld dus al niet gaan werken. Download NASM en ga .COM programmaatjes maken, dan kun je precies doen wat je wilt.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

CRT staat voor C-RunTime, je compiled een C applicatie.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Moet ik om nasm te downloaden iets uit die lijst kiezen? http://sourceforge.net/project/showfiles.php?group_id=6208 ik heb al wat geprobeerd maar niets schijnt te werken.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Verwijderd schreef op donderdag 07 februari 2008 @ 17:32:
Moet ik om nasm te downloaden iets uit die lijst kiezen? http://sourceforge.net/project/showfiles.php?group_id=6208 ik heb al wat geprobeerd maar niets schijnt te werken.
Huh?

Je kunt niet klikken op een "download" link? Bij mij startte in 2 clicks een download.

Als ik jou was zou ik dat hele assembly leren maar uit je hoofd laten. Je hebt duidelijk de instelling er niet voor.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

De DOS32 of Win32 binaries moet je hebben (als je in een console onder windows runt kun je het beste de win32 gebruiken, als je in dosbox iets wilt compilen (wat je ook net zo goed in windows kunt doen, maar dat terzijde) heb je de dos32 nodig.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat gewoon downloaden lukt wel.
Maar nadien als ik op zo'n exe klik dan krijg ik even een venstertje en dan gaat die weer weg.

Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Start 'm eens vanuit de command prompt in plaats van er gewoon op te klikken. :)

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt dat werkt beter.

Acties:
  • 0 Henk 'm!

  • oeLangOetan
  • Registratie: Maart 2002
  • Laatst online: 06-08 17:19
gebruik http://emu8086.com/, ik heb het althans met dit programma geleerd, er zit een zeer goede debugger in, je kan het 30 dagen proberen
Er worden ook een hoop voorbeelden meegeleverd, het enige nadeel is dat er geen 32bit support in deze emulator zit

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor de link.

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Wat ook best een goeie tutorial is (maar dan meer gericht op winforms) is http://win32assembly.online.fr/tutorials.html

Izcellion's tutorials zijn erg fijn. Een paar echte basis dingetjes ontbreken daar wel, dus voor je begint, of na tutorial 4, moet je even googlen hoe de registers werken (EAX, AX, AH,AL zijn bevoorbeeld allemaal het zelfde, EAX = 32 bits, AX = lower 16 van eax, AH = higher 8 van AX, AL is lower 8 van AX), dat soort dingen worden daar niet uitgelegd. Ook dingen als shr/shl (bit shift right/left) komen niet aan bod en zal je dus ff ergens anders vandaan moeten halen.

Hope it helps,

Nick.

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • biTix
  • Registratie: Augustus 2011
  • Laatst online: 01-09-2011
hi everybody

ik zou er ook iets toevoegen, wil je starten assembler te leren? Begin eerst met emu8086, als je geen DOS hebt in jouw PC natuurlijk. Wat ik weet is dat elke echte programmeur moet weten alles over assembler.

Ik heb een ernstige vraag over assemblertaal: waar kan ik deze programmeertaal leren, op welke school, MBO of HBO? Ik ben onder een vraagtekening, want ik kon hem helemaal niet vinden op het internet(nergens bestaat) of zelfs via MBO'ers :-( SOS! :-(

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

*kuch*
.oisyn schreef op woensdag 06 februari 2008 @ 17:50:
Les 1: het is assembly. De assembler is het programmaatje wat je code omzet naar opcodes ("machinetaal") :).
Ja, dat gaat 3 jaar na die post nog steeds op ;)

Er is niet 1 assembly taal. Het is compleet afhankelijk van de instructieset van de CPU waarvoor je programmeert. En het is typisch niet iets dat je op school leert.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • kokx
  • Registratie: Augustus 2006
  • Laatst online: 10-09 16:00

kokx

WIN

Naja, typisch niet iets wat dat je op school leert is niet waar. Het is niet iets wat reguliere programmeurs leren, aangezien die vaak met C al voldoende hebben.

Ik zit echter op de TU/e, en daar hebben we wel degelijk een tijdje met assembly zitten prutsen met een erg simpele processor. Gewoon om een goed idee te krijgen van hoe een computer van binnen werkt. We hebben niks uitgebreids gedaan, maar wel voldoende om een goede basiskennis ervan op te doen.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19:58

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat noem ik geen assembly leren, maar meer een introductie. Ik heb op de bijvoorbeeld HBO ook een semester C++ gehad, maar ik vind niet bepaald dat je dat kunt afdoen als het leren van C++ oid. Zeker voor assembly is het veel te specialistisch om er echt diep op in te gaan. En het is ook echt niet iets waar je een opleiding voor nodig hebt, er zijn zat tutorials.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Op school leer je geen programmeertaal. Je leert de basis van programmeren aan de hand van een aantal talen. Als je vervolgens zelf geen extra moeite steeks in het verder uitbreiden van je kennis, dan ben je nog nergens, zeker niet wat betreft assembly.

biTix: kun je iets aan je poststijl doen? Je berichten hier en in het andere topic waarin je gereageerd hebt zien eruit alsof ze rechtstreeks uit Google Translate komen en zijn erg lastig te lezen. Ik weet niet of dat komt omdat je zelf geen Nederlands spreekt, maar laten we even vooropstellen dat jezelf verstaanbaar maken het belangrijkste onderdeel van een discussie is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • topaj
  • Registratie: April 2008
  • Laatst online: 15:56
Ik heb het mezelf geleerd op WinASM.
Dat is een grafische interface die gebruikt maakt van MASM32, je moet die in de preferences linken aan masm32 evenals win32.hlp. Dan heb je mooie kleur codering, en kun je zelfs prediction gebruiken.
Om Assembler te leren is WinASM zeker een aanrader.

Zie o.a. youtube voor tutorials:
YouTube: [Tutorial HD] Custom image button with PNGLIB (Assembler) - YouTube
YouTube: [Tutorial HD] FadeIn/FadeOut and Transparency (Assembler) - YouTube

Groeten


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Met alle respect, maar hoe leer je daar iets van :? Je ziet alleen iemand iets typen; als je geen benul hebt wat alle instructies doen, wat registers zijn, wat de (vele) macro's en calls naar externe code doen etc. heb je hier geen zak aan, IMHO. Er is totaal geen uitleg whatsoever op een zinnetje dat even "ingefade" komt om de paar minuten met een héél globale omschrijving wat er gaat gebeuren / gebeurt.

Daarbij zijn (o.a.) de How to make a keygen :X omschrijvingen van de video's nou niet bepaald accuraat. Het is niets anders dan een 'random string' generator; er is niets "keygen" aan... En als je ziet hoe de maker de code klopt zie je gewoon ervan af druipen dat 'ie het overtypt (lekker "1337" :') ) want zo schrijft geen hond code en al helemaal geen assembly; dat gaat veel "organischer". Dat je het meteen "foutloos" doet voor een videotutorial is leuk, maar zet dan gewoon de code online; die kun je dan zelf op je gemakkie bestuderen. Als je een videotutorial kijkt verwacht je tekst en uitleg over waarom iets zus-en-zo gedaan wordt en zul je de "oorzaak en gevolg" in code ook terug zien in de manier van programmeren; je maakt een subroutine, die roep je aan, vervolgens maak je een nieuwe subroutine die je weer aanroept etc (ik roep maar wat, ik doe geen videotutorials :P ) vervolgens start je de applicatie een keer om te kijken of 't zover werkt en dan ga je weer verder etc. maar je schrijft niet "van boven naar onderen" een applicatie in 1 keer mept op "run" en 't werkt (en zonder bijv. functienamen uit externe libs even op te moeten zoeken wegens een spelfout oid).

edit:

Deze "rant" is, door een aantal aanvullende edits, wat langer dan bedoeld maar helemaal niet richting jou bedoeld verder ofzo hoor ;) Ik vind 't gewoon niet kwalificeren voor "tutorial". Mocht ik je op de tenen getrapt hebben dan was dat zeer zeker niet mijn bedoeling.

[ Voor 58% gewijzigd door RobIII op 30-08-2011 18:38 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Exactly... Ik heb zelf ook assembley geleerd een paar jaar terug, en ik kan maar een ding zeggen: als je het echt wil leren, kopier een hello world programma naar notepad en ga klooien. Daar leer je als beginner meer van dan van een of andere tutorial.

Het belangrijkste vind ik ook niet zozeer dat ik het kan, maar dat je het begrijpt. Als de leraar uitlegt wat een pointer is begint de helft van de klas voor zich uit te staren, maar ik weet meteen wat er achter de schermen gebeurt. Dat is belangrijker dan dat setje instructies wat je kent, maar voor elke processor anders is.

Ik was een jaar terug ook nog van plan om x86 assembly te leren, maar eigenlijk valt er niet veel meer te leren. Het verschil tussen een 8-bit chipje en de monsters die nu worden verkocht is kleiner dan je denkt.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 05 september 2011 @ 00:13:
Het verschil tussen een 8-bit chipje en de monsters die nu worden verkocht is kleiner dan je denkt.
Ja...en nee. Trust me, die monsters van tegenwoordig zijn dusdanig complex dat 't de meesten de pet te boven gaat. Ze lijken nog simpel aan de oppervlakte ;) Als je 't ding ten volle wil benutten dan kun je niet meer zonder tools die je code 'tweaken' voordat ze binaries uitpoepen op manieren waar je nederig van wordt :P Het algemene principe van veel van die zaken is nog wel te bevatten, de implementatie ervan vereist behoorlijke kennis.

[ Voor 28% gewijzigd door RobIII op 05-09-2011 00:57 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1