Hobby Cross Assembler T_XX

Copyright (C) 2004-2013 by Anton Treuenfels

License and Terms

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Page Top

Contact Information



Page Top

Scope of This Document

HXA is designed to be fairly portable between various processors.

This document describes the imaginary "T_XX" family of test processors and the portions of the HXA_T variant of HXA dependent upon them.

HXA_T is the assembler used for all general test and demonstration programs.

Page Top

Related Resources



Page Top

Hardware and Software Requirements

HXA for Windows


Page Top

Executing HXA_T

HXA_T accepts a single filename as a command-line argument:

HXA_T filename

There are no other command-line arguments, options or switches.

Page Top

Predefined Label

In addition to the __HXA__ built-in label defined by all HXA variants, HXA_T defines a variant identifier label:

Name Value

This label may be used anywhere but is intended mainly for <hxa:IF--DEF|"IFDEF"> conditional blocks.

Page Top

T_XX Processors

The "T_XX" family is an imaginary processor series created for the purpose of testing all the components of HXA which do not depend upon any particular processor.

"T_XX" processors currently share only three attributes with real processors:

The "T_xx" family was created in 2004. Although primarily created to test HXA, this variant can also be used to assemble real processor instruction sets implemented as macro include files. Examples of these are found among the general demo programs.

Page Top

Instruction Set


Page Top

CPU Descriptor

A cpu descriptor is a string with a defined format that specifies processor-specific information such as program counter width and native byte orientation. All supported processors are required to provide one in order that the remainder of HXA "understands" how to deal with them.

In the case of the "T_XX" family there is no distinction between a cpu name and a cpu descriptor . That is, a "T_XX" descriptor is its name. The descriptor is publicly exposed, as oppsed to other processors, which generally hide their descriptors.

Descriptors take the form T_ PC_Width _ Byte_Order[Byte_Size] .

Name PC Size Multi-Octet Order "Byte" Size
T_08_L 8 bits least significant first 8 bits
T_16_L08 16 bits least significant first 8 bits
T_24_M16 24 bits most significant first 16 bits
T_32_M32 32 bits most significant first 32 bits

Page Top

ASSUME Pseudo Opcode

HXA_T simply echoes every string given to it by the "ASSUME" pseudo op.

For testing purposes HXA_T also reports an error for any string which contains the substring reject .

Page Top

Last revised: Tue Sep 17 11:22:43 2013