360 Assembly/360 Family
There are a number of different computers that used the 360 machine architecture. These include
- IBM 360 series, the Univac 90/60 and 90/70 series, the RCA Spectra 70 series, the English Electric System 4 series, the Siemens 7.7xx, 7.5xx and H60/H90/H120 series.
- The IBM 370 and Fujitsu B2000 are, and Univac 90/80 were an enhanced version of the 360 series.
- Smaller versions of the IBM 370 were also released as the 43xx series.
- Larger versions of the 370 were released as the 30xx series.
- An intermediate upgrade to the 370 was released as ESA/390.
- The z/System is similar to the 370/390 series except that the z/System is a 64-bit machine while the IBM 370 and predecessors are 32-bit machines.
In software emulation there are some proprietary applications and three open source ones:
- The Z390 portable assembler provides an Assembler-H (high level) equivalent assembler, Cobol compiler, linkage editor and execution environment for programs written in assembler or Cobol
- The Hercules system provides an emulation of either System 370 or z/System hardware satisfactorily enough to run IBM-based operating systems and user programs running within those systems.
- QEMU is an open source emulator for many platforms, including z/Architecture (which it calls s390x). It only supports running Linux as a guest operating system.
The 360 architecture is a big endian machine (as opposed to the typical Intel or AMD x86 processor, which is little endian), in that values are stored high to low. For example, the 16-bit value 256 would be stored (in hex) as 0100 on a 360-series machine, but be stored as 0001 on an Intel Pentium. The number 1, on the other hand, if rendered as a 16-bit number, would be stored (in hex) as 0001 on a 360, and 0100 on a Pentium. Also, the standard character set on the 360/370/Z-System is EBCDIC, while the Pentium/X86/X64 uses ASCII (and Unicode, a superset of ASCII). This can cause a number of headaches in conversion of binary data files - or even text files - from one machine to another.
The bit order for bytes, half words, words, double words, and quad words, proceeds from left to right, with bit 0 being the most significant bit, and bit 7 in byte, bit 15 in a halfword, it 31 in a word, or bit 63 in a doubleword, is the least significant byte. Here is the correlation of bits, bytes, halfworrds. words and doublewords:
Doubleword 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Word 0 | Word 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Halfword 0 | Halfword 1 | Halfword 2 | Halfword 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bit # | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
or | Doubleword 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bit # | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
360 Assembly Language | |
360 Family | Introduction · Basic FAQ · 360 Family · 360 Architecture |
---|---|
360 Instruction Set | 360 Instructions · Branch Instructions · Data Transfer Instructions · Control Flow Instructions · Arithmetic Instructions · Logic Instructions · Shift and Rotate Instructions · Priveleged Instructions · Other Instructions |
Syntaxes and Assemblers | 360 Assemblers· Pseudo Instructions |
Instruction Extensions | Floating Point · High-Level Languages |