Absolute (G90) and incremental positioning (G91) define how the control interprets axis motion commands.
When you command axis motion after a G90 code, the axes move to that position relative to the origin of the coordinate system currently in use.
When you command axis motion after a G91, the axes move to that position relative to the current position.
Absolute programming is useful in most situations. Incremental programming is more efficient for repetitive, equally spaced cuts.
Figure 1 shows a part with 5 equally spaced Ø0.25" (13 mm) diameter holes. The hole depth is 1.00" (25.4 mm) and the spacing is 1.250" (31.75 mm) apart.
Absolute / Incremental Sample Program. G54 X0. Y0. for Incremental , G54 for Absolute 
Below are two example programs that drill the holes as shown in the drawing, with a comparison between absolute and incremental positioning. We start the holes with a center drill, and finish drilling the holes with a 0.250" (6.35 mm) drill bit. We use a 0.200" (5.08 mm) depth of cut for the center drill and 1.00" (25.4 mm) depth of cut for the 0.250" drill. G81, Drill Canned Cycle, is used to drill the holes.
Mill Incremental Positioning Example.
Mill Absolute Positioning Example
The absolute program method needs more lines of code than the incremental program. The programs have similar preparation and completion sections.
Look at line N13 in the incremental programming example, where the center drill operation begins. G81 uses the loop address code, Lnn, to specify the number of times to repeat the cycle. The address code L5 repeats this process (5) times. Each time the canned cycle repeats, it moves the distance that the optional X and Y values specify. In this program, the incremental program moves 1.25" in X from the current position with each loop, and then does the drill cycle.
For each drill operation, the program specifies a drill depth 0.1" deeper than the actual depth, because motion starts from 0.1" above the part.
In absolute positioning, G81 specifies the drill depth, but it does not use the loop address code. Instead, the program gives the position of each hole on a separate line. Until G80 cancels the canned cycle, the control does the drill cycle at each position.
The absolute positioning program specifies the exact hole depth, because the depth starts at the part surface (Z=0).