360 Assembly/360 Family

From Wikibooks, open books for an open world
Jump to navigation Jump to search

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:

Organization of Bits and Bytes
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