Cátedra: Saubidet
Fecha: Segunda Oportunidad - Segundo Cuatrimestre 2005
Día: 29/12/2005
Codificar una rutina en Assembler para IBM 370 que realice lo siguiente:
HAMMING PPIO 3 L 7,0(1) //R7 = Dir(Byte) ICM 5,8,0(7) //R5 = Byte SLL 5,1 //Pierdo el 0 extra LA 6,1 LA 8,BITS LA 9,7 //Cantidad de bits a analizar COMPARA C 5,=F'0' BL UNO B PROX UNO ST 6,0(8) //Proxima palabra SLL 5,1 PROX BCT 9,COMPARA LA 11,0 //Sumatoria de bits de paridad erronea BIT1 LA 8,0 //Sumatoria de bits para c/ bit de paridad LA 6,BITS A 8,0(6) //Bits analizados por bit de paridad 1 A 8,8(6) A 8,16(6) A 8,24(6) SRDL 8,1 //El último bit determina par/impar C 9,=F’0’ BNL BIT2 A 11,=F’1’ BIT2 LA 8,0 A 8,4(6) //Bits analizados por bit de paridad 2 A 8,8(6) A 8,20(6) A 8,24(6) SRDL 8,1 C 9,=F’0’ BNL BIT4 A 11,=F’2’ BIT4 LA 8,0 A 8,12(6) //Bits analizados por bit de paridad 4 A 8,16(6) A 8,20(6) A 8,24(6) SRDL 8,1 C 9,=F’0’ BNL FINCOMP A 11,=F’4’ FINCOMP C 11,=F’0’ //R11 = Posición bit erroneo BE FIN L 7,0(1) ICM 5,8,0(7) SLDL 4,0(11) //Dejo el bit erroneo al comienzo de R5 SLL 4,1 //Hago espacio para el bit a corregir C 5,=F’0’ BL ESCERO //El bit era 1 y pasa a 0 A 4,=F’1’ //El bit era 0 y pasa a 1 ESCERO SLL 5,1 //Pierdo el bit erroneo, y lleno con 0 LA 8,7 //¿Cuántos bits faltan desplazar? SR 8,11 SLDL 4,0(8) STCM 4,1,0(7) //Devuelvo el byte corregido FIN CHAU BITS DC 7F’0’ END
Notas