...the best way? I'm learning assembler and I seem to understand the basics, but most assemblers are for the windows environment, and I'd like to have an assembler and editor that does not orient around an OS, and I'll use the BIOS text printing routines when I need to see the results of what I'm doing...My final goal is making my own OS. Then there are those who say one should learn machine organization rather than assembler, and there is also HLA, so i'm kinda confused. But if assembler is still a good idea, and yes I am willing to put in a lot of work, which kind should I use? I don't want to get used to Windows-dependent stuff that does not fit my goal...[/i]
re Don't feel bad, I found this site by looking up information on the language, as well (or was it that Neptune?). I still can't program for shit, either :smt067 .
knowing people who work at microsoft, I just want to tell you flat out that ASM is in no way their base . They primaily work in a C/C++ base this coming from someone who coded part of windows XP : ). However depending on the processor ASM you want to learn, like 6502 or whatnot, have a look at zophar.net. Learn somethign like 6502 only to grasp the concept of ASM and then if you want to continue, x86 will be much easier to pick up as you will have more freedom and some more opcodes to learn, but youll have basic syntax and logic down. Its much easier to start with the basics like that and work your way up. Good luck and have fun making your OS. BTW, assemblers are primairly coded for a specific OS. If your code is versatile enough, it should be able to run on multiple compilers with little to no modification, so don't worry about that so much : )
>>knowing people who work at microsoft, I just want to tell you flat out that >>ASM is in no way their base . They primaily work in a C/C++ base I was told over 1.5 years ago that 80% of M$'s internal 3GL coding was done in C#. Came from a team lead in Seattle working in projects (non-products). I would have thought some comp. sci. bods would have invented a generic assembler language for teaching generic concepts in assembler...sure I've heard of this... 6502/Z80 based machines are real cheap and as suggested would give you a good grounding. It's an easy start too... You could pick up a cheap Amiga, which would give you a 68000 machine - rich instruction set and not a million miles away from commercial hardware (non-risc). Good thing about the 6502/Z80/68000 machines is that you can bin the existing OS and take over the graphics, memory etc without much effort. Might want to consider embedded assembler in Visual C++ and limit yourself to playing with the scratch registers (you can write assembler in the middle of C++ safely and keep the OS intact - you're given a couple of registers to play with). Also you could buy a cheap Sun Sparc/Digital VAX and program workstations/mini's in assembler. It's perhaps a decade old platform, but its real commercial hardware and commercial dev tools (albeit old). It also provides more commercial orientated stuff. If you're looking to make a good living out of s/w dev then forget all the assembler shazz. Learn Java/C++/C#/VB.NET get into databases and web services, J2EE, .NET, middleware etc - that's where the lolly is.... Lastly forget about HLA unless you plan on developing your own assembly language and plan to write micro-code. You don't even need to know HLA exists.....unless you want to be an Intel/AMD/chipset bod...
Yay another geek ^_^ Im not alone *giggle*. Anyway, yeah, my guys name is peter, he did more work on coding luna than the actual OS but he assured me that they used quite a bit of c and c++, didnt mention c# though. He used to frequent DALNET using a variants of spunky as his screen name.
Well, I think you already got the point about this board not being about assembly language, but I don't mind helping the weary travellers stumbling in If you're not very experienced with X86 asm and the inner workings of the PC hardware (from a software point of view), I suggest you start doing some DOS coding first. I started coding little graphics things and game engines and stuff in assembly and it is a better way to get acquainted with the machine than starting on an OS kernel (since you got NO debugging facilities except for a hardware ICE). Anyhow, get down with the low level, and then try to write a small real mode "OS" (can hardly be called that, more like DOS). "Real" operating systems run the CPU in "protected mode", which is a huge pile of semi-obvious hacks and takes a while to get into. May I recommend this site: http://www.nondot.org/sabre/os/articles And don't get the high-level evangelists get you down, assembly language is fun :smt023 Send me a PM if you get stuck with your programming problems.
RE: Thanks a lot. What I've picked up of assembler (X86) does seem kinda fun in an odd sort of way. As long as I can debug *somehow* and there are the BIOS routines, I'd like to stick to that. An old book I'm reading used Debug for the first examples and then a very early MASM -The problem is you cant get such an old MASM and later ones have changed syntax and/or orient around windows, don't they? Anyhow, I'll check out the link provided and I'll go on looking some better place. Feel free not to reply me and discontinue this off-topic thread (btw as always I just wrote threat, but I remember to change to "thread" not to scare people