Hola, mi primer post. Quiero saber si alguien me puede resolver y/o explicar como hacer este codigo en el assembler que da Burín:
El bit 2 y el 3 reciben dos datos, si los dos son iguales; poner un 1 en el bit 7, y si son distintos; poner un 0 en el bit 7.
Principalmente lo que no entiendo es a que se refiere con bit, es un bit del registro o de la memoria?? Si es de la memoria, invento una dirección en la cual se reciben los datos? Como veran, de copmputación, un cero a la izquierda soy....
El codigo de operaciones usado es el que subieron en otro topic de apuntes de assembler de Burín, igual es medio genérico, me parece.
-R
AX=3533 BX=0030 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=16A9 ES=16A9 SS=16A9 CS=16A9 IP=0200 NV UP EI NG NZ AC PO CY
16A9:0200 A00200 MOV AL,[0002] DS:0002=33
-T
AX=3533 BX=0030 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=16A9 ES=16A9 SS=16A9 CS=16A9 IP=0203 NV UP EI NG NZ AC PO CY
16A9:0203 8A260300 MOV AH,[0003] DS:0003=35
-T
AX=3533 BX=0030 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=16A9 ES=16A9 SS=16A9 CS=16A9 IP=0207 NV UP EI NG NZ AC PO CY
16A9:0207 38E0 CMP AL,AH
-T
AX=3533 BX=0030 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=16A9 ES=16A9 SS=16A9 CS=16A9 IP=0209 NV UP EI NG NZ AC PO CY
16A9:0209 7445 JZ 0250
-T
AX=3533 BX=0030 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=16A9 ES=16A9 SS=16A9 CS=16A9 IP=020B NV UP EI NG NZ AC PO CY
16A9:020B B330 MOV BL,30
-T
AX=3533 BX=0030 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=16A9 ES=16A9 SS=16A9 CS=16A9 IP=020D NV UP EI NG NZ AC PO CY
16A9:020D 881E0700 MOV [0007],BL DS:0007=30
-T
AX=3533 BX=0030 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=16A9 ES=16A9 SS=16A9 CS=16A9 IP=0211 NV UP EI NG NZ AC PO CY
16A9:0211 CD20 INT 20
-E 0007
16A9:0007 30.
-
Vas a tener que completar para que te quede de esa manera (Te vas a dar cuenta cuando y como).
Te explico que son los "Comandos" utilizados:
Comando E: Escribis los datos en memoria.
Comando A: Es para que el programa se codifique en Assembler.
Comando U (Agregando la dirección inicial del PGM - En este caso 0200): Corroboras que el programa haya sido escrito bien, caso contrario se puede modificar.
Comando RIP: Estableces cual va a ser la primera instrucción a ejecutarse (Por defecto en 0100 - En este caso escribis 0200 luego de los ":").
Comando R: Verificas que la primera instrucción a ejecutar sea correcta.
Comando T: Ejecuta de a una instrucción (Por algo se hace en Debug, y es justamente por esto). Este comando se debe ejecutar hasta que la próxima instrucción a ejecutar sea INT 20 (Interrupción).
Comando E: Verificas que en la posición 0007 se encuentre el número correcto. En este caso 0 (O 30 en ASCII, ya que los números en ASCII van del 30 al 39), ya que después de la comparación (CMP) el Flag Zero tomo el valor de off (NZ).
El diagrama quedaría asi:
No puse algunos datos en la imagen porque me olvide
Es algo un tanto más jodido de explicar asi que cualquier cosa pregunta por MSN...
Espero que esto esté bien, si está mal me retan...
PD: Me niego a recomendar otro libro que no sea el de Ginzburg...
1ro: Porque es el único que conozco.
2do: Porque se la aguanta el libro (Solo que si queres entender tenés que comprar 2 libros - Unidad 1 y Unidad 3 de "Introducción general a la informática" - Y si, son los curros de Marito).
Hola JuanC, gracias por la respuesta, te digo la verdad, no entencí un carajo, porque no vimos nada de esos comandos, sólo vimos las funciones and xor or salto y las típicas operaciones de suma y cambio de posiciones, cargar registros, etc. Esto lo explico Burín el viernes pasado y este viernes es el parcial, la verdad que no entiendo nada. Sobretodo no entiendo a que se refiere con bit, si es una posición de memoria, no tendría que llamarse desde 00 hasta FF??
Si te encuentro por el msn, y no es mucha molestia, te mando el código que usamos (que seguro que debe ser una pavada para vos).
a este apunte se refiere lavo. es el q esta escaneado.
mira, la hice con burin y te digo q todos esos ejercicios los hice por analogia. es decir, anote 5 o 6 en clase de los q hacian los ñoños, trataba de enterlos, los hacia solo e iba tranqui al parcial. cuantos ejercicios de este tipo tenes anotados?
lo que imagine cuando vi el enunciado es lo siguiente:
viene un byte:
_ _ _ _ _ _ _ _
bits 7 - 0
cuando los bits 2 y 3 (de derecha a izquierda, el 3ero y 4to) son iguales, poner en 1 el bit 7 (el de mas a la izquierda)
Ejemplos:
(x significa que no importa si estan en 1 o en 0)
si viene
xxxx11xx
los bits 2 y 3 son iguales, pongo el bit 7 en 1, deberia quedar:
1xxx11xx
si viene
xxxx00xx
los bits 2 y 3 son iguales, pongo el bit 7 en 1
si viene
xxxx10xx
son distintos, pongo el bit 7 en 0, deberia quedar:
0xxx10xx
eso fue lo que interprete del enunciado, y con los operadores lógicos que vieron alcanza para resolverlo
Que bolas que fui...
Si es así, está perfecto como dice Stoma, pero como no dijeron nada de un byte, me tiré a pensar que con bit se refería a una posición de memoria (Ya sabemos que algunos profesores tiran cualquiera )...
Aca el que tiro cualquiera fui yo...
Tengo la resolución de este, nada mas que me falta un omando en un paso. Despues tengo unos enunciados mas, pero sin resolución.
Aca está la resolución medio incompleta...
Supongo que el 1C 1E sera un salto para comparar con algun registro, porque esa es la única forma que vimos de comparar, lo que no entiendo es como puedo comparar bits entre ellos con alguna operación, ya que sólo se usar los registros (que llevan mas de un bit)
Si alguien sabe.....
_________________ In poverta mia lieta scialo da gran signore
rimi ed inni d'amore.
Per sogni e per chimere e per castelli in aria
a este apunte se refiere lavo. es el q esta escaneado.
mira, la hice con burin y te digo q todos esos ejercicios los hice por analogia. es decir, anote 5 o 6 en clase de los q hacian los ñoños, trataba de enterlos, los hacia solo e iba tranqui al parcial. cuantos ejercicios de este tipo tenes anotados?
Tengo dos más, pero sin resolución, lo dió en una clase el tema, y me parece que esta medio mal dado todo....
_________________ In poverta mia lieta scialo da gran signore
rimi ed inni d'amore.
Per sogni e per chimere e per castelli in aria
a este apunte se refiere lavo. es el q esta escaneado.
mira, la hice con burin y te digo q todos esos ejercicios los hice por analogia. es decir, anote 5 o 6 en clase de los q hacian los ñoños, trataba de enterlos, los hacia solo e iba tranqui al parcial. cuantos ejercicios de este tipo tenes anotados?
Tengo dos más, pero sin resolución, lo dió en una clase el tema, y me parece que esta medio mal dado todo....
Lo primero es q no pusiste q los datos estan en la memoria AA
Cita:
Supongo que el 1C 1E sera un salto para comparar con algun registro
Sisi, ahí van los saltos : 1C: B426 y 1E: B526
Lo q hace no es comparar los bits, sino los registros...lo q me parece q no estas teniendo en cuenta es q el en el 14: 8312 hace la operacion "and" y ahi le queda q las unicas posibilidades van a ser o 0000 0000 o sino 0000 1100 y ahi, creando los registros q correspondan, va a ser las 2 comparaciones.
Bue no se si se entendio mucho, no soy buen profe ; cualquier cosa volveme a preguntar y veo si lo puedo explicar mejor
_________________ Como quien viaja a lomos de una yegua sombría,
por la ciudad camino, no preguntéis adónde.
Busco acaso un encuentro que me ilumine el día,
y no hallo más que puertas que niegan lo que esconden.
Ver tema siguiente Ver tema anterior Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker 365 Attacks blocked.