Saltar a contenido

Compiling, Assembling, Linking and Loading (CALL)

Notas Importantes: Multiplicación y División

  • La multiplicación de enteros de n bytes puede generar enteros de hasta 2n bytes
  • La multiplicación es una operación mucho más costosa que la suma
  • RISC-V maneja la multiplicación de la siguiente forma: mul rd, rs1, rs2 multiplica rs1 y rs2 y deja la parte baja del resultado en rd, mulh rd, rs1, rs2 multiplica rs1 y rs2 y deja la parte alta del resultado en rd.
  • Para la división existen tambien dos operaciones: div rd, rs1, rs2 que realiza la división entera rs1/rs2 y coloca el resultado en rd, y rem rd, rs1, rs2 qye realiza una división entera rs1/rs2 y coloca el residuo en rd

Interpretación vs Traducción

Un programa en lenguajes compilados, como C, tiene los siguientes niveles de representación:

Stack de Traducción
Lenguaje de Alto Nivel: C
Lenguaje Ensamblador: RISC-V Assembler
Código de Máquina: RISC-V Machine Code
Hardware: Compuertas Lógicas, Transistores

Ventajas de Traducción

  • Se hace unicamente una vez
  • Es muy rapida en tiempo de ejecución
  • Nos da cierto nivel de privacidad en el código fuente: podemos distribuir unicamente el archivo ya compilado

Ventajas de Interpretación

  • No se necesita compilarlo mós de una vez para una arquitectura y sistema operativo particulares
  • No se tiene que recompilar el archivo luego de hacer un cambio
  • Un archivo corre sobre todas las combinaciones de sistema operativo y arquitectura siempre que se tenga el interprete instalado