New answers tagged

0

DUP is a specific operand specifier to the DB/DW/etc psuedo-instructions, telling them to repeat a specific value. It can only be used in these data instructions. TIMES is a generic instruction prefix, telling the assembler to produce multiple copies of the instruction (or psuedo-instruction), whatever it may be. AFAIK, TIMES is specific to NASM, ...


-1

I've written and maintained a reasonably-sized commercial package in assembly language (40,000 lines of 16-bit code and 35,000 lines of 8-bit). It worked well and had zero bugs. The only inter-module communications possible were that a symbol (an address in program code or a data address in memory) could be declared public in one module and external in ...


2

A book could be written on this topic. I bet some have . . . It's hard to answer because each tool-chain has its own strengths, shortcomings and quirks. I must have structured different projects a half-dozen different ways, but I will mention the two that I've used the most. For almost all techniques, you need to partition the components adequately. The ...


0

The first thing you need is something like this file. This is the instruction database for x86 processors as used by the NASM assembler (which I helped write, although not the parts that actually translate instructions). Lets pick an arbitrary line from the database: ADD rm32,imm8 [mi: hle o32 83 /0 ib,s] ...


5

Short answer: the same way any other compiler works. Long answer: A program that takes programming code input in one language and transforms it to output in a different language is called a compiler. (An assembler is a special type of compiler whose input language is assembly language and whose output language is machine code.) A compiler's work can be ...



Top 50 recent answers are included