The CODE/EDOC facility
The CODE statement switches the compiler into a mode in which it accepts Intel
32-bit assembler instructions rather than Fortran statements. The compiler is
returned to normal by the EDOC statement. A CODE/EDOC sequence may appear
anywhere that an executable Fortran statement is permitted. For example:
LEA EDI%,L ;EDI gets address of L
MOVB AL%,='*' ;Asterix in AL
MOV ECX%,=10 ;Count in ECX
REP ;Rep prefix coded as
+ ; a separate instruction
STOSB ;This fills L with aster isks
JMP $10 ;Jump to label 10
PRINT *,'This should not be printed'
10 PRINT *,'L = ',L
This example is artificial in that there is no real point in performing
operations in assembler that can be done in Fortran, however it illustrates
that code is written according to the following conventions:
Instructions refer to Fortran objects or explicitly to the registers
Register names are followed by a '%' to distinguish them unambiguously from
Instructions must start in column 7 or beyond.
Only numeric (Fortran) labels are permitted.
Comments may be included provided they are preceded by a semi-colon character
Some mnemonics are followed by an 'H' to indicate halfword (16-bit) operation or
by 'B' to indicate a byte operation. This is discussed in more detail below.