Está en la página 1de 3

Arquitectura de Computadores 2023-I (CCOMP3-1)

Laboratorio 02a: Aritmética de Números Enteros


Yván Jesús Túpac Valdivia
Universidad Católica San Pablo, Arequipa–Perú
5 de abril de 2023

1 Objetivos
- Comprender, modelar e implementar los algoritmos de Aritmética de números enteros: casos suma, multiplicación
con/sin signo y división [Stallings, 2010].

2 Material a utilizar
- Diapositivas “Representación de datos numéricos: Números Enteros”

- Libro Guı́a: Stallings, W. (2010). Computer Organization and Architecture: Designing for Performance. Prentice-
Hall, Upper Saddle River, NJ 07458, eighth edition

- Simulador CircuitVerse

- Lenguaje de Programación C++ / Python

3 [SO1] Trabajo para entregar en clase


3.1 Suma de enteros con signo
Se pide implementar en CircuitVerse un sumador binario de 8 bits (puede usar el elemento Adder existente en el
CircuitVerse) que soporte lo siguiente:

ˆ Sea capaz de hallar la suma S = A + B y también la resta S = A − B usando un bit de control Add/Sub. Para
esto deberá adicionar la lógica basada en puerta XOR que permite cambiar el signo de B de la figura 1.

k
A / cin

k
Adder / S =A±B
k cout
B / k
/
B or B̄

Add’ Sub

Figure 1: Sumador Complemento-2 con capacidad de resta.

1
ˆ Además, este circuito debe ser capaz de indicar si ocurrió overflow en la suma (o resta) mediante un LED, para
esto deberá implementar una lógica combinacional que sea 1 (true) ante los siguientes casos:

Ov = (Ak−1 ∧ Bk−1 ∧ S̄k−1 ) ∨ (Āk−1 ∧ B̄k−1 ∧ Sk−1 ) (1)

donde Ak−1 , Bk−1 , Sk−1 son los bits más significativos de las palabras A, B, S respectivamente.

4 [SO1, SO6] Algoritmo de división de enteros (PARA LA CASA)


El algoritmo de división de enteros, que sólo se aplica para enteros sin signo fue explicado en clase y tiene su diagrama
de flujo en la Figura 2:

START

A 0
M Divisor
Q Dividend
Count n

Shift left
A, Q

A A - M

No Yes
A 0?

Q0 0
Q0 1
A A +M

Count Count - 1

No Yes
Count = 0? END Quotient in Q
Remainder in A

Figure 2: Diagrama de Flujo del Algoritmo División Entera

donde:

A es una palabra binaria auxiliar de n bits

M es el multiplicando (palabra binaria de n bits)

Q es el multiplicador (palabra binaria de n bits)

n es la cantidad de bits de los factores a multiplicar

Se solicita implementar este algoritmo en Python, busque alguna librerı́a que ayude a manipular estructuras y op-
eraciones a nivel de bits.

Se espera los siguientes resultados:

1. El algoritmo puede ser configurado para soportar cualquier cantidad n de bits.

2. Debe implementar las rutinas de las operaciones internas: asignar valores de decimal a binario, cambio de signo
complemento a 2, suma binaria, resta complemento-2, corrimiento a la izquierda.

Finalizar y entregar un informe de ejecución de lo siguiente:


2
ˆ Los códigos fuente (archivos o link a repositorio) compilando y ejecutando sin errores.

ˆ Pruebas de funcionamiento con impresión en consola de la secuencia de resultados parciales y generando resultados
correctos usando valores entrados por consola para varios tamaños n de bits.

ATENCIÓN: Se verificará copia de códigos, favor háganlo Uds mismos

References
[Stallings, 2010] Stallings, W. (2010). Computer Organization and Architecture: Designing for Performance. Prentice
Hall, Upper Saddle River, NJ 07458, eighth edition.

También podría gustarte