Data Representation, Arithmetic Instructions, j·.nd Computer .efficiency An Honors Thesis (IU 499) By Carol A. Nichols 'rhes~s Director ,: / 5" / Ball state University Muncie. IndiCtna t~ote1 .spring, 19tH '" TABL~ OF GONT~NTS Preface page 1 Thesis page 2 1 In order that those wlth limited knowledge of data processing can comprehEmd the follow lng research and understand its impact. it is necessary to begin with explanations of the terms unfaml.llar to the red.dOr8 The purpose of thlS research is to determine which representatlon of numeric data 1n the computer causes the arithmetic operations of addition, subtraction, multiplication, and division to be executed the most efficiently. Numerlc data, or numbers, can be represented inside the computer in several different wa.ys. In the GOBOL language, there is a USAGE clause in which one can specify the type of representation to be used. One possibill.ty is to have a U$AGt~ I;;:; DISPLAY clause for a numerlc data item WhlCh causes the internal representation to be the stantiar(! character form of the number. USAGL IS COMPUTATIONAL representat~Lon. A alal-lSe of (or COMP) defines another type of In COBOL. t.he C01,u') data type causes the number to be in its equivalent binary integer form. 'rhe binary number system is based on powers of two and uses only the digl.ts 0 and 1. A number represented in COM?, or binary integer, does not have to' be an irlttegE~r however; 1 t is p05slble to have a declmal represented as COMP data by using an implied decimal PU..I.ot. 'jUlvl.PUTATIONAL-J (or COfiiP-)} data is the last of the data types to be consldered In this study. data item. A packed declmal number lS the same as a COlvIP- J When a decimal number is "packed" into a oacked decimal number, two digits are stored into one byte (a unit of computer storage) exeept for the last byte whl.ch contal.ns one dlgl.t in the left half of the byte and a letter code in the r.lght half indicating 1;he slgn of the number 8 Data Representation. iU'i thmetic Instructions, ~nd Computer ~fficiency In data processJ.ng, emphasJ.s .l.S placed upon wrJ.tJ.ng programs that are effJ.cient J.n the use of varlOUS computer rt:sources. especlally -rame. The desirab1lity of reducing the amount of time taken tel eXE'!cute a program cannot be argued against; 'the old adage that "tlme 15 money" certainly appll13s to the computer world. It a progralli often d1ff1cult. however. to find a way to caUSE; J.8 t;) run faster. In DJ.gl tal- s rrO?S-lO/TOP;:)-~O;OBO.i."-74 Lang'.lAgE! kE'.l1ual, it in recommended that .. programming standard::.: shouLd inRist on using the correct data types for certa:ln operatl.ons. 1 It Before €lstablJ.shlng these programnung standards t mJ.st be }rnown what data type to use fr):r what operatl.on. Ine resf.;arch under consideration is desl.gned to match up approprlate data types and the normal ar1thmetlC operatlons of alidltioll, subtraction, multiplJ.cation. and dJ.vlslon; the data types \'lsed are represeni:attons. character~ blnary 1ntegcr, and pacKed decimal A Djj,,;-lO computer wJ.th TO.PS-IO operatlng syst~?m and t'ORTHAN and GOBOL languages were used in thls inve:3tlga tHIn. '1'0 beg1ll this research ~ t was decided to use FORTrlAN programs to generate 200 random numbers to be used as 1nput data. one hundred paJ.rs of numbers were added. subtracted, 'rhese multlpl~ed. and divided in a COBOL program, referred to as the test program. 3 It was determined that th~?' test program should be executed twenty-five times for each of the three data representations in order to get statistically accurate results~ (See Appendix A for copie's of the programs mentioned.) In ()rder to obtain the time elapsed during each of the four operations for each of the dat;::, types, the ,test program was exec1 .. ted under the control of COBDD'f . a dynamic debugging utili ty program.. ';,O,duDT has a histogram feature which sets up a table in '.vhich variolJs statistics about program behavior are recorded. 'rhe only statistic interesting to this study was the CPU {Central i?rocessing Jni t} time taken for each of the GOBOl, paragraphs in which addition. (~ee perf0rmed. 9ubtraction~ Append~x multipllcation, or division was C for a sample h~stogram table. ) ,-Tior to obtalnlng aby histogram results, the translation of COBOL statements into machine language statements for each of the three data types was examined. (';;;ee Appendix machlne laJlguage code for each case.) It was found that for I) for perform:lng arithmetic on two numbers in character form ~ it 1S necessary to generate five statements 1n machine langu.age code. The first t~o instructions in thlS case cause the numbers to become packed decimal numbers. In the next instruction, the packed decimal equivalents of the subtracted, multiplied. and specified. lJISt~LAY divided~ numbers are added. depending on the operation The last two instructions cause the result of the appropriate operation to be unpacked so that it is once again in characte~ 'W hen form and then it is stored in the proper memory cell. dealing with two binary integer (C01~i?) numbers, the numbers do not have to be packed since the computer is capable 4 of bl.nary al"'i thmetl.c; this results in fewer machine language instruct;ions being generated. For arithmetic to take place with two binary numbers, only three machine language instructions are needed. The first l.nstraction one of the registers of the is performed on the two m~ves computer~ numbers~ the first; operand to Next, the correct operation Finally the result of the arithmetlc, which loS located in the register. is stored in the appropriate location lon memorys Perform:Lng packed decimal arithmetic requires only two machine la~~uage statements8 since both numbers are already in packed eQimal form. it is not necessary to change their form, as with DISPLAY numbers. or to move one of the numbers to a register, as lon binary arithmetlc. The (!OI~iP-3 numbers have ari thmetic :performed on them in the first instruction. In the second machine language instruction, the result of the operation must be stoJr;'ed in the specified memory cell~ Because packed decimal arithmetic requires fewer machine language instructions, one can suppose that arithmetic USl.ng packed decimal numbers would be the fastest and most efficient to perform. However, research findings l.ndl.cate that this is true in only one case. For addition of two numbers, the lowest average time, in seconds. for onE::: hundred additions was assocl.ated wi til (packed decimal) uata. the average time was 0 .. 33252. COlVIP-3 An average time of 0.3:3)04- seconds for binary integer data was extremely close to thE~ time for can be cons:Ldered COMP-3 data and, therefore. the dl.ff'erence insl.gnifl.cant~ FOr DISPLAY data, an average tl.me of 0.)5764 was slower than for the other types of data. 5 when subtracting two numbers, a binary ~nteger representation provided thE' fastest average time of o. 41~7.2 seconds for one hundred subt.ractions. An average time of O~47lJ6 seconds was recorded for the use of pacKed decimal data, the second fastest time. Once again, data in character form was the slowest of the three wi.th an average time. in seconds, of 0.4924. In the case of multiplication of one hundred pairs of numbers, COlV.[y (binary integer) data again proved to have the quickest average time, in seconds, of 0.4JJtl. UISPLAY data representation yielded the next fastest average time of 0.47656 seco'nds. bettering the average time of O. 4tl70tl seconds when using COMt>-J data. Divl.slon of two numbers produced the same ranking of data types as did subtraction~ F'or COMe data, an average time of .o.J956 seconds for one hundred divisions was calculated, the lowest average time of the three representations. i>acked decimal data was ranked next in terms of efficiency, with an average time of O~4~6~~ ~s expected, data in character form gave the slowest average time of 0.4)076 seconds. Overall, when comparlng average tlmes for each of the operatlons and data types, lt can be observed that numbers represented in blnarYlnteger form allow (CO!'Iu..}) operations to be performed the most eff~clently arl thmetic and qUlckly. Because GOlvlP data was shown to be faster than packed declmal data, as was orlginally expected to be the fastest, one may hypothesize as to why the results came out as they did. Appendix B fl:>r a summary of results.) (See 6 'ro justlfy the results of in a D~C··IOcomputer, th~s study, one m.lght assume that, the loading to a register and storing from a register of a bl.nary integer 1.S performed faster than when slmply movlng a packed d.ecimal number from one location 1n memory t<) another. arithmet:ic in a 1".1:30 ~ u~~-lO 1t might be that b.lnary integer computer takes place in less time than packed decimal arl.thmet1.c. l'hese explanatlons are probably the most feaslble ones as to why arlthmetlc carrled out w1th COi'il~ (binary integer) data representation is performed more qUlckly, for the most part, than e1 ther packed decimal (\;OlYiP-;) or character (DISPLAY) arl thmetlc" 'I'o prove these assumptions. however. requlres more research Into the operation of a Uc;C-IO computer. wiuch is beyond the scope of th.ls research. In con c:lus10n. thls research has found that for GOBOL programs with numerous arithmetic calculatlon. b.lnary lnteger or GOM£' representatlon should be used to reduce the amount of tlme tak€tn for execution of the program. 'rhe reader should keep in mincl that this research and its flndings are very much machine and language dependent. Similar results mayor may not be obtained when execut.lng the same or sim~lar on other computers and/or 1n other languages. research programs 00100 00200 o o;':)() 0 00400 ()O~:jOO O()60() 00700 00800 IDENTIFICATION DIVISION. )PROGRAM-ID. DATAREP. AUTHOR. CAROL A NICHOLS. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. DECSYSTEM-l0. DECSYSTEM-l0. p. Pl c+ 0()9()0 01()OO 011()0 01200 Pl c+ INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INPUT-FILE ASSIGN TO DSK. ~ '"0 (l) 01500 01600 01700 01800 01.900 O~~OOO 02100 02200 02300 02400 O:~~:iOO 02600 02700 02BOO 02900 03000 0310() 03200 03300 03400 03500 03600 03700 03000 03900 04000 04100 .s- 04200 'd 04300 (l) ~ 04400 04500 H >< 04600 p. > 04"700 § DATA DIVISION. FILE SECTION. FD INPUT-FILE RECORDING MODE IS ASCII LABEL RECORDS ARE STANDARD VALUE OF ID IS 'DATREPDAT' RECORD CONTAINS 20 CHARACTERS DATA RECORD IS INPUT-REC. 01 INPUT-REC PIC X(20). WORKING· . . STORAGE SECTION. 7/ [OF"'S~J ITCH DO [OF 77 WS··-I:::ESULT 01 IN-REC. 05 05 01 IN-ONE IN-TWO IN-RECORD. 05 INR-ONE 05 INR-TWO 0 ::r 0 c+ (l) " 1-3 ~ ::r (l) p. S (tl 01300 01400 ~(l) ~ p.. (l) 1"$ H ~(l) en c+ H Otl Pl c+ H 0 ::s PIC X(3). Pl 0 0 0 1"$ p.. H~ Otl c+ 0 ~ (l) en ~ c+ p. ~ (l) c:= [f.l 0 ~ 1"$ 0 I7d 0 1"$ t:t~ ..... c+ ::r ~en (l) (l) en 'v'ALUE .' '(~rllll·q~'~·,~.........~~~~~~~-:::",!",,:"~~-, PIC 9(12)V9(4) fUSAGE. ...... _ .............. l~ U1S~LAT,COMPyCOMP-3. PIC 9(6)V9(4) PIC 9(6)V9(4) 1-3 ~ "-l Pl c+ ::r (l) I~ ::s USAGE IS DISPLAY,COMP,COMP-3. USAGE IS DISPLAY,COMP,COMP-3. 1"$ PIC 9(6)V9(4). PIC 9(6)V9(4). ~ t::I Pl PROCEDURE DIVISION. c+ Pl t1 {~ IN··· F, TN. OPEN INPUT INPUT-FILE. MOVE 'NO' TO EOF-SWITCH. PERFORM READ-RTN THRU READ-RTN-EXIT • PERFORM CONTROL-RTN THRU CONTROL-RTN-EXIT UNTIL EDF. CLOSE INPUT-FILE. ~1TOP r::LJN. --.J Test rrogram For Gather~ng Histogram lJata (cont~nued) }--- ~H:"""'" X >< WL:J40 i -: .... ..._ ~ ~":)' CJ W ... r• i-- t- >< i::::;LW ~ 1 l Xc:.:Hj G1 Z W H .-'" '-'- I-~ ~ :3 :3 :- l::J:Jc';C O~::r.:: W QII:JO:: Z Z <Il-~fr: :-ooi H => H 0 ~)-tLZ 0 3 !- , t::! .... !?- ! (!1 ZLU o H)-WO 3 r- Z o r- Z:::>ZZ Z o .0 u Z Z o H Z :.Z:~fr::O:::U::X GOOOOLJ +LL.L:..LLL.L. i .. !--i ~ ZU::W::~i.l:::W:::ZH >- W !..:j !,l LJ !d I - X ~:l..o..D:Cl-C:~U , ....l -' 0 .-~ ~ ....,. ,,0 - l- :-: ',,Q X ,', Z r.-..,. ~ j Q Cc <! H W Low Z r- .-'" '-'Q Q -c ;::. !- H ; t:; f-.- '--' <C ."'., !..~ ... i~ ::J G) i ,W -C .-'" '-'- !- i 1-1-'-'1- ;-..; iLW + H Zi-Z!D:: :::: W::: HZ Ll.LtlWO i ~ >< LW ; .• Z~Z?­ ..... ..J i- H ~::J~X >- LJH Q X ?-iW >- ZHZX i-Qi-LJ .-'" LU H H Q H • OOWX EL:! Z W !- W ;:::; H ::Q: :::> ::J H, :::> H ;:::; Q Q r- • WWH!:::>:::>XH W !- ~£L ZZ H ~:L Z <C!' Z <I '--i Z3 H • HW~ .:::> ; !-i (!1 w.. + ..J:;,< CLJ ~- Z Z i- )-H UX ... ~ H C • !i-H . r- ;r: W 00 ..JQr-!- w Z 0 :L}::::c::c:t:H Z 3 HOHH W Z z:;~ ~ ... O!t-WI! j Z Q~..J::>C =.....) W H Q:J:JH!..=j Z C u: . . H ..,. '"- ~}-}-HQ r- Ur- o :3 !- LJ !- -<! Ci- LJ ~ tLD::HQ; 0........ (;) H Z l- ZU..Jlr- 'C 0) .-'" '-'- 00 H o (.;) :::JZZ?-~ o QW ::> , ::p.." L :3 (,;1 !~-iPi­ ~ !-f.;1::r.:~· ~ ~ 3 (;'") ::J H<Iil.fr.:W Y-r-r- 81 !..J W}-i--WZ :c c::: r- H :3 ~ ""?->-ZH ez:: U en ~U-1l--X Z ::J :::c ./ '-, ~ .. :.0-' ~0000000000000000000~OOOOOOOOOOOOOOOOO ~O'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO '- 0) 0-. 0 .-! C·J ~f) <;t" L;") ") [" 0) 0-. 0 .-! r'l M <:r u) --D 1'-. co 0-. 0 .... (,.J r<") <;f In -0 r-... 0) Q-. 0 .... (,-J M <::t ~~<::t8m~~~8GGG~~--D~-o~~~~-o--Dr-...1'-.r-...~~1'-.r-...r-...r-...~mO)rororo ~OOOOOOOOOOOOOOOOOOOOOoooooooooooooooo Appendix A 00100 00200 00300 00400 00500 00600 SUBROUTINE RANDOM (X) INTEGER MOD REAL FLOAT INTEGER Av MULT, BASE DATA A/l~7271¥ MULT/25211/, nnSE/327581 A = MODCMULT*A, 32768) X = FLOATCA) I FLOAT(BASE) RETURN END OO?OO 00800 00900 INTEGER I,N,IN1,IN2 REAL RANDOM,Nl,N2 0'0300 DO 100 I 00400 OOeiOO OO,-SOO 00700 00800 00900 01000 01100 01200 01300 01400 01;:500 01600 10 . .,,::J.'_",J CD = 1,100 CALL RANDOM(Nl) CALL RANDOMCN2) INl = 10**9 Nl IN2 = 10**9 N2 WRITE (1,5) IN1,IN2 FORMAT (Il0yll0) CONTINUE READ (5,10,END FORMATCI2) END FILE1 STOP END = 25) N c+ c+ c+ :;,- ::T (I) til (I) ~ CD Ii ~ ~ § ~ S CD o t; * * 5 100 ~0' Ii GENDAT.FOR 00100 00200 ~ o 0' Ii til (I) H:! o ~ oc+ P. 0 0 .o (I) .. 8 :;,(I) en s::: 0' Ii 0 s::c+ ... ::s(I) ~ \0 ::u \0 !P CD .-.0 :;;;:: Ii \0 0 c+ \C 0 en \C ::? \C c+ \C ~ :;,- -.0 (I) CD ~ S H:! Ii 0 a 8 ::T CD p."d CD o ... Ii 0 ~ S Ii ....SU c+ ~ c;:l 0 Ii ~en 8 0 ::s(I) c;:l Ii SU c+ ::s(I) (I) en Ii ~p. 0 S (I) \ Ii SU c+ (I) t.; SU c+ SU § o ~ ~ tJ 0' (I) :;,- ~ Ii 0 I-' CD CIl c+ SU ~ CD .... ::s en !P !'(j "d CD ::sp. .... >< !P \0 10 UATA F'Url uISPLAY (Character) Additl.on 1 2- 3 4 5 6 7 ts .359 .436 .36) 8))6 · j'/ ~~ .}7 . ': 1 9 10 11 12 13 14 15 16 17 Its 19 ~~ ' '''1 t ,':':::, _ ' ,4 ' .506 84tsO .546 .452 .496 .451 .452 .450 .453 .496 Division ~499 *502 .429 .42B ~420 .429 .427 .42B .419 ~421 , ·50~ L ,501 .501 ·50) .495 ,49'1 .452 .496 .497 .495 .452 .453 •.5 0 14> .451 .' .502 .4j2 · j j::,~ .W1J. .471 .496 .450 .454 .49ts .. 494 .420 .41B .422 .428 .429 .4)0 .. 426 .427 .420 .428 .421 .426 .420 .. 428 .. 424 11·914 10.769 ·500 · ~; JfJ ~ ~;?~) .W73 ,1.1-70 .j;'l. · '+76 ~~ <" ~' ~ I .. • • .-.Y ~. .. ' '. .. 't'] · _.;}1 .l ~. '1. ~ ,J" j/' ~, ' · }-'} .3 2) '71 -x .4B2 .473 .6)7 6473 ·502 .471 .474 ·501 • I"J )1.1 '-} 21 22 Sum IV1U1 tl.p1ication .5014. ':;,1 20 24 25 subtraction "'7< . • •# - "l:~ .. ,~ -U.9 4 1 0.35764 .472 .470 • i}?L; -12·31 0.4724- 0.47656 0.43076 Appendix B 11 uATA FOB COMPUTATIONAL (Binary Integer) Additi4)n subtraction 1 2 .311 .)es5 .25j~ .41) ) .254:> .293 .457 .430 .464 ·J5tl ,471 4 5 6 7 8 9 10 11 .~.:::.. # .' -.I ..... :.' · Jt1b .YO .431 .449 · ~,;~ ''( ,_i ·370 .477 ·)97 • ~ .5L~ ·3J2 • -~ ':; ''j' ·)91 ' -" 12 1) 14 15 16 17 I!' ' , .. fl-·, f , " ..... , . ' ~ ~ ..... )1 · ., ~ .. , ltS \c" 19 20 21 22 · 2) ,. ., ,j.~ ., '''; .. 41) .)11 .421 .396 _477 .)69 .401 .)6) .462 .)48 .473 .'+4) ~Y+5 .404 .411 .311 .311 .442' .)21 ,,4)8 .444 ·»)9 ~.509 .465 · )611- ~415 .lt39 .480 .437 .406 · 51l~ .39 2 .J20 · ~'~ :;,~) · :5ri .400 24 ,) • l~ l:l • Lf'J7 25 f >' · Li41 ~4-18 Sum x i..J . ') • •. ' -' j " . -"'--8.)26 0.)3)04 ---10.468 0.4its72 Division .415 .486 .473 .440 .516 .470 .484 .471 .J69 .)85 .J37 .4)4 .)60 .449 ·397 " lVlul tiplication -10.845 O.4)Jts ~409 .)98 .)04 .449 .. 420 .. 427 9.89 0.3956 Appendix B 12 FOR COMPUTATIONAL-oJ -DATA (Packed Decimal) Add1t1. I::>n .253 .476 .44ti 8465 ,271 ~472 ~J09 .471 .4)1 ~441 ~497 .453 ::; .5..:...2 .417 • )i)() ,1+66 ' ::5{~ • ,,+'/1 " ,:!~{} .ll-51 .jJ.~1 ,497 ' )}.1 .50~ ~ ~;. If-.~ ').5'·· .50) .501 ·557 .505 .4CSCS .502 ·55CS .414.45CS • ;,; ~',1 :.:: .~H3 .. 462 · ", ',:,9 .551 " ,t..;. • LH56 .460 .4B9 .5)0 .4ti1 .4Bl .445 e4Bt:i .455 ·513 .470 .516 2 .321 3 4 5 23 24 25 Sum -x Dlvl.sl.on .)5) .J)) 22 Multl.pll.catl.on .54) 1 6 7 CS 9 10 11 12 13 14 15 16 17 1CS 19 20 21 subtraction '-. ,-'" :,\j , .':::;::~., .' " , ) iLl ·; ,., • ~1 · '" .46) _!: ./~30 (is .«540 ·517 .4-CS9 .4J7 l~' ~ ~ -,iI. ., J'.' ) ; ; 'f ,l..., :~,.) ~"J '1 __,) ' ,,)72 ~~o J(,)~) · &.~ .~ c,.1 .. ",I .... tie ;.13 0.))252 ·533 .527 .432 _a.,_.- 11_7CS4 0.47136 .421 12.177 0.4B70B ~477 8477 ~441 .)76 .. 406 .)t:i4 ,,42ti .. 421 .506 ~3B6 .490 .3B4 .. 4)7 .. 424 .401 .466 .466 .4,36 .41B .4t:i3 10.67 0.426B Appendl.x B COBDDT ALiD-R iN-EX I T SUBTRACT-RTN SUBTRACT-RTN-EXIT MULTIPLY-RTN MULTIPLY-RTN-[XIT DIVIDE-RTN DIVIDE-RTN-EXIT READ-RTN READ-RTN-EXIT * OVERHEAD: ELAPSED: .- ~ _ ~ ~ . ~ " , _ ~ , __ CPU ENTRIES -GENERATED-SECTION-NAMEMAIN-RTN CONTROL-RTN CONTROL-RTN-EXIT ADD-RTN • ___ REPORT: iSTOGRAM FOR tiATARE - PROCEDURE- -- u • o 1 100 100 10{}100 100 100100 100 -100 100 101 101 28.549 5.562 0.031 0.636 0.519 -{}-r3-21-- 0.342 0.448 0 .. 541 0.472 0.570 Qf 3(}9 0.525 0.385 0.463 CPU: 1 • ELAPSED 2t05.964 0.485 28.863 16.549 2-.-3535.563 ,18.236 5.984 11.379 3.650 -- 2.238 12.445 5.554 12.665 0.231 ~CIl s::: CIl <It ~ ••• p, ~ ....., o ti_ n;:T ~. til ti CD CIl CD . :.:: ~ CD 0 0 ~- 'V I I"..) t-3 ::r ~. CIl c+ I» 0' ~ ~ n- CD I» • ~ I» CIl ~ 1-3 ::r ....., ::r CD 0 • ti o §p, CD ~ c+ ::r CD :x: ~. CIl c+ o 1-3 CD CIl ~ ~ ~. ~ 1-3 CD ~ ~_ :J CD p, c+ S c+ 0 Otl ti CIl ~ ~ CIl- CD c+ ::r CD ~. c+ CD ~ ~ CD CIl CD 0 0 :J Pti § > "0 "0 CD a ~. >< o ..... I"..) iv!ach~ne Language Gode --,---- racks IN-ONl\- into temporary gi;orage --'--- racks IN-TWO into temporsry ~'t?rage Adds IN-ON'~ and IN-TwO, result. .l.S in temporary storage Unpacks result ~nto IN-T~O i-\.? _ ... . - _ , _ _ ---- --- ,~loves result from IN-TWO to 1'1;:- iU~SU [,I' For ":;Oil1 f) d8 t a: LR _ _ L1. ft J _ _ __ _____ • _ _ _ _ • ~1 c~·!). _ _ .... ~'_,....,. .. f _ _ __ Moves Ii~-ONc into a register Adds Il'i-ON~ and IN-twO, result in the reg~ster 0tores result from register to 1 ': 'i.s-RI1~ULT I~i ___ , _ __ --- --- Adds I.N-ON£. and IN-'rINa. resul t ~n L~ IN-'fwO I.vloves result from IN-'rwO to WS-tLSULT Note: For each case the addition statement can be replaced by th" appropriate statement. ':;;ubst~ tute the f~rst letter of the OperEitlon in place of the letter A in each of the addit~O;1 ~nstruct.\..ons. Append~x D