Autor |
Mensaje |
Megu*~
Nivel 8
Registrado: 21 Feb 2011
Mensajes: 712
Ubicación: Prontera
Carrera: Naval
|
|
Ando media perdida con el siguiente ejercicio de Assembler: "Por el bit 4 y 5 ingresan datos y se pide si los dos son iguales poner un 0 en el bit 7 y un 1 en el bit 6. Si los dos son distintos al revez"
Primero pasé los bits que me da el enunciado:
bit 4 y 5: 00110000= 30
bit 7: 10000000= 80
bit 6: 01000000= 40
10 11CC
12 2030
14 8210
16 B2_ _
Y ahí quedé. Lo que no entiendo es lo de si son iguales o si son distintos. En el and de la instrucción 14 me quedó:
????????
00110000
------------
00??0000
Si son iguales puede dar 00 o 11 y si son distintos puede dar 01 o 10, pero no sé cómo escribirlo en forma de instrucción -_-
Gracias
|
|
|
|
_________________
|
|
|
|
|
Hache
Nivel 8
Registrado: 13 May 2010
Mensajes: 574
Carrera: Informática
|
|
Megu*~ escribió:
|
Ando media perdida con el siguiente ejercicio de Assembler: "Por el bit 4 y 5 ingresan datos y se pide si los dos son iguales poner un 0 en el bit 7 y un 1 en el bit 6. Si los dos son distintos al revez"
Primero pasé los bits que me da el enunciado:
bit 4 y 5: 00110000= 30
bit 7: 10000000= 80
bit 6: 01000000= 40
10 11CC
12 2030
14 8210
16 B2_ _
Y ahí quedé. Lo que no entiendo es lo de si son iguales o si son distintos. En el and de la instrucción 14 me quedó:
????????
00110000
------------
00??0000
Si son iguales puede dar 00 o 11 y si son distintos puede dar 01 o 10, pero no sé cómo escribirlo en forma de instrucción -_-
Gracias
|
No sé qué es lo que se permite y qué no, pero ahora entiendo por qué hay gente que odia la materia computación. Estas cosas no deberían verlas ni en figurita. Dicho esto propongo una solución (con completo desconocimiento de la materia como ya he dicho). Espero no confundir los códigos (por las dudas viene comentado)
10 11CC ;R1 = SARASA
12 2020 ;R0 = 20
14 8210 ;R2 = bit 5 de SARASA en el bit 5
16 A201 ;R2 = bit 5 de SARASA en el bit 4
18 2010 ;R0 = 10
1A 8310 ;R3 = bit 4 de SARASA en el bit 4
1C 9123 ;R1 = R2 XOR R3 -> 0 si son iguales, 10 si son distintos
1E B124
20 2080 ;Son distintos, R0=80
22 C000
24 2040 ;Son iguales, R0=40
26 C000
Estoy dejando el resultado en R0 y frenando la ejecución (como no especificaste....)
|
|
|
|
|
|
|
|
|
Granada
Nivel 9
Edad: 31
Registrado: 16 Ago 2011
Mensajes: 1325
Carrera: Química
|
|
Es una goma esto, hoy Grossi me garchó parado con un ejercicio de estos...
|
|
|
|
_________________
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
|
|
|
|
|
|
Megu*~
Nivel 8
Registrado: 21 Feb 2011
Mensajes: 712
Ubicación: Prontera
Carrera: Naval
|
|
Hache escribió:
|
Megu*~ escribió:
|
Ando media perdida con el siguiente ejercicio de Assembler: "Por el bit 4 y 5 ingresan datos y se pide si los dos son iguales poner un 0 en el bit 7 y un 1 en el bit 6. Si los dos son distintos al revez"
Primero pasé los bits que me da el enunciado:
bit 4 y 5: 00110000= 30
bit 7: 10000000= 80
bit 6: 01000000= 40
10 11CC
12 2030
14 8210
16 B2_ _
Y ahí quedé. Lo que no entiendo es lo de si son iguales o si son distintos. En el and de la instrucción 14 me quedó:
????????
00110000
------------
00??0000
Si son iguales puede dar 00 o 11 y si son distintos puede dar 01 o 10, pero no sé cómo escribirlo en forma de instrucción -_-
Gracias
|
No sé qué es lo que se permite y qué no, pero ahora entiendo por qué hay gente que odia la materia computación. Estas cosas no deberían verlas ni en figurita. Dicho esto propongo una solución (con completo desconocimiento de la materia como ya he dicho). Espero no confundir los códigos (por las dudas viene comentado)
10 11CC ;R1 = SARASA
12 2020 ;R0 = 20
14 8210 ;R2 = bit 5 de SARASA en el bit 5
16 A201 ;R2 = bit 5 de SARASA en el bit 4
18 2010 ;R0 = 10
1A 8310 ;R3 = bit 4 de SARASA en el bit 4
1C 9123 ;R1 = R2 XOR R3 -> 0 si son iguales, 10 si son distintos
1E B124
20 2080 ;Son distintos, R0=80
22 C000
24 2040 ;Son iguales, R0=40
26 C000
Estoy dejando el resultado en R0 y frenando la ejecución (como no especificaste....)
|
Gracias Hache por contestar
Por qué 2020 en vez de 2030 en la 12? Qué sería la instrucción que empieza con A? No me dejan poner dos fines (C000) e_e
|
|
|
|
_________________
|
|
|
|
|
Hache
Nivel 8
Registrado: 13 May 2010
Mensajes: 574
Carrera: Informática
|
|
Megu*~ escribió:
|
Hache escribió:
|
Megu*~ escribió:
|
Ando media perdida con el siguiente ejercicio de Assembler: "Por el bit 4 y 5 ingresan datos y se pide si los dos son iguales poner un 0 en el bit 7 y un 1 en el bit 6. Si los dos son distintos al revez"
Primero pasé los bits que me da el enunciado:
bit 4 y 5: 00110000= 30
bit 7: 10000000= 80
bit 6: 01000000= 40
10 11CC
12 2030
14 8210
16 B2_ _
Y ahí quedé. Lo que no entiendo es lo de si son iguales o si son distintos. En el and de la instrucción 14 me quedó:
????????
00110000
------------
00??0000
Si son iguales puede dar 00 o 11 y si son distintos puede dar 01 o 10, pero no sé cómo escribirlo en forma de instrucción -_-
Gracias
|
No sé qué es lo que se permite y qué no, pero ahora entiendo por qué hay gente que odia la materia computación. Estas cosas no deberían verlas ni en figurita. Dicho esto propongo una solución (con completo desconocimiento de la materia como ya he dicho). Espero no confundir los códigos (por las dudas viene comentado)
10 11CC ;R1 = SARASA
12 2020 ;R0 = 20
14 8210 ;R2 = bit 5 de SARASA en el bit 5
16 A201 ;R2 = bit 5 de SARASA en el bit 4
18 2010 ;R0 = 10
1A 8310 ;R3 = bit 4 de SARASA en el bit 4
1C 9123 ;R1 = R2 XOR R3 -> 0 si son iguales, 10 si son distintos
1E B124
20 2080 ;Son distintos, R0=80
22 C000
24 2040 ;Son iguales, R0=40
26 C000
Estoy dejando el resultado en R0 y frenando la ejecución (como no especificaste....)
|
Gracias Hache por contestar
Por qué 2020 en vez de 2030 en la 12? Qué sería la instrucción que empieza con A? No me dejan poner dos fines (C000) e_e
|
A efectos prácticos es lo mismo en esa instrucción poner un 20 o un 30, como después haces un AND te sobrevive como máximo un bit.
30 = 00110000
20 = 00100000
10 = 00010000
La instrucción A201 sería rotar el registro R2 un bit a la derecha.
Lo de los dos C000 lo solucionas con otro salto (o alguna solución mas creativa, como por ejemplo tirarle onda al profe )
|
|
|
|
|
|
|
|
|
Megu*~
Nivel 8
Registrado: 21 Feb 2011
Mensajes: 712
Ubicación: Prontera
Carrera: Naval
|
|
Hache escribió:
|
Megu*~ escribió:
|
Hache escribió:
|
Megu*~ escribió:
|
Ando media perdida con el siguiente ejercicio de Assembler: "Por el bit 4 y 5 ingresan datos y se pide si los dos son iguales poner un 0 en el bit 7 y un 1 en el bit 6. Si los dos son distintos al revez"
Primero pasé los bits que me da el enunciado:
bit 4 y 5: 00110000= 30
bit 7: 10000000= 80
bit 6: 01000000= 40
10 11CC
12 2030
14 8210
16 B2_ _
Y ahí quedé. Lo que no entiendo es lo de si son iguales o si son distintos. En el and de la instrucción 14 me quedó:
????????
00110000
------------
00??0000
Si son iguales puede dar 00 o 11 y si son distintos puede dar 01 o 10, pero no sé cómo escribirlo en forma de instrucción -_-
Gracias
|
No sé qué es lo que se permite y qué no, pero ahora entiendo por qué hay gente que odia la materia computación. Estas cosas no deberían verlas ni en figurita. Dicho esto propongo una solución (con completo desconocimiento de la materia como ya he dicho). Espero no confundir los códigos (por las dudas viene comentado)
10 11CC ;R1 = SARASA
12 2020 ;R0 = 20
14 8210 ;R2 = bit 5 de SARASA en el bit 5
16 A201 ;R2 = bit 5 de SARASA en el bit 4
18 2010 ;R0 = 10
1A 8310 ;R3 = bit 4 de SARASA en el bit 4
1C 9123 ;R1 = R2 XOR R3 -> 0 si son iguales, 10 si son distintos
1E B124
20 2080 ;Son distintos, R0=80
22 C000
24 2040 ;Son iguales, R0=40
26 C000
Estoy dejando el resultado en R0 y frenando la ejecución (como no especificaste....)
|
Gracias Hache por contestar
Por qué 2020 en vez de 2030 en la 12? Qué sería la instrucción que empieza con A? No me dejan poner dos fines (C000) e_e
|
A efectos prácticos es lo mismo en esa instrucción poner un 20 o un 30, como después haces un AND te sobrevive como máximo un bit.
30 = 00110000
20 = 00100000
10 = 00010000
La instrucción A201 sería rotar el registro R2 un bit a la derecha.
Lo de los dos C000 lo solucionas con otro salto (o alguna solución mas creativa, como por ejemplo tirarle onda al profe )
|
Thx Hache. Me quedo con la opción de usar otro salto
Entendí Lo terminé haciendo así sin el rotar y sin XOR:
10 11CC
12 2030
14 8210
16 B228
18 2000
1A B228
1C 2380
1E 7313
20 24BF
22 8334
24 33CC
26 B032
28 237F
2A 8313
2C 2440
2E 7334
30 33CC
32 C000
|
|
|
|
_________________
|
|
|
|
|
Hache
Nivel 8
Registrado: 13 May 2010
Mensajes: 574
Carrera: Informática
|
|
Como se nota que los informáticos no cursamos esa materia. El emulador mas decente disponible es horrible (y escrito en java )
|
|
|
|
|
|
|
|
|
leandrob_90
Nivel 9
Edad: 34
Registrado: 17 Ago 2009
Mensajes: 1586
Ubicación: Mundo de los Ryuo Shin
Carrera: Mecánica
|
|
qué onda ese emulador? me interesa... dónde se consigue?
|
|
|
|
_________________ leandrob_90
Revivamos el Chat-FIUBA
¿Qué te pasó foro? Antes eras chévere.
Por un ping-pong libre, popular y soberano.
|
|
|
|
|
Hache
Nivel 8
Registrado: 13 May 2010
Mensajes: 574
Carrera: Informática
|
|
|
|
|
leandrob_90
Nivel 9
Edad: 34
Registrado: 17 Ago 2009
Mensajes: 1586
Ubicación: Mundo de los Ryuo Shin
Carrera: Mecánica
|
|
Hache escribió:
|
https://github.com/cyberpython/BMach
|
gracias Hache
saludos
|
|
|
|
_________________ leandrob_90
Revivamos el Chat-FIUBA
¿Qué te pasó foro? Antes eras chévere.
Por un ping-pong libre, popular y soberano.
|
|
|
|
|
Megu*~
Nivel 8
Registrado: 21 Feb 2011
Mensajes: 712
Ubicación: Prontera
Carrera: Naval
|
|
Hache escribió:
|
https://github.com/cyberpython/BMach
|
Thx por el emulador, igual no me anda bah, me tira error ._.
|
|
|
|
_________________
|
|
|
|
|
Hache
Nivel 8
Registrado: 13 May 2010
Mensajes: 574
Carrera: Informática
|
|
A mi tampoco me funcionaba hasta que me di cuenta de que había que poner los códigos de la forma 0xC000 (sin dejar espacio ni antes ni después).
|
|
|
|
|
|
|
|
|
Megu*~
Nivel 8
Registrado: 21 Feb 2011
Mensajes: 712
Ubicación: Prontera
Carrera: Naval
|
|
Hache escribió:
|
A mi tampoco me funcionaba hasta que me di cuenta de que había que poner los códigos de la forma 0xC000 (sin dejar espacio ni antes ni después).
|
Wii, ahora sí anda Igual no pasa del primer branch lol, queda en "JUMP to memory address 0x28 if register 0x2 contents equal zero"
|
|
|
|
_________________
|
|
|
|
|
|