Vous pouvez copier (copy & paste) les algos en Language Machine et les faire fonctioner dans l'Applet Java du simulateur de LMC donne sur la page Web du cours; soit celle de Petter Higginson ou soit celle de 101computing. Dans les deux applets il faut remplacer: IN par INP BR par BRA BZ par BRZ BP par BRP STO par STA ATTENTION : l'instruction STA (telle qu'elle a ete definie dans le cours) n'EXISTE PAS dans ces deux applets (ni les instructions MUL ET DIV) ! L'instruction STA, dans ces deux applets, est l'instruction STO vu en cours. ================= Final IFT1215 H08 ================= ------------ Question I.1 ------------ INP STA inta INP STA intb loop BRZ end LDA res ADD inta STA res LDA intb SUB one STA intb BRA loop end LDA res OUT HLT inta DAT 0 intb DAT 0 res DAT 0 one DAT 1 ------------ Question I.2 ------------ INP STA mn STA mx loop LDA cpt SUB one STA cpt BRZ end INP STA tmp LDA mx SUB tmp BRP l1 LDA tmp STA mx l1 LDA tmp SUB mn BRP l2 LDA tmp STA mn l2 BRA loop end LDA mx SUB mn OUT HLT tmp DAT one DAT 1 cpt DAT 4 res DAT 0 mx DAT 0 mn DAT 0 ------------ Question I.3 ------------ On ne peut simuler ce programme LMC sur l'applet de Petter Higginson ou soit celle de 101computing a cause de l'instruction ajoutee STA. INP STO ad1 INP STO ad2 LDA ad1 loop STA dtinst dtinst LDA tem STO tem SUB max BRP l1 BRA l2 l1 LDA tem STO max l2 LDA ad1 ADD one STO ad1 SUB ad2 BRZ end LDA ad1 BRA loop end LDA max OUT HLT ad1 DAT 0 ad2 DAT 0 one DAT 1 zero DAT 0 tem DAT 0 max DAT 0 ------------- Question II.1 ------------- #! /bin/bash # CatTwoColumns.sh script nb=1 cat ${1} | while read line1 do line2=`cat ${2} | head -n $nb | tail -n 1` echo $line1 $line2 let nb=nb+1 done #! /bin/bash # CatTwoColumns2.sh script nb=1 ; cat ${1} | while read line1 ; do echo $line1 `cat ${2} | head -n ${nb} | tail -n 1` ; let nb++ ; done -------------- Question III.2 -------------- #! /bin/bash # Compute5Moy.sh script File=${1} Ext="_320" sum=0 cpt=1 for val in {167062,216081,62096,42049,241004} do pri=`grep " $val${Ext}" ${1} | cut -d " " -f 1` echo $pri ::$val ::$cpt sum=`echo $sum+$pri | bc -l` let cpt=cpt+1 done echo "" moy=`echo $sum/5 | bc -l` echo PRI $moy echo ""