360 Assembly/Introduction

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

Why Learn Assembly?[edit]

Assembly is the most primitive tool in the programmers toolbox. Entire software projects can be written without ever once looking at a single line of assembly code. So the question arises: why learn assembly? Assembly language is the closest form of communication that humans can engage in with a computer. Using assembly, the programmer can precisely track the flow of data and execution in a program. Also, another benefit to learning assembly, is that once a program has been compiled, it is difficult--if not impossible--to decompile the code. That means that if you want to examine a program that is already compiled, you will need to examine it in assembly language. Debuggers also will frequently only show the program code in assembly language. If nothing else, it can be beneficial to learn to read assembly language, if not write it.

On mainframe computers it is usual that most programs are written in Cobol, Fortran or other high level languages. There are a small number of reasons for learning a mainframe assembly language.

  • Work on compilers for high-level languages
  • Work on operating system exits
  • Maintenance of existing assembly language applications
  • Work on security applications
  • Updating screen maps for CICS or other applications which were written as Assembler macros.

Who is This Book For?[edit]

This book will serve as an introduction to mainframe assembly language, but it will also serve as a good resource for people who already know the topic, but need some more information on 360 system architecture, and advanced uses of 360 assembly language. All readers are encouraged to read (and contribute to) this book, although a prior knowledge of programming fundamentals would be a definite benefit.

360 Assembly Language
360 Family Introduction · Basic FAQ · 360 Family · 360 Architecture · Comments
360 Instruction Set 360 Instructions · Branch Instructions · Data Transfer Instructions · Control Flow Instructions · Arithmetic Instructions · Logic Instructions · Shift and Rotate Instructions · Other Instructions
Syntaxes and Assemblers 360 Assemblers· Pseudo Instructions
Instruction Extensions Floating Point · High-Level Languages