SPRASM (Sprite Assembler) Tutorial

Overview

The Sprite Assembler (sprasm) is a V-series assembler which executes on the native linux host and in conjunction with the linker allows the creation of stand-alone V-Series executable code that may be executed by the V-Series simulator (vsim).

V-Series Architectural Overview

The V-series is a decimal architecture designed to efficiently execute business applications written in the COBOL language. It incorporates a complex instruction set, a memory addressing hierarchy capable of addressing over 5 trillion bytes in a single application, up to 100 quadrillion bytes for a system with 10,000 tasks. While per-task addressibility is quite large, the revision C architecture (and thus vsim itself) supports up to a maximum of 500 million bytes of memory.

Memory is addressable to the 4-bit nibble (hereafter referred to as a digit). Arithmetic values consisting of multiple digits are stored in big-endian form, with the most significant digit as the lowest addressable digit of an operand field. Four data types are supported by the architecture:

Data type Description
UN Unsigned 4-bit numeric data
SN Signed 4-bit numeric data
UA Unsigned 8-bit Alphanumeric data
IA Indirect Address data (link to operand)

An unsigned numeric (UN) datum is stored as one to 100 4-bit values, where all digits must consist of the values between 0 and 9 inclusive.

A signed numeric (SN) datum is stored as one to 99 4-bit values with a leading sign digit. If the sign digit contains the 4-bit digit represented by the hexadecimal value D, the datum is considered to be negative; all other sign digit values cause the remaining datum to be considered a positive integer value. The canonical sign for positive SN data fields is the hexadecimal value C, and some instructions (such as ACM) will replace non-canonical sign digits with a C digit.

An unsigned alphanumeric (UA) datum is stored as one to 100 8-bit values. When interpreted by the processor, EBCDIC character coding is assumed.

Indirect Address (IA) operands are used to provide one or more levels of indirection when accessing data fields.

Instruction Set

The V-series supports a variable-length one, two or three-operand instruction set. Instructions provide arithmetic operations, data comparison, data movement, table and list searching and a set of privileged instructions used by the Master Control Program (MCP) operating software.

sprasm/overview.txt · Last modified: 2012/07/25 16:15 by scott
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki