Está en la página 1de 8

ST 314U: Lab.

09_Programacin Binaria
Consideraciones: Las instrucciones y datos se encuentran en memoria Siga los siguientes pasos: o Defina el objetivo del problema o Exprese la solucin en seudocdigo o Genere el programa solucin en base a instrucciones o Simule asumiendo valores

Ejemplo: Prob 1: En base a instrucciones, escriba un programa que realice la diferencia de 2 nmeros naturales. El programa debe terminar si uno de los operandos es cero 1. Objetivo: R = A B = A + B + 1 2. Seudocdigo: Inicio X Hacer Leer A Si (A = 0) Fin Sino Leer B Si (B = 0) Fin Sino B = Complemento (B) B = Incremento (B) R=A+B Guardar (R) Repetir x Fin 3. Secuencia de instrucciones ORG 100 100 LDA A // AC=30 SZA BUN INI Fin HLT INI STA OP1 // M[OP1]=30 LDA B // AC=5 SZA

BUN COM BUN Fin COM CMA INC ADD OP1 STA R BUN 100 OP1 0X0 R A B 0 30 5 // AC=-5 // AC= -5 +30 // M[R]=25

Prob 2: En base a instrucciones, escriba un programa que realice la suma de 10 nmeros naturales. a. Analice y muestre el seudocdigo correspondiente b. Pruebe su funcionamiento mediante prueba de escritorio c. Modifique el programa para que termine si se lee un operando de valor cero. ORG 100 LDA ADS STA PTR LDA NBR STA CTR CLA L 1ADD PTR ISZ PTR ISZ CTR BUN L STA SUM HLT ADS 0X120 ORG 120 //Son datos a ser ledos

PTR 0X0 NBR -10 CTR 0X0 SUM 0X0

120 70 121 25 122 10 . . 129 17

END Prob 3: En base a instrucciones, escriba un programa que realice el producto de 2 nmeros naturales. Utilice el mtodo de la suma repetida: P = 3x4= 4+4+4 (3 veces 4). El programa debe terminar si se lee un operando de valor cero. Objetivo: Obtener P = 3x4 = 4+4+4 (3veces) Seudocdigo: Inicio * Leer (x, y) //x+ x+x+..(y veces)

Si (x=0) Terminar Sino Si (y=0) Terminar Sum0 Y y Y y +1 $ Sum= Sum +x Y y +1 Si (y=0) ProdSum Repetir * Sino Repetir $ ORG 100 //-y

INI

LDA X SZA BUN OPE BUN FIN LDA Y SZA BUN OPE

//AC=4

// Y=3

FIN OPE

HLT CMA INC INC STA CONT LDA X //Y=-3 //Y=-2 //M[CONT]=-2

SUM

ADD X ISZ CONT BUN SUM STA PROD BUN INI

//AC=4 + 4, 8+4 //CONT=-1, 0

//PROD=12 //Repetir con nuevos valores

Prob 4: En base a instrucciones, escriba un programa que calcule en nmero de combinaciones de n bits. El programa debe terminar si se lee el valor de n=0 a. b. c. d. Muestre el objetivo y el seudocdigo Muestre el programa con instrucciones Pruebe su funcionamiento mediante prueba de escritorio Modifique el programa, para que calcule por lotes de 10 valores de n (diferentes) almacenados en memoria

a. Objetivo: Obtener P = 2n = 2x2x2x.x2 (n veces) Seudocdigo: Inicio Leer (n)

Si (n=0) Terminar sino Sum=2 Cont=1 Hacer Sum=sum+sum Cont =Cont + 1 Mientras (cont<n) Pot= Sum Guardar Pot Repetir ciclo Fin b. PROGRAMA DE INSTRUCCIONES: ORG 150 INI LDA N SZA BUN UN HLT UN CMA INC INC STA CNT LDA SUM S ADD SUM STA SUM ISZ CNT BUN S //AC -4 //AC-3 //M[CNT]-3 //M[SUM]2 //2+2, 4+4, 8+8, //4, 8, 16 //-2, -1, 0 // M[N]4, 0 // -, TERMINAR

STA PRD BUN INI

//16 //Repetir con nuevos valores

Prob 5: En base a instrucciones, escriba un programa que calcule el factorial de un nmero natural. El programa debe terminar si se lee el nmero de valor 0. a. Muestre el objetivo y el seudocdigo b. Muestre el programa con instrucciones c. Pruebe su funcionamiento mediante prueba de escritorio Objetivo: Obtener F = n! = 1x2x3x4xxn Seudocdigo: Inicio Leer (n) Si (n=0) Terminar sino Sum=2 Cont=1 Hacer Sum=sum+sum Cont =Cont + 1 Mientras (cont<n) Pot= Sum Guardar Pot Repetir ciclo Fin ORG 150 INI LDA N SZA BUN UN HLT UN CMA INC INC INC STA CNTE STA CNTI S1 LDA N //AC -4, -5 //AC-3, -4 // AC-2, -3 //M[CNT]-2, -3 // M[CNTI]-2, -3 //AC4, 5 // M[N]4, 5, // -, TERMINAR

ADD N //4+4, 8+4 // 12+12 //5+5, 10+5, 15+5// 20+20, ISZ CNTI BUN S STA N ISZ CNTE BUN SIGUE STA FACT BUN INI //-1, 0 //-2, -1, 0 //12, 24 //20 //-1, 0 //-2, //24

SIGUE LDA CNTE STA CNTI BUN S1 d. e. f. g. h. LDA CNT STA N BUN S1 STA PRD BUN INI

//16 //Repetir con nuevos valores

Prob 6: En base a instrucciones, escriba un programa que realice el conteo de los bits 1 de una cadena binaria de 16 bits. El programa debe terminar si se lee una cadena de bits 0. Prob 7: En base a instrucciones, escriba un programa que realice la inversin de una cadena alfanumrica de 4 elementos hexadecimales. El programa debe terminar si se lee una cadena de nmeros 0.

Prob 8: En base a instrucciones disee un programa que efecte lo siguiente: 1. Lee una cadena binaria desde la memoria: - Si la cadena es par, lee otra cadena binaria y lo invierte. Ejm: BECA --> ACEB - Si es impar, obtiene el producto de dos nmeros naturales - Si es cero, termina la ejecucin del programa 2. El resultado lo almacena en memoria a. Muestre el diagrama de flujo (2p) b. Muestre la secuencia de instrucciones (4p) c. Simule el programa, declarando valores (4p) Solucin Interpretacin Inicio Leer CAD Si CAD=0 fin Sin Si CAD es par Leer CAD1 Invertir CAD1 Sin

Leer a, b Prod=a.b Guardar resultado Programa de instrucciones ORG 100 LDA CAD SZA HLT CIR SZE BUN Prod BUN Inv LDA a CMA INC STA Cont CLA ADD b ISZ Cont BUN Sum STA Prod BUN New LDA CAD1 4CIR AND F0F0 STA Cir LDA CAD1 4CIL AND 0F0F ADD Cir STA Invertir BUN New END

New

Ver

Prod

Sum

Inv

a, 3 b, 4 CAD1, CAD, FOFO, OFOF,

0xBECA 0x123X 0xF0F0 0x0F0F

Simulacin Los quiero ver!!!!