Está en la página 1de 5

1.

Teniendo en cuenta los procesos mencionados la mejor opción seria utilizar un


microcontrolador, esto sería por su capacidad de ejecutar órdenes almacenadas en
memoria. Dado al proceso iterativo que se utiliza para mezclar y amasar los
ingredientes la mejor y más conveniente opción es el microcontrolador ya que su
composición hace que cumplan tareas específicas.
2.

a. A + B

0 1 1 1 1 1 0 0
+ 0 1 1 0 1 1 0 0

1 1 1 0 1 0 0 0

b. A * B

0 1 1 1 1 1 0 0
* 0 1 1 0 1 1 0 0

0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0
1 1 1 1 1 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 0 0
1 1 1 1 1 0 0
0 0 0 0 0 0 0 0

1 1 0 1 0 0 0 1 0 1 0 0 0 0

c. A - B

0 1 1 1 1 1 0 0
- 0 1 1 0 1 1 0 0

Se le aplica complemento a 2 al número B

0 1 1 1 1 1 0 0

cA2 1 0 0 1 0 0 1 1
Se realiza la suma

0 1 1 1 1 1 0 0
+ 1 0 0 1 0 0 1 1

1 0 0 0 0 1 1 1

d. A / B

0 1 1 1 1 1 0 0
/ 0 1 1 0 1 1 0 0

3.

A = 0x9141
B = 0xFA3D

a. A AND B

A
1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1

B
1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1

Resultado guardado en C

1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1

b. A OR B

A
1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1

B
1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1

Resultado guardado en C

1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1

c. A XOR B
A
1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1

B
1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1

Resultado guardado en C

1 1 0 1 0 1 1 0 1 1 1 1 1 0 0

d. A NOR B

A
1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1

B
1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1

Resultado guardado en C

0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0

4.

mov dx,0 #Se asigna 0 al registro dx que es donde se almacena el residuo


mov ax,num #al registro ax se le asigna la variable num
mov bx,d # al registro bx se le asigna la variable d
div bx #el registro ax se divide por bx y el residuo se almacena en dx
cmp dx,0d #cmp nos compara si el residuo es mayor o igual a cero
jz par #si el residuo (registro dx) es igual a 0, jz salta a la etiqueta par
jmp impar # si el residuo (registro dx) es mayor que 0, jmp salta a la etiqueta
impar

par:
sub ax,4 #si el número es par le restamos 4
mov dx,4 #al registro dx le asignamos 4 (el multiplicando)
mul dx #al número almacenado en el registro ax lo multiplicamos por 4
impar:
sub ax,1 #si el número es impar le restamos 1

miniMips

mov $res,0 #Se asigna 0 al registro $res que es donde se almacena el residuo
mov $num1,num #al registro $num1 se le asigna la variable num
mov $num2,d # al registro $num2 se le asigna la variable d
div $s1,$s2 # se divide $s1 entre $s2 y el residuo se almacena en $s4
beq $res,0,par #la instrucción beq compara si el registro $res es igual a 0, si esto
se
#cumple salta a la etiqueta par

bne $res,0,impar #la instrucción bne compara si el registro $res es diferente a 0, si


esto
#se cumple salta a la etiqueta impar

par:
sub $num1,$num1,1 #si el número es par al registro $num se le resta 4
mov $res,8 #al registro $res se le asigna el valor 4
mult $num1,$num1,$res #el registro $num1 se multiplica por 4

impar:
sub $num1,$num1,1 #si el número es impar, al registro $num1 se le resta 1

5.
add $s0, $zero, $zero # $s0 = $zero + $zero
loop:
beq $t9, $zero, endloop #si ( a = b ) el ciclo termina
add $s0, $s0, $t8 # $s0 = $s0 + a
sub $t9, $t9, 1 #b=b-1
j loop # permanece en el ciclo
endloop: # sale del ciclo
add $s0, $s0, 50 # $s0 = $s0 + 50
add $t10, $s0, $zero # $t10 = $s0 + $zero

Para $zero = 1, a = 4, b = 7

$s0 = 1 + 1

1 iteración

add: $s0 = $s0 + $t8 = 6 iteración $zero a b $s0


sub: b = b – 1 = 8 0 1 4 7 2
beq: a != b 1 1 4 6 6
permanece ciclo

2 iteración

add: $s0 = $s0 + $t8 = 10 iteración $zero a b $s0


sub: b = b – 1 0 1 4 5 10
beq: a != b
permanece ciclo
3 iteración

add: $s0 = $s0 + $t8 = 14 iteració $zero a b $s0


sub: b = b – 1 n
0 1 4 4 14
beq: a == b
sale del ciclo

$s0 = 14 + 50 = 64
$t10 = 14 + 1 = 1

También podría gustarte