Looking for experienced C/C++ / ASM programmer

A

a.owens

For more information please contact a.owens {} novartisoft dt com,
minimum 5 years experience candidates only please, work at home
project based work, well paid
thank you
 
B

BGB

Which assembler?

and what sort of job?...


my case:
I know x86 and x86-64 ASM, and am sort-of familiar with ARM.
my personal preference is Intel-style syntax (such as NASM), but am not
so fond of GAS syntax.

(I have my own assembler as well, which uses an NASM-like syntax, and
supports x86 and x86-64, and partly supports ARM).

I have been writing code in C for about 15 years or so.
some experience with C++, but it isn't my main-use language.

major areas of familiarity:
compiler and VM technology (wrote a C compiler for a VM, created a
custom script language, experience with writing interpreters and JIT
compilers);
3D engines and tools (wrote 3D modeling and skeletal animation tools,
wrote an FPS / First-Person-Shooter style 3D engine, ...);
in the past (late 90s/early 2000s), I once wrote a basic OS (for x86,
mostly using the PE/COFF format for binaries, was on early stages of GUI
development when I dropped the project due to lack of foreseeable
relevance);
....

actually, said 3D engine and VM projects contain many of remnants of
code from the OS project (some parts, such as the VFS /
Virtual-File-System subsystem, retain the concept of FS drivers,
although some years back the VFS was partly rewritten/simplified, ...).

or such...
 
J

jgharston

BGB said:
and what sort of job?...

Too often HR droids think "assembler" means x86 without realising
there's dozens of specific assembler.

I've programmed in 6502, Z80, 6809, 32016, ARM, PDP-11 as well
as x86, but I doubt they'd realise they were also all "assembler"
even if you dropped it on them from as great height.

JGH
 
B

BartC

jgharston said:
Too often HR droids think "assembler" means x86 without realising
there's dozens of specific assembler.

I've programmed in 6502, Z80, 6809, 32016, ARM, PDP-11 as well
as x86, but I doubt they'd realise they were also all "assembler"
even if you dropped it on them from as great height.

What do you think the chances are of them wanting pdp-11 or z80 programmers?
 
J

James Kuyper

What do you think the chances are of them wanting pdp-11 or z80 programmers?

Since they just specified "assembler", without indicating which kind of
assembler experience they're looking for, it seem pretty reasonable to
assume that they don't really know what they want.
 
P

Patrick Scheible

BartC said:
What do you think the chances are of them wanting pdp-11 or z80 programmers?

A programmer who's experienced in sevearl different types of assembly is
probably going to have an easier time learning the Next Big Thing than a
programmer with only one assembly language.

-- Patrick
 
J

jacob navia

Le 01/11/11 14:29, Nick Keighley a écrit :
ICL 1900 series.

How about Myriad User Code?

One of the big problems of old people is that they tend to live
in the past.

ANY discussion in this group leads to

"And in machine XXX (dead since at least 20 years) bytes were
8.75 bits, remember that eh?"

This has nothing with remembering history but everything
with seeking to revive "old memories of yore".

I have nothing against old people but as I age, I try to
stay away from old age's pitfalls, in the same way as when I was young
I tried to avoid young age's pitfalls.
 
B

BartC

jacob navia said:
Le 01/11/11 14:29, Nick Keighley a écrit :

One of the big problems of old people is that they tend to live
in the past.

ANY discussion in this group leads to

"And in machine XXX (dead since at least 20 years) bytes were
8.75 bits, remember that eh?"

We didn't even have bytes...
 
I

Ian Collins

I have nothing against old people but as I age, I try to
stay away from old age's pitfalls, in the same way as when I was young
I tried to avoid young age's pitfalls.

So you adopted middle-age pitfalls ant a young age and you've stuck with
them?
 
B

BGB

Le 01/11/11 14:29, Nick Keighley a écrit :

One of the big problems of old people is that they tend to live
in the past.

ANY discussion in this group leads to

"And in machine XXX (dead since at least 20 years) bytes were
8.75 bits, remember that eh?"

This has nothing with remembering history but everything
with seeking to revive "old memories of yore".

I have nothing against old people but as I age, I try to
stay away from old age's pitfalls, in the same way as when I was young
I tried to avoid young age's pitfalls.

most of my life, x86 has been the dominant architecture.
back when I was young (as in, early elementary-school years / early 90s,
originally learning how to use computers) DOS was still a major OS,
though at this point being displaced by Windows...

I guess maybe in the early 90s x86 was battling off m68k or similar, but
Macs were fairly rare IME (IIRC, most people just had PCs...).


I was alive during part of the 80s, but FWIW I don't remember it.


sadly, I am getting fairly old now as well...
 
A

Ark

On 10/31/2011 12:39 PM, BartC wrote:
Since they just specified "assembler", without indicating which kind of
assembler experience they're looking for, it seem pretty reasonable to
assume that they don't really know what they want.

OTOH, Any assembly programming takes understanding of "how machines
work", willingness to read data sheets, etc. That's portable across
architectures. Knowledge of instruction sets, register stalls etc. is
easier acquired. People very seldom need a stellar assembler programmer
 
J

Joe keane

I learned 6502 when i was a kid (no we didn't have assembler, you just
have to put the codes in a BASIC string), later PDP-11, and then any
assembler language seems the same.

I guees i'm an old fart?
 
G

gwowen

ANY discussion in this group leads to

"And in machine XXX (dead since at least 20 years) bytes were
8.75 bits, remember that eh?"

Who the hell writes x86 assembler professionally these days though?
Video codec writers, perhaps. Everyone else, if they're forced into
writing assembly, its almost always because the target processor is
*not* a general purpose.

Clue: The x86 and its descendants are not the most widely produced
microprocessors in the world - and it isn't even close - even for
things that are, loosely, general purpose computers. And, given that
smartphones and tablets and the like appear to be future, that gap is
going to widen, and not close.

So, if you're going to talk chip-specific assembler, and you're not
using an ARM instruction set, you're talking about a niche market.
 
B

BGB

Who the hell writes x86 assembler professionally these days though?
Video codec writers, perhaps. Everyone else, if they're forced into
writing assembly, its almost always because the target processor is
*not* a general purpose.

lots of people write x86 assembler...

at this point, it is probably because there are still things one may
want to do in a program, which are not readily possible (or practical)
purely within C or similar, so someone needs ASM to make it work correctly.

performance is sometimes a motivation, probably more often it is to
either use HW specific features, or to work around some natural limits
in how C works and is implemented on processors.


a simple example would be writing a general purpose "apply" function,
where one calls a function pointer with an arbitrary (only known at
runtime) argument list.

in C, this essentially requires a (potentially massive) switch
statement, which requires converting the argument list into a number,
.... and generally ends up kind of slow, and adding a fair amount of size
to the final binary.

in ASM, the task is much more straightforward.
hence, ASM ends up being preferable here.

likewise, going the reverse, and for things like constructing lambdas
(which look/behave like ordinary function pointers), ...

maybe:
try to write a pure C implementation of something like setjmp/longjmp;
....

Clue: The x86 and its descendants are not the most widely produced
microprocessors in the world - and it isn't even close - even for
things that are, loosely, general purpose computers. And, given that
smartphones and tablets and the like appear to be future, that gap is
going to widen, and not close.

people say that "smartphones/tablets/... as future", however this seems
unlikely. far more likely, they will be used alongside desktops and
laptops and like, and after a few years people will wonder why their
sales drop so much: "oh yeah... market saturation...".

for most small embedded devices, the number of units is misleading, as
most are non-programmable, so maybe a few people produce the original
software for a given device, but they run off millions of units. doesn't
mean that this constitutes a larger amount of total work (by
programmers), only that a large number of units have been produced.

So, if you're going to talk chip-specific assembler, and you're not
using an ARM instruction set, you're talking about a niche market.

x86 is likely still most commonly used, even for assembler.
ARM probably comes in second, and most of this is likely people writing
software for Android or similar, and doing something which needs ASM.
 
G

gwowen

x86 is likely still most commonly used, even for assembler.

By volume, ARM chips massively outsell x86 chips, and most of those
are used on devices so diverse that each one will be require bespoke
code - frequently in assembler (especially for the chips with little
memory). The x86 chips will run Windows or some Unix-like OS, which
means even the bespoke code will be compiled [C/C++/Fortran], byte-
compiled [Java, C#] or interpreted (VB, Perl, Python). No-one writes
CGI/SQL in assembly. Some numerical codes will have highly tuned core
code in assembly (to exploit SIMD, etc) but even that is increasingly
being devolved to massively parallel GPU-code [CUDA, etc].

So tell me, how on earth do you reach the conclusion that "x86 is
likely still most commonly used, even for assembler"?
 
M

Malcolm McLean

Smartphone shipments started exceeding PC shipments last year.  And
those are all programmable (and does not include feature phones or
tablets).

For the vast majority of users, PC effectively aren't programmable
either - almost all software run on 95% of PCs is written by a "few"
people who then run off "millions" of units.
Currently I'm running a version of Windows. Open are two "folders", an
Open Office document with my novel in it, a copy of wordpad showing
some C source, a copy of a source editor called Crimson Editor, a
command prompt window which I use for running tcc (tiny C compiler),
Adobe Viewer with a scientific paper, and, of course, the web browser
I'm typing this into.

So most of these programs are mass market ones, and the ones that
aren't are to do with programming.

That's one reason we're seeing a shift from PCs to less flexible (in
software terms) but more portable and easier to use devices. Most
people want to run a fairly limited set of programs. The exception is
games, but even here, games are moving to the internet.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top