Chapter 14: The Arithmetic Coprocessor, MMX, and SIMID Technologies.

Slides:



Advertisements
Similar presentations
Set 16 FLOATING POINT ARITHMETIC. TOPICS Binary representation of floating point Numbers Computer representation of floating point numbers Floating point.
Advertisements

Gursharan Singh Tatla Math Co-Processor Nov-10 Gursharan Singh Tatla
UQ: Explain in brief integer instruction pipeline stages of Pentium
INSTRUCTION SET ARCHITECTURES
Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.
Chapter 12: Interrupts. Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors:
Instruction Set Architecture
8087 instruction set and examples
Data Movement Instructions
Chapter 8: Programming the Microprocessor. Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel.
Microprocessors The MIPS Architecture (Floating Point Instruction Set) Mar 26th, 2002.
TK 2633 Microprocessor & Interfacing Lecture 3: Introduction to 8085 Assembly Language Programming (2) 1 Prepared By: Associate Prof. Dr Masri Ayob.
© 2006 Pearson Education, Upper Saddle River, NJ All Rights Reserved.Brey: The Intel Microprocessors, 7e Chapter 5 Arithmetic and Logic Instructions.
Chapter 14: The Arithmetic Coprocessor, MMX, and SIMID Technologies.
S. Barua – CPSC 440 CHAPTER 2 INSTRUCTIONS: LANGUAGE OF THE COMPUTER Goals – To get familiar with.
Outline Floating point arithmetic 80x87 Floating Point Unit.
The M68HC11 Basic Instruction Set Basic Arithmetic Instructions
Assembly Language for x86 Processors 6th Edition
Lecture 15 Floating point math Dr. Dimitrios S. Nikolopoulos CSL/UIUC.
Programming Models CT213 – Computing Systems Organization.
Computer Architecture and Operating Systems CS 3230 :Assembly Section Lecture 10 Department of Computer Science and Software Engineering University of.
Floating Point Arithmetic
Computer Organization CS224 Fall 2012 Lesson 21. FP Example: °F to °C  C code: float f2c (float fahr) { return ((5.0/9.0)*(fahr )); } fahr in $f12,
Fall 2012 Chapter 2: x86 Processor Architecture. Irvine, Kip R. Assembly Language for x86 Processors 6/e, Chapter Overview General Concepts IA-32.
FLOATING POINT ARITHMETIC. TOPICS Binary representation of floating point Numbers Computer representation of floating point numbers Floating point instructions.
The x87 FPU Lecture 19 Fri, Mar 26, 2004.
The 80x87 Math Coprocessor. Why we need a math coprocessor? Using a general-purpose microprocessor such as the 8088/86 to perform mathematical functions.
Microprocessors The ia32 User Instruction Set Jan 31st, 2002.
Operand Addressing And Instruction Representation Cs355-Chapter 6.
Dec Hex Bin 14 E ORG ; FOURTEEN Interrupts In x86 PC.
EEL5708/Bölöni Lec 8.1 9/19/03 September, 2003 Lotzi Bölöni Fall 2003 EEL 5708 High Performance Computer Architecture Lecture 5 Intel 80x86.
Assembly Language for x86 Processors 7th Edition
Arithmetic and Logic Instructions
Real Numbers SignExponentMantissa.
Real Arithmetic Computer Organization and Assembly Languages Yung-Yu Chuang 2006/12/11.
Microprocessor & Assembly Language Arithmetic and logical Instructions.
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures.
ECE291 Lecture 13 Advanced Mathematics. ECE 291 Lecture 13Page 2 of 40 Lecture outline Floating point arithmetic 80x87 Floating Point Unit MMX Instructions.
Subword Parallellism Graphics and audio applications can take advantage of performing simultaneous operations on short vectors – Example: 128-bit adder:
ECE291 Computer Engineering II Lecture 11 Dr. Zbigniew Kalbarczyk University of Illinois at Urbana- Champaign.
Data Movement Instructions A Course in Microprocessor Electrical Engineering Department Universitas 17 Agustus 1945 Jakarta.
Presented by, C.Balasubramaniam, Lect / CSE ESEC
Overview of Instruction Set Architectures
MICROPROCESSOR BASED SYSTEM DESIGN
Copyright 2013, 2010, 2007, 2005, Pearson, Education, Inc.
8086 Microprocessor.
Introduction of microprocessor
Microprocessor and Assembly Language
Assembly Language Programming Part 2
William Stallings Computer Organization and Architecture 8th Edition
Chapter 6 Floating Point
Computer Organization and Assembly Language (COAL)
Processor Organization and Architecture
Assembly Language for Intel-Based Computers, 5th Edition
Chapter 11 © 2011, The McGraw-Hill Companies, Inc.
CS170 Computer Organization and Architecture I
Subject Name: Microprocessors Subject Code:10EC46 Department: Electronics and Communication Date: /21/2018.
Using the 80x87 Math Chip in Assembly
8086 Ahad.
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures
Chapter 8 Central Processing Unit
The x87 FPU Lecture 18 Wed, Mar 23, 2005.
Computing in COBOL: The Arithmetic Verbs and Intrinsic Functions
Computer Architecture
Computer Organization and Assembly Languages Yung-Yu Chuang 2005/12/22
8051 ASSEMBLY LANGUAGE PROGRAMMING
Computer Architecture and System Programming Laboratory
COMPUTER ORGANIZATION AND ARCHITECTURE
Computer Organization and Assembly Language
Computer Architecture and System Programming Laboratory
Presentation transcript:

Chapter 14: The Arithmetic Coprocessor, MMX, and SIMID Technologies

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Instruction Set of Intel 8087  The instructions are fetched by 8086 but are executed by  Whenever the 8086 comes across 8087 instruction, it executes the ESCAPE instruction code to pass over the instruction op-code and control of the local bus to  After execution the result is referred back.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Categorization of Instruction set 1.Data transfer Instructions. 2.Arithmetic Instructions 3.Comparison Instructions 4.Transcendental Instructions 5.Constant Instructions 6.Coprocessor Control Instructions

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Data Transfer Instructions There are three basic data transfers: –floating-point –signed integer –BCD Inside the coprocessor, data are always stored as an 80-bit extended-precision floating-point number.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Floating-Point Data Transfers There are four traditional floating-point data transfer instructions in the coprocessor instruction set: –FLD (load real) –FST (store real) –FSTP (store real and pop) –FXCH (exchange)

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey FLD loads floating-point data to the top of the internal stack. –referred to as ST (stack top) FLD ST (7) ; Stack top  [Reg 7] FLD MEM ; Stack Top  [MEM] FST stores a copy of the top of the stack to the memory location or coprocessor register indicated by the operand. FST ST(7);Stack top  [ ST (7) ] FST MEM;stack Top  [MEM] FSTP stores a copy of the top of the stack to memory or any coprocessor register, then pops the data from the top of the stack. –one might think of FST as a copy instruction and FSTP as a removal instruction

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey FXCH exchanges the register indicated by the operand with the top of the stack. –for example, FXCH ST(2) exchanges the top of the stack with register 2 FXCHST (6); stack top  ST (6)

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Integer Data Transfer Instructions The coprocessor supports three integer data transfer instructions: –FILD (load integer) FILD ST(5) ; stack Top  ST (5) –FIST (store integer) –FISTP (store integer and pop) These function as do FLD, FST, and FSTP, except data transferred are integer data.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey BCD Data Transfer Instructions Two instructions load or store BCD signed-integer data. FBLD loads the top of the stack with BCD data. FBSTP stores the top of the stack and does a pop.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Arithmetic Instructions Arithmetic instructions for the coprocessor include addition, subtraction, multiplication, division, and calculating square roots. –arithmetic-related instructions are scaling, rounding, absolute value, and changing sign All arithmetic operations are floating-point, except some cases in which memory data are referenced as an operand.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Arithmetic Operations The letter P in an opcode specifies a register pop after the operation. –FADDP compared to FADD The letter R in an opcode (subtraction and division only) indicates reverse mode. –subtracts the top of the stack from memory and stores the result in the top of the stack Letter I as a second letter in an opcode indicates the memory operand is an integer. –also applies to FADD, FSUB, FMUL, and FDIV

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Arithmetic-Related Operations FSQRT Finds the square root of the top of the stack and leaves the resultant square root at the top of the stack. –an invalid error occurs for the square root of a negative number The IE bit of the status register should be tested when an invalid result can occur. –test IE by loading the status register to AX with FSTSW AX, followed by TEST AX,1 to test the bit

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Arithmetic-Related Operations FSCALE FSCALE multiplies or divides rapidly by powers of two.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Arithmetic-Related Operations FPREM Performs modulo division of ST by ST(1). The resultant remainder is found in the top of the stack and has the same sign as the original dividend. –a modulo division results in a remainder without a quotient

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Decomposes the number at the top of the stack into separate parts representing value of the unbiased exponent and significand. The extracted significand is found at the top of the stack and the unbiased exponent at ST(1). FXTRACT Arithmetic-Related Operations

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Arithmetic-Related Operations FRNDINT Rounds the top of the stack to an integer. FABS Changes the sign of the top of the stack to positive. FCHS Changes the sign from positive to negative or negative to positive.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Comparison Instructions Examine data at the top of the stack in relation to another element and return the result of the comparison in the status register condition code bits C 3 –C 0. FCOM Compares the floating-point data at the top of the stack with an operand, which may be any register or any memory operand. –if not coded with the instruction, the next stack element ST(1) is compared with the stack top ST

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Comparison Instructions FCOMP/FCOMPP Both perform as FCOM, but also pop one or two data from the stack. FICOM/FICOMP The top of the stack is compared with the integer stored at a memory operand. –FICOMP also pops the top of the stack

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Comparison Instructions FTST Tests the contents of the top of the stack against a zero. Result of the comparison is coded in the status register condition code bits

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Comparison Instructions FXAM Examines the stack top and modifies the condition code bits to indicate whether the contents are positive, negative, normalized, and so on.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Transcendental Operations FPTAN Instruction calculates the partial tangent of an angle θ. where θ must be in range from 0<= θ < 90 0 { ST/ST(1) } The value of θ must be stored at the stack top. ST(7) must be empty for this instruction to function properly.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Transcendental Operations FPATAN  Instruction calculates the partial inverse tangent  The result is stored on the top of the stack.  The content of ST and ST(1) should follow the inequality. 0<=ST(1) < ST< infinity The instruction pops the stack and leaves θ in radians at the top of the stack.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Transcendental Operations F2XM1 Finds the function 2 X – 1. –value of X is taken from the top of the stack and the result is returned to the top of the stack To obtain 2 X add one to the result at the top of the stack.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Transcendental Operations FSIN/FCOS Finds sine or cosine of the argument located in ST expressed in radians (360°=2π radians), with the result found in ST. FSINCOS Finds sine and cosine of ST, expressed in radians, and leaves results as ST = sine and ST(1) = cosine.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Transcendental Operations FYL2X Finds Y log 2 X. –value X is taken from the stack top –Y is taken from ST(1) Result is found at the stack top after a pop. –value of X must range between 0 and ∞ –value of Y must be between –∞ and +∞

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Transcendental Operations FYL2XP1 Finds Y log 2 (X + 1). The value of X is taken from the stack top and Y is taken from ST(1). The result is found at the top of the stack after a pop.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Constant Operations The coprocessor instruction set includes opcode that return constants to the top of the stack. –FLDZ +0.0 –FLD –FLDPI –FLDL2Tlog 2 10 –FLDL2Elog 2 ε –FLDLG2log 10 2 –FLDLN2log ε 2

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Coprocessor Control Instructions FINIT/FNINIT Performs a reset (initialize) operation on the arithmetic coprocessor. The coprocessor uses extended-precision when reset or initialized. –also sets register 0 as the top of the stack

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Coprocessor Control Instructions FLDCW Loads the control register with the word addressed by the operand. FSTCW Stores the control register into the word-sized memory operand.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Coprocessor Control Instructions FSTSW AX Copies the contents of the control register to the AX register. FCLEX Clears the error flags in the status register and also the busy flag.

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Coprocessor Control Instructions FDECSP Decrements the stack pointer. FNOP Floating-point coprocessor NOP. FWAIT Causes the microprocessor to wait for the coprocessor to finish an operation. –should be used before the microprocessor accesses memory data affected by the coprocessor

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey FINIT: initialize 8087 FLD L: get L FMUL C: form LC FSQRT: form square root of LC FLDPI: get pi FADD ST, ST(0): form 2 pi FMUL: form 2pi square root LC FLD1: 1 at the ST FDIVR: form reciprocal FSTP RES: store result to a memory location

Copyright ©2009 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights reserved. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, Pentium, Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Architecture, Programming, and Interfacing, Eighth Edition Barry B. Brey Microprocessors and Interfacing D V Hall, SSSP Rao Short Notes: Editor, Assembler, Linker, Locator, Debugger, Emulator Page: 3.24 Basic: Writing programs for use with an Assembler SEGMENT and ENDS, EQU, DB, DW, DD, ASSUME, and END directives Page 3.17 Basic: Reentrant and Recursive procedures Fig. 5.20, Fig Page 5.23