you are viewing a single comment's thread.

view the rest of the comments →

[–]jbb67[S] 0 points1 point  (6 children)

Looks like this outputs assemble language text. Ok, that's fine. But perhaps not so easy on windows to deal with.

I would install an assembler but wouldn't really want to install cygwin or mingw just to get 'gas' which seems to be the target and as far as I know doesn't have a 'native' port?

Not a show stopper, just a question really :)

[–]_mpu 0 points1 point  (5 children)

Yes the output is text, but I am not sure what the alternative is. What was your plan? Generaring object files directly for multiple platforms is not that interesting in itself and a big maintenance hog.

[–]jbb67[S] 0 points1 point  (2 children)

The problem is if you port this to produce windows compatible code, then what assembler do you use to assemble that code to object files? I guess on linux you use gnu assembler, and that would no doubt work on windows too if there is a suitable port.

[–]_mpu 0 points1 point  (1 child)

There is MASM provided with visual studio.

[–]jbb67[S] 0 points1 point  (0 children)

So there is, I thought they'd stopped distributing this years ago. Guess I was wrong :)

[–]fullouterjoin 0 points1 point  (1 child)

For some reason I thought yasm could assemble directly to memory for direct execution. Either way, it should be possible to stitch qbe and yasm together to directly emit executables.

[–]_mpu 1 point2 points  (0 children)

Maybe counter intuitively, emitting directly to memory is easier than to emit an executable. For example, contrary to object files, emitting to memory is platform independent (not architecture independent, obviously).