On Sep 7, 2008, at 12:58 AM, Richard Erlacher wrote: >>> Most of the assemblers I've used over the years do exactly that, as >>> they're >>> processor-specific and not intended for use together with other >>> tools. >> >> This is actually rather rare. Yes, it does happen (CP/M's >> assembler comes to mind) but it's not the norm. > > There were several assemblers associated with CP/M, namely ASM, > MASM, M80, > MAC, and RMAC. IIRC, RMAC produced rel files that fed L80, the > linker.
Yes, and while I'm a CP/M fan and probably always will be, that's thirty-year-old technology. Things have evolved considerably since then. > Wasn't it kind-of similar in the PC-DOS environment? I didn't use > TASM > (BORLAND) more than once or twice. What did it do? I was never much of a PC programmer, but TASM definitely produced relocatable object modules, but you could hard-code the addresses with an origin statement if you wanted to. Pretty much the same as asx8051. TASM didn't produce executables directly; it was shipped with TLINK that produced .COM and .EXE files from .OBJ files. As it turns out, TLINK was useful for lots of different types of development (I used it with Clipper, a dBase compiler) in which the compiler (or assembler) produced relocatable object modules. > I think all its outputs > were page-relocatable based on segment boundaries. All that stuff > was so > automated that one didn't have to "know" anything. Its output files were fully relocatable, not restricted to segment boundaries. However, you could fake it if you wanted to, even if your .OBJ files were assembled from source files which contained explicit origin statements, by changing the segment registers outside of the module. >>> So >>> you're saying this one isn't able to generate .hex and .omf files >>> directly, is that right? >> >> The assembler? No, it's not. That's the linker's job. >> > That surprises me only because the ASEM-51 that I've been using > generates > the hex and debug (OMF) files directly. It's newer than the SDCC > assembler. Yes, that part surprises me. How would one build a project with multiple source files, without needing to explicitly specify the code origin in each one, and without assembling all of the files in a single invocation of the assembler (if it can do that)? >>> Do you know of any assemblers, not associated with one >>> compiler or another, that behave in this way? I've not encounterd >>> them, >>> though I've used numerous compiler/assembler/linker/debugger >>> suites. I'm >>> sure I've got at least a half-dozen assemblers that simply take a >>> source >>> file and produce .hex or, in the case of MOT processors, .s19 >>> output. >> >> I've got a few myself. None that are at all recent, though. >> > I doubt any new instructions will be added, since there are only > one or two > empty spaces in the instruction map. It's been like that for > decades, so > there's been no need for "new" assemblers. Touche', and point well taken. But not many people develop production embedded software under CP/M these days...although we could if we wanted to. ;) > SDCC has been around since the > mid-'90's hasn't it? The assembler SDCC uses is older than SDCC, > isn't it? Yes, the assembler suite (if memory serves) originally came from a PDP-11 implementation running under RT-11. That gave me a big smile. :) -Dave > -- Dave McGuire Port Charlotte, FL ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user