0

How did these earlier programmers know what combinations of binary produced certain results? Is there a way I can create an assembler from binary today?

1

2 Answers 2

4

Every microprocessor has an instruction set. Each instruction corresponds to a specific binary code. You can find out which binary code corresponds to which processor instruction by reading the specification sheet for the microprocessor.

From there, it's simply a matter of specifying the binary codes in the right order to produce the desired result.

2
  • 2
    So are these what are called opcodes?
    – Nanotwerp
    Commented Feb 15, 2015 at 21:08
  • 1
    Yes, opcodes... Commented Feb 15, 2015 at 21:44
3

Robert Harvey is correct.

However, you can create an assembly language at the same time you write an assembler. It's a cyclical process, where you add code to the assembler to process your assembly language into operation codes, or opcodes.

Ideally, each assembly language instruction is represented by an opcode. Sometimes, one assembly instruction requires many opcodes.

You also need a linker, to link assembly object modules together into an executable program. Back when assembly was the only language choice, the linker was a separate program, run after your code was assembled.

2
  • 1
    So to create an assembler, I should download the Intel list of opcodes and go from there?
    – Nanotwerp
    Commented Feb 15, 2015 at 23:39
  • 1
    @user2759612 I wouldn't start from any list Intel produces, as to the best of my knowledge no such list is complete. The best list of opcodes and description of how they are generated to my knowledge is Appendix A of the NASM manual.
    – Jules
    Commented Feb 16, 2015 at 8:39

Not the answer you're looking for? Browse other questions tagged or ask your own question.