flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
yumka 24 Feb 2007, 23:49
Pelles C
http://smorgasbordet.com/pellesc/ A nice FREE anternative. Many more options here: http://www.idiom.com/free-compilers/ and http://www.thefreecountry.com/compilers/index.shtml |
|||
![]() |
|
hckr83 25 Feb 2007, 01:23
pelles C can't do raw binary though can it? plus I read the liscense and it has some very nice, restrictive clauses..
guess you could do VC... why not a gcc port? |
|||
![]() |
|
9.9 25 Feb 2007, 14:26
hckr83 wrote: plus I read the liscense and it has some very nice, restrictive clauses.. +1 coz i know that gcc can do it ![]() ![]() |
|||
![]() |
|
rugxulo 26 Feb 2007, 00:35
MACC/ACC (David Ashley)? Run them under DOSBox 0.65. But, yes, there are probably better compilers for what you want. (Sorry, I have no idea, personally. OctaOS uses normal GCC but AS-ELF on the resulting .s for its assembler to read for its OS. )
|
|||
![]() |
|
f0dder 26 Feb 2007, 07:02
Instead of doing raw binary and having all the hassle of finding a compiler that supports this, do yourself a favour and have your kernel in either PE or ELF format and use standard tools. You don't need full PE support (the main kernel isn't likely to have things like imports anyway
![]() Code: mov edi, KERNEL_DEST ; kernel load address cmp word [edi], 0x5A4D ; Do we have a MZ header? jne crash_and_burn_1 add edi, [edi + 0x3C] ; e_lfanew pointer in MZ header cmp dword [edi], 0x4550 ; Do we have a PE header? jne crash_and_burn_2 mov edi, [edi + 0x28] ; OptionalHeader.AddressOfEntryPoint (RVA) add edi, KERNEL_DEST ; Add imagebase to go from RVA to VA jmp edi ; enter kernel! |
|||
![]() |
|
Japheth 26 Feb 2007, 08:43
f0dder wrote: Instead of doing raw binary and having all the hassle of finding a compiler that supports this, do yourself a favour and have your kernel in either PE or ELF format and use standard tools. I fully agree. Another option is: you can make the linker to merge all your COFF sections and then use a simple tool which extracts the section content to a file. An example of such a tool is attached. I did exactly this for a program of mine (a PE binary included as BLOB in a DOS MZ binary).
|
|||||||||||
![]() |
|
9.9 26 Feb 2007, 09:00
rugxulo, Japheth, f0dder
THANKS 4 ur ideas, i'll really better create my own PE loader :] |
|||
![]() |
|
rugxulo 26 Feb 2007, 18:51
BTW, is it just me or is everybody and their brother creating their own OS? That would make my head explode if I tried.
![]() Anyways, good luck! ![]() |
|||
![]() |
|
9.9 27 Feb 2007, 19:43
Quote:
U too ![]() |
|||
![]() |
|
Filter 27 Feb 2007, 20:22
rugxulo wrote: BTW, is it just me or is everybody and their brother creating their own OS? That would make my head explode if I tried. What would be cool is if they combined their efforts and created a single OS that was small, fast and could handle many of the things that larger operating systems like Windows and Linux can. |
|||
![]() |
|
f0dder 28 Feb 2007, 01:55
Filter wrote:
Will never happen, though. People have different (and conflicting) ideas, and even large efforts like linux and BSD (and heck, to some extent, big commercial things like OS X) have problems with drivers for hardware... _________________ ![]() |
|||
![]() |
|
rugxulo 01 Mar 2007, 01:35
No sense in combining anything when virtualization exists. (Heck, Parallels for Mac now claims to be able to seamlessly run Win XP or Vista, including transferring all your stuff b/w 'em.)
|
|||
![]() |
|
masonswanson 01 Nov 2010, 06:16
Yea what everybody should work on together is educating the masses about operating system development, that way everybody could just trade4 code instead of working 40 hours a week for months before they can afford commercial software
|
|||
![]() |
|
bitshifter 01 Nov 2010, 08:22
I have recently tried some OSDev with C myself.
What i found easiest is to make object files (coff in my case) then let the linker strip and merge them into a flat binary. Assembler: NASM C-Compiler: djgpp Linker: ld Builder: Make What i found is that writing an x86 kernel is easyest in ASM. Then to write the shell and other stuff in C language. If people are interested, i can provide a simple demo to show the basics of using these tools on Win32 to get the job done. |
|||
![]() |
|
guignol 01 Nov 2010, 11:00
bitshifter
I'm sure noone will mind. P.S. Are you, like, from MIT? |
|||
![]() |
|
bitshifter 01 Nov 2010, 17:24
guignol wrote: Are you, like, from MIT? Nope, never had been educated, only self taught... _________________ Coding a 3D game engine with fasm is like trying to eat an elephant, you just have to keep focused and take it one 'byte' at a time. |
|||
![]() |
|
DarkAlchemist 01 Nov 2010, 18:28
bitshifter wrote:
So, self taught can be a very good thing. |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.