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 uses ASCII. This can cause a number of headaches in conversion of binary data 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