<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="static/style.xsl"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2026-07-16T01:15:38Z</responseDate><request verb="GetRecord" identifier="oai:riubu.ubu.es:10259/11914" metadataPrefix="rdf">https://riubu.ubu.es/oai/request</request><GetRecord><record><header><identifier>oai:riubu.ubu.es:10259/11914</identifier><datestamp>2026-07-15T00:05:23Z</datestamp><setSpec>com_10259_9416</setSpec><setSpec>com_10259_5087</setSpec><setSpec>com_10259_2728</setSpec><setSpec>col_10259_9417</setSpec></header><metadata><rdf:RDF xmlns:rdf="http://www.openarchives.org/OAI/2.0/rdf/" xmlns:doc="http://www.lyncode.com/xoai" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://dspace.org/ds/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ow="http://www.ontoweb.org/ontology/1#" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/rdf/ http://www.openarchives.org/OAI/2.0/rdf.xsd">
<ow:Publication rdf:about="oai:riubu.ubu.es:10259/11914">
<dc:title>Simulador del microprocesador 80386: un enfoque orientado a docencia</dc:title>
<dc:creator>González Pampliega, Miguel</dc:creator>
<dc:contributor>Sánchez Ortega, Pedro L.</dc:contributor>
<dc:contributor>Universidad de Burgos. Escuela Politécnica Superior</dc:contributor>
<dc:subject>Simulador</dc:subject>
<dc:subject>Ensamblador</dc:subject>
<dc:subject>i386</dc:subject>
<dc:subject>Ciberseguridad</dc:subject>
<dc:subject>Compilador</dc:subject>
<dc:subject>Llamadas al sistema</dc:subject>
<dc:subject>ABI</dc:subject>
<dc:subject>Compilación estática</dc:subject>
<dc:subject>ELF-32</dc:subject>
<dc:subject>CWE</dc:subject>
<dc:subject>Exploits</dc:subject>
<dc:subject>32-bit</dc:subject>
<dc:subject>Docencia</dc:subject>
<dc:subject>Simulator</dc:subject>
<dc:subject>Assembly</dc:subject>
<dc:subject>Cybersecurity</dc:subject>
<dc:subject>Compiler</dc:subject>
<dc:subject>System calls</dc:subject>
<dc:subject>Static Compiling</dc:subject>
<dc:subject>Teaching</dc:subject>
<dc:description>El objetivo de este trabajo es la concepción y posterior desarrollo&#xd;
de un simulador del microprocesador 80386 desarrollado por Intel.&#xd;
Dicho procesador, también conocido como i386, es un procesador de&#xd;
32 bits. La finalidad del simulador reside en ser utilizado para docencia en varias asignaturas de la titulación de Ingeniería Informática&#xd;
de la Universidad de Burgos u otras universidades. Algunos ejemplos&#xd;
de estas asignaturas podrían ser Fundamentos de Computadores o&#xd;
Ciberseguridad.&#xd;
La idea principal del simulador, es ofrecer una interfaz clara y sencilla&#xd;
al usuario, que permita seguir y comprender la ejecución de programas&#xd;
en ensamblador paso a paso, tanto para aprender cómo funcionan&#xd;
los microprocesadores y su programación, como para entender la&#xd;
explotación de programas vulnerables con CWE conocidos. Esto se&#xd;
consigue a través de la consecución de que el simulador pueda ejecutar&#xd;
ficheros ejecutables compilados para el i386 (o bien ELF32 o bien&#xd;
bytecode ejecutable sin cabeceras).&#xd;
Esta herramienta está concebida para ser ejecutada en un entorno&#xd;
Linux, a través de la línea de comandos. Este entorno resulta ideal&#xd;
por su facilidad para escribir scripts, compilar ejecutables, efectuar&#xd;
redirecciones a descriptores de ficheros, la utilización de tuberías,&#xd;
desensamblar programas en hexadecimal, y sobre todo, para la ejecución de syscalls o llamadas al sistema de Linux usando la ABI del i386.&#xd;
De manera adicional, se ha desarrollado, como otra rama del mismo&#xd;
proyecto, una interfaz gráfica que permite ejecutar el simulador desde&#xd;
el sistema operativo Windows. Esta rama está orientada a la docencia&#xd;
de Fundamentos de Computadores, ya que algunas funcionalidades&#xd;
avanzadas han sido recortadas por su incompatibilidad en Windows.&#xd;
Para ello, el software se implementa como una librería multiplataforma que pueda ser compilada y utilizada de igual manera en&#xd;
distintos sistemas operativos, donde lo único que varía es la interfaz&#xd;
gráfica o la manera en la que se compila el programa final.</dc:description>
<dc:description>The aim of this project is the conception and subsequent development of an Intel 80386 microprocessor simulator. This microprocessor,&#xd;
widely known as the i386, is a 32-bit CPU. The main goal of the&#xd;
simulator is to serve as a teaching resource for several subjects within&#xd;
the Computer Engineering Degree at the University of Burgos (or&#xd;
any other university), including Cybersecurity and Computer Fundamentals.&#xd;
The main idea of the simulator is to provide a clean and intuitive interface to the user, that allows them to follow and comprehend&#xd;
the execution of assembly programs step by step. This makes it possible to learn how microprocessors work (and their programming) while&#xd;
also demonstrating how vulnerable programs, with known CWEs, can&#xd;
be exploited. This is achieved by enabling the simulator to execute&#xd;
both ELF32 and assembly programs.&#xd;
This tool is designed to be run in a Linux environment, through&#xd;
the command line. Such environment is particularly suitable due&#xd;
to its capacity to run scripts, compile object files, use pipes and&#xd;
redirections, disassemble programs to hexadecimal code, and above&#xd;
all, to execute system calls using the Linux i386 ABI.&#xd;
In addition, a Graphical User Interface (GUI) has been developed&#xd;
as another branch of the same project, allowing the simulator to be&#xd;
executed under the Windows operating system. This branch is mainly&#xd;
focused on teaching Computer Fundamentals, since some advanced&#xd;
functionalities have been removed due to their incompatibility with&#xd;
Windows.&#xd;
To achieve this, the software has been implemented as a cross-platform&#xd;
library that can be compiled and used in the same way across different&#xd;
operating systems, where only the graphical interface or the method&#xd;
used to compile the final program varies.</dc:description>
<dc:date>2026-07-14T07:41:47Z</dc:date>
<dc:date>2026-07-14T07:41:47Z</dc:date>
<dc:date>2026-05</dc:date>
<dc:type>info:eu-repo/semantics/bachelorThesis</dc:type>
<dc:identifier>https://hdl.handle.net/10259/11914</dc:identifier>
<dc:language>spa</dc:language>
<dc:rights>http://creativecommons.org/licenses/by-nc-nd/4.0/</dc:rights>
<dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
<dc:rights>Attribution-NonCommercial-NoDerivatives 4.0 Internacional</dc:rights>
</ow:Publication>
</rdf:RDF></metadata></record></GetRecord></OAI-PMH>