Autor |
Mensaje |
hhgg
Nivel 0
Edad: 83
Registrado: 02 Ene 2012
Mensajes: 1
Carrera: No especificada

|
|
Yo sigo sin entender como se hace , parece que en las ultimas cursadas no se dio assembler con contador , por eso no puedo entenderlo.Si alguien puede hacer un ejemplo seria bueno.
|
|
|
|
|
|
 |
    |
 |
Granada
Nivel 9

Edad: 30
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química

|
|
Ponele, 3 x 2 y cargar el resultado en la celda AB.
20 11 Cargar en el registro cero el numero 3 (en el registro cero, para poder usar la instruccion B como un "if").
21 10 Cargar en el registro uno el 2.
22 01 Cargar en el registro dos el 1.
23 01 Cargar en el registro 3 el 1. Estos dos unos son para el contador.
24 10 Cargo nuevamente un sumando en otro registro distinto, el 4 en este caso.
54 41 Sumar los registros cuatro y uno (2+2), y cargar el resultado en el registro 4(lo sobreescribo).
52 23 Aca esta el contador, sumo los unos de los registros 2 y 3, y lo sobreescribo en el reg. 2. En este caso como es el primer ciclo, seria 1 + 1.
B2 34 Como la idea es hacer 2+2+2, la suma se va a repetir hasta que el contador sea igual al sumando cargado en la celda 00, el 3 en este caso.
Si es igual, entonces terminé, salto a la celda 34, donde está la indicacion de guardar la suma.
B0 54 B0 era un salto incondicional, entonces, si la instruccion B2 34 es falsa (el contador es distinto del sumando del registro 0), volvemos al inicio del ciclo, en la celda 54.
34 AB Como el resultado de la suma estaba en el registro 4, muevo ésto a la celda pedida, en este caso AB.
C0 00 Fin.
|
|
|
|
_________________
koreano escribió:
|
Una de las mentiras mas grandes: "si pasás el CBC, el resto es barranca abajo".
Después es "cuando aprobás AlgebraII/AnalisisII es barranca abajo".
Después es "después de FísicaII es cuestión de tiempo nomás".
No te dejes engañar, ES UNA PAJA ESTO Y CADA VEZ PEOR
|
|
|
 |
    |
 |
Granada
Nivel 9

Edad: 30
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química

|
|
No se si tendrá algun error, algun informatico que lo chequee
|
|
|
|
_________________
koreano escribió:
|
Una de las mentiras mas grandes: "si pasás el CBC, el resto es barranca abajo".
Después es "cuando aprobás AlgebraII/AnalisisII es barranca abajo".
Después es "después de FísicaII es cuestión de tiempo nomás".
No te dejes engañar, ES UNA PAJA ESTO Y CADA VEZ PEOR
|
|
|
 |
    |
 |
echoes
Nivel 4

Edad: 31
Registrado: 04 May 2010
Mensajes: 103
Carrera: Química

|
|
intento resolver el ejercicio para que quede para el futuro no tengo idea como intercambiar el bit 2 con el 5 (puede ser con la instrucción A (rotar), no tengo ganas de pensarla:
02 118D
04 128D
06 107C
08 2300
0A 2401
0C 5221
0E 5343
10 B214
12 BOOC
14 32FF
16 2024
18 8102
1A B126
1C 2000
1E B126
20 2024
22 9110
24 318D
26 20FF
28 9110
2A 318D
2C C000
Pd: puede contener errores, recuerdo que del registro 20 al 24 está mal pero no estoy seguro como hacerlo
|
|
|
|
|
|
 |
    |
 |
Ezeudu
Nivel 2
Edad: 31
Registrado: 24 Feb 2012
Mensajes: 5

|
|
Para intercambiar los bits 2 y 5 es facil porque sabes que son distintos entonces haces un Xor con el 2 4 [el mismo que usaste para aislar los bits] y listo, te va a cambiar el bit 2 y 5 (en definitiva no te los cambia de lugar, sino que cambia su simbolo y como son distintos parece como si los cambiaste de lugar)
|
|
|
|
|
|
 |
    |
 |
Ezeudu
Nivel 2
Edad: 31
Registrado: 24 Feb 2012
Mensajes: 5

|
|
Va el ejercicio completo resuelto, debe estar bien, si detectan error avisenme.
"Hacer un programa que multiplique un número que se encuentra en la posición de memoria 8D con otro que se encuentra en 7C. Averiguar si el resultado tiene iguales los bits 2 y 5. Caso afirmativo guardar el complemento a la base del resultado. Caso contrario intercambiar los bits 2 y 5"
00 2400 ; en este registro voy a acumular uno de los numeros
02 118D ; (num que voy a acumular)
04 127D ; (num que voy a comparar con contador)
06 2000 ; creo el 00 en el R0
08 2301 ; creo el 01 en R3 para ir sumando de a uno y asi contar
0A B128 ;
0C B228 ; comparo que ninguno de los numeros sea 0
0E 5441 ; acumulo el 8D
10 5003 ; cuento cuantas veces hice el paso anterior
12 B216 ; si 7D = contador, salto
14 B00E ; son distintos entonces repito el acumulador y contador
16 2024 ; creo el | 0010 0100 | para aislar los bits 2 y 5
18 8304 ; aislo los bits
1A B328 ; si son los dos bits 1, salta
1C 2000 ; creo el 00 para comparar
1E B328 ; si son los dos bits 0 salta
20 2024 ; vuelvo a crear el |0010 0100| (esto pasa si los bits difieren)
22 9404 ; hago un Xor lo que me alteraria los bits 2 y 5
24 348D ; guardo en 8D el resultado de la mul con los bits cambiados
26 B032 ;salto incondicional al final
28 20FF ;creo el |1111 1111| (esto pasa si lis bits son iguales)
2A 2301 ; creo el |0000 0001|
2C 9404 ; Xor con FF para sacar el Cb-1
2E 5443 ; sumo 1 para sacar el Cb
30 348D ;guardo el Cb del resultado en la memoria
32 C000 ; fin del programa
|
|
|
|
|
|
 |
    |
 |
muguer
Nivel 2
Registrado: 05 Dic 2011
Mensajes: 7
Carrera: Mecánica

|
|
justo lo hice hoy tambien, tengo un par de pasos mas, aca paso el resuelto:
10 118d
12 107C
14 2301
16 2400
18 5434
1A 5616
1C B420
1E B018
20 2024
22 8206
24 B244
26 2000
28 B244
2A 2004
2C 8360
2E B338
30 24DF
32 2504
34 8764
36 7875
38 B04C
3A 24FB
3C 2520
3E 8764
40 7875
42 B04C
44 24FF
46 2501
48 9746
4A 5875
4C 388D
4E C000
Me olvide una cosa y es de guardar los resultado en la memoria 8D, solo lo hice con la ultima, me acabo de dar cuenta y ya copie todo...
|
|
|
|
|
|
|
    |
 |
_facundo
Nivel 3
Registrado: 30 Sep 2012
Mensajes: 45

|
|
|
    |
 |
koreano
Nivel 9

Registrado: 15 Jul 2010
Mensajes: 1796
Carrera: No especificada

|
|
Mientras que no tengan que memorizar el ISA..
|
|
|
|
|
|
|
    |
 |
|