13.07.2015 Views

The PowerPC 604 RISC Microprocessor - eisber.net

The PowerPC 604 RISC Microprocessor - eisber.net

The PowerPC 604 RISC Microprocessor - eisber.net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

74 Pascal Implementation: Compiler and Assemb! Interpreter Assembler/Interpreter Listing 75441 procedure pt;442 begin write(11;6);443 if abu(store(s).v1) < maxint then wrIte(storo(akvi)444 else writc('too big ');445 e e - 1;446 1 1 + 1;447 if 1 - 4 then448 begin writeln(output); 1 1. 0 end;449 end; ("pt")450451 bogin452 write(' pc .',pc-1;5,' op -',op13,' sp mp453 ' np454 writoln; writeln(' ,),455456 a up, t 1.. 0;457 while s>-0 do pt;458 s 1. maxstk,459 while s>-rip do pt;460 end; (*pmd")461462 procedure orrori(stringi beta),463 begin writeln; writeln(string).464 plod; goto 1465 end;( 1 orroriA)466467 function base(ld tinteger)laddrees;468 var ad taddress;469 begin ad ;. mp;47U while ld>0 do471 begin ad t. store(ad+11.vm;472 end;Id to Id-1473 base ;. ad474 end; ("base*)475476 procedure compare;477 (*comparing Is only correct if reuult by comparing integers will be*)478 begin479 11 store(ap).va;480 12 1. etore(sp+11.va;481 1 t. 0; b t ■ true;482 while b and (1q) do483 if store(11+1).vi484 else b (alesstore(12+1).vi then i 1 ,- 1+1485 end; (*compare")486487 procedure callsp;488 var line: booloan; adptr,adelnt: address;489 it integer;490491 proceduru readi(var (:text),492 var ad: address;493 begin adt.. store(sp-1).va;494 read(f,store(ad).vi),495 storo(ators(spkva).vc496 spt. ap-2497 end;(*readl")498499 procedure readr(var f: text);5U0 var ad; address;501 begin adt. store(sp - 1).va;SU2ruad(f,stors(ad).vr);503 stora(stors(sp).val.vc :-504 ap-2505 end;(*readr * )506507 procedure roadc(var ft text);508 var c: char; ad: address;509 begin road(f,c);510 adt.. wtore(sp-11.va;511 etoro(adkvc c;512 store(storo(spj•va).vc t. f";513 storeletore(spi.va).vi 1- ord(f").514 sp-2515 ond;(*roadc*)516517 procedure wrltestr(var to text);510 var 1,j,kt integer;519 ad: address,520 begin ad:. storelsp-3).va;521 k store(sp-2).vi; j store(ep-1).vi;522 j and k aro numbers of characters 01 )523 if k>j then for 1:..1 to k-j do write(f,' ')524 else k;525 for i 0 to j - 1 do write((,stors(ad+1).vc);526 sp:• ap - 4527 end.(*vritescr*)528529 procedure getfile(var ft text),530 var ad: address;531 begin ad:•store(apj.va;532 get(f), scorelad).vc f";533 apt-sp-1534 end;(*getfile*)535536 procedure putfilo(var ft text);537 var ad: address;538 begin ad:. stora(sp).va;539 atore(ad).vcl put(f),540 op:- op-11541 end;(*putfile*)542543 begin ("callsp*)544 case q of545 0 (*get*); case storelap).va of546 51 gctfile(input);547 6: errori(' got on output file ');548 7: getfile(prd);,)549 8: errori(' get on pry file550 end;551 1 (*put*)i case storelapj.va of,),552 51 errori(' put on road file553 6: putfile(outpot).554 7t error!(' put on prd file ');555 81 putfile(prr)556 end;557 2 ("rate): begin558 (*for teetphase*)559 np I. store(sp).va; ep sp-1560 end;561 3 (*rin*)1 begin case store(sp).va of562 51 begin readln(input).563storo(inputadr).vc input'564 end;565 61 errori(' readln on output file ');566 71 begin readln(rnpot);567 store(ihputadr).vc ilmut" poet568 end;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!