Machine code monitor
Encyclopedia
A machine code monitor (aka machine language monitor) is software built into or separately available for various computers, allowing the user to enter commands to view and change memory locations
on the machine, with options to load and save memory contents from/to secondary storage.
Machine code monitors became something of a mass software product in the home computer
era of the late 1970s and into the 1980s. Some full-featured machine code monitors provided detailed control of the execution of machine language programs (much like a debugger
), and included absolute-address assembler and disassembler
capability. It was not unheard of to do all of one's programming with a monitor (indeed, in the first years of home computing, many people made do with entering (in BASIC: "POKE-ing
") hand-assembled opcode
s and operands into program memory).
Even after full-featured assemblers became readily available, a machine code monitor was indispensable for debugging programs. The usual technique was to set break points in the code being worked on (e.g., with a BRK
instruction in 6502 assembly language), start the program and when the processor
hits the break point, control would be transferred to the machine code monitor. Typically this would trigger a register dump and then the monitor would await programmer input.
The general decline in scratch-written assembly language
program
s has made the use of a machine code monitor somewhat of a lost art. On most systems, where higher level languages are employed, debugger
s are used to present a more abstract (and friendly) view of what is happening within a program.
Memory address
A digital computer's memory, more specifically main memory, consists of many memory locations, each having a memory address, a number, analogous to a street address, at which computer programs store and retrieve, machine code or data. Most application programs do not directly read and write to...
on the machine, with options to load and save memory contents from/to secondary storage.
Machine code monitors became something of a mass software product in the home computer
Home computer
Home computers were a class of microcomputers entering the market in 1977, and becoming increasingly common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single nontechnical user...
era of the late 1970s and into the 1980s. Some full-featured machine code monitors provided detailed control of the execution of machine language programs (much like a debugger
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...
), and included absolute-address assembler and disassembler
Disassembler
A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language...
capability. It was not unheard of to do all of one's programming with a monitor (indeed, in the first years of home computing, many people made do with entering (in BASIC: "POKE-ing
PEEK and POKE
In computing, PEEK is a BASIC programming language extension used for reading the contents of a memory cell at a specified address. The corresponding command to set the contents of a memory cell is POKE.-Statement syntax:...
") hand-assembled opcode
Opcode
In computer science engineering, an opcode is the portion of a machine language instruction that specifies the operation to be performed. Their specification and format are laid out in the instruction set architecture of the processor in question...
s and operands into program memory).
Even after full-featured assemblers became readily available, a machine code monitor was indispensable for debugging programs. The usual technique was to set break points in the code being worked on (e.g., with a BRK
BRK
The 65xx family of microprocessors, consisting of the MOS Technology 6502 and its derivatives, the WDC 65C02, WDC 65C802 and WDC 65C816, all handle interrupts in a similar fashion. There are three hardware interrupt signals common to all 65xx processors and one software interrupt, the BRK...
instruction in 6502 assembly language), start the program and when the processor
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
hits the break point, control would be transferred to the machine code monitor. Typically this would trigger a register dump and then the monitor would await programmer input.
The general decline in scratch-written assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
s has made the use of a machine code monitor somewhat of a lost art. On most systems, where higher level languages are employed, debugger
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...
s are used to present a more abstract (and friendly) view of what is happening within a program.