Halfword and byte forms of instructions

In standard (16 bit) assembler notation, many instructions have two forms depending on whether the operand is of type byte or word. In 32 bit assembler, instructions may have three forms - full word (32-bit), half word (16-bit) and byte (8-bit).

Rather than follow the Intel convention that the instruction is defined by its operand (something which is hard to define in the context of Fortran variables), each distinct instruction has a different mnemonic. The conventional Intel mnemonic refers to the 32-bit form of the instruction, and we append an 'H' to refer to a half word instruction (constructed using an operand size prefix) or a 'B' to refer to a byte instruction where available. Thus for example we have the following string move instructions:

MOVS ;Move a full word
MOVSH ;Move a half word
MOVSB ;Move a byte

A similar scheme is used with the memory reference coprocessor instructions. Thus we have for example four types of memory reference floating point additions:

FIADDH I ;Add an integer half word
FIADD L ;Add an integer full word
FADD R ;Add a short real (4 bytes)
DFADD D ;Add a long real (8 bytes)



Copyright © 1999-2020 Silverfrost Limited