1 {Rutina de verificación para operaciones con datos de tipo byte. 2 Se debe simular el programa en el circuito "Test2.DSN". Se debe 3 escuchar, una serie de pitidos cortos. Si se escucha un pitido 4 largo, es que hubo algún error en el resultado de alguna operación. 5 Por: Tito Hinostroza 6 Modificado: 01/03/2018} 7 uses PIC10F202, UnitTest; 8 {$FREQUENCY 4Mhz} 9 {$OUTPUTHEX 'output.hex'} 10 var 11 a, b: byte; 12 13 begin 14 SetAsOutput(pinLed); 15 pinLed := 0; 16 17 ////////////////////////////////////////////////////////// 18 //////////////////////// Suma ///////////////////////// 19 ////////////////////////////////////////////////////////// 20 21 //Constante 22 if 0 + 0 = 0 then good else bad end; 23 if 0 + 1 = 0 then bad else good end; 24 if 255 + 0 = 255 then good else bad end; 25 26 //Variables 27 a := 0; 28 b := 255; 29 if a + a = 0 then good else bad end; 30 if a + b = 255 then good else bad end; 31 if b + a = 255 then good else bad end; 32 if a + b = b then good else bad end; 33 34 a := 1; 35 b := 254; 36 if a + b = 255 then good else bad end; 37 38 //Variables - constantes 39 a := 0; 40 if a + 0 = 0 then good else bad end; 41 if 0 + a = 0 then good else bad end; 42 if a + 1 = 1 then good else bad end; 43 if 1 + a = 1 then good else bad end; 44 if a + 255 = 255 then good else bad end; 45 if 255 + a = 255 then good else bad end; 46 47 a := 1; 48 if a + 0 = 1 then good else bad end; 49 if 0 + a = 1 then good else bad end; 50 if a + 1 = 2 then good else bad end; 51 if 1 + a = 2 then good else bad end; 52 if a + 254 = 255 then good else bad end; 53 if 254 + a = 255 then good else bad end; 54 55 //Expresiones 56 a := 10; b := 5; 57 if a = b+5 then good else bad end; 58 if a + b = 15 then good else bad end; 59 if (a + b) + 1 = 16 then good else bad end; 60 if b + a = 15 then good else bad end; 61 if 15 = b + a then good else bad end; 62 if a + b = a + 5 then good else bad end; 63 if a + (b+a) = a + (a + 5) then good else bad end; 64 if a + (b+ (a+b)) = a + (a + a) then good else bad end; 65 66 ////////////////////////////////////////////////////////// 67 //////////////////////// Resta ///////////////////////// 68 ////////////////////////////////////////////////////////// 69 70 //Constante 71 if 0 - 0 = 0 then good else bad end; 72 if 1 - 0 = 0 then bad else good end; 73 if 255 - 0 = 255 then good else bad end; 74 75 //Variables 76 a := 255; b := 0; 77 if a - a = 0 then good else bad end; 78 if a - a = b then good else bad end; 79 if b - b = b then good else bad end; 80 if a - b = 255 then good else bad end; 81 if a - b = a then good else bad end; 82 83 a := 255; b := 1; 84 if b - b = 0 then good else bad end; 85 if a - b = 254 then good else bad end; 86 87 a := 1; b := 0; 88 if a - b = 1 then good else bad end; 89 if a - b = a then good else bad end; 90 91 a := 10; b := 5; 92 if a - b = b then good else bad end; 93 if a - b = 5 then good else bad end; 94 95 //Variables - constantes 96 a := 0; 97 if a - 0 = 0 then good else bad end; 98 if 0 - a = 0 then good else bad end; 99 if a - 0 = a then good else bad end; 100 a := 1; 101 if a - 1 = 0 then good else bad end; 102 if 1 - a = 0 then good else bad end; 103 if 255 - a = 254 then good else bad end; 104 if 10 - a = 9 then good else bad end; 105 a := 255; 106 if a - 1 = 254 then good else bad end; 107 if 255 - a = 0 then good else bad end; 108 if a - 10 = 245 then good else bad end; 109 110 //Expresiones 111 a := 10; b := 5; 112 if 10 - (b+1) = 4 then good else bad end; //constante - expresión 113 if a - (b+1) = 4 then good else bad end; //variable - expresión 114 if (a+1) - 1 = 10 then good else bad end; //expresión - constante 115 if (a+1) - 0 = 11 then good else bad end; //expresión - constante 116 if (a+1) - a = 1 then good else bad end; //expresión - variable 117 //Pruebas eliminadas por falta de espacio 118 // if (a+1) - (b+1) = 5 then good else bad end; //expresión - expresión 119 // if a - b = a - b then good else bad end; 120 // if a - b - 1 = 4 then good else bad end; 121 // if a - b - 1 = b - 1 then good else bad end; 122 // if 5 = a - b then good else bad end; 123 // if a - 5 = a - b then good else bad end; 124 // if b + (a-b) = a then good else bad end; 125 // if a = b + (a-b) then good else bad end; 126 // if a + (b+ (a-b)) = a + (a - b + 5) then good else bad end; 127 // 128 129 end. 130