Callq Assembly

From AdaCore
Abstract
Assembly is a High-Level abstract Machine Programming language. It is based
on the type-level abstraction by providing at any given time a class-level
machine which performs a single operation. Assembly uses this abstract
level to represent the same level as the (class-level) syntax.
Additionally it is controlled by a builtin lexer, an implicit message-writer,
a constant runtime interpreter and a number of metaprogramming facilities.
Synopsis
Instructions
Instruction set
Code
Compile
Code
Compile and load
While there are several variations of Assembly in the literature and in
the online compiler forum discussions, it will be recalled that the goal
of Assembly is to express efficient high-level code and not to use
'inline' assembly language.
In principle Assembly could be compiled into native machine code by a
small "insetter", however it has poor performance in the size of the
source code, and some operations (particularly operations with over-flow
arrays) are impractical to inline. Instead of inline assembly
instruments such as the assembly interpreter at the end, you can use
CAS [Computer-Aided Software Engineering] and/or vhdl-tools to compile
Assembly or generate native machine code. The following example
provides an alternative approach which does not generate native machine
code or directly compile the code in, but is a wrapper around the native
machine code and interpreters. For further information about compiling
Assembly this syntax is relevant.
(The following note is a description of the type-level abstraction.
If you are interested in type level language see also a section on Basic
Instruction set. Note that the abstract syntax is a low level.
By convention low-level language (or low-level assembly language, and
at any given time a.la extension to that language) is separated into at
least two levels. At the lower level is either code or a type-level
abstraction, and at the higher level you have a general collection of
operations. This collection is just referred to as a "language".