Halfword and byte forms of instructions

In this section:

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-2024 Silverfrost Limited