Powered By Blogger

lunes, 14 de noviembre de 2011

Practica # 2.- Suma de 3 numeros


CÓDIGO:
;Programa Suma de 3 numeros
pila segment para stack "stack"
dw 32 dup(0)
pila ends
datos segment para "datos"
num1 dw 20
num2 dw 30
num3 dw ?
datos ends
codigo segment para "codigo"
empieza proc far
assume cs: codigo, ds:datos, ss:pila
mov ax, datos
mov ds, ax
mov ax, num1
mov ax, num2
mov num3, ax
mov dx, num3
mov ax, 4c00h
int 21h
empieza endp
codigo ends
end empieza

suma3.asm

jueves, 13 de octubre de 2011

Practica # 1.- COMPILACIONES EN .ASM WINDOWS-TAMS

AQUI SE PUEDE APRECIAR CADA UNO DE  LOS PROGRAMAS ENSAMBLADORES.....EN  EL SIMBOLO DEL SISTEMA   (TASM).

holamundo.ASM

cadenacaracteres.ASM

cicloloop.ASM


mayusculas_minusculas.ASM


Practica.ASM


suma3numeros.ASM


CADA UNO DE ELLOS COMPILADO...!!EN TASM USANDO SOLAMENTE TASM.EXE Y TLINK.EXE..

2DO PARCIAL PORTADA




sábado, 1 de octubre de 2011

PRACTICA # 6: ¿Como compilar un archivo de extension . ASM en Linux . . ?



ANTES QUE OTRA COSA... TENER INSTALADO EL PROGRAMA "NASM" DE LINUX.

Programa Principal "HolaMundo.asm" :


global _start

section .data
hello db "Hello, World!", 10
length equ $-hello

section .text

_start:
mov eax, 4 ; write to file
mov ebx, 1 ; STDOUT handle
mov ecx, hello ; our message
mov edx, length ; size of message
int 80h ; execute the syscall

xor ebx, ebx ; send 0 as 'exit code'
mov eax, 1 ; terminate process
int 80h ; execute the syscall

La forma de llamarlo en la Terminal es la siguiente:


  1. nasm -f elf holamundo.asm
  2. ld -o holamundo holamundo.o
  3. ./holamundo





Familia Intel 80x86

El primer microprocesador que apareció en el mercado fue el 4004 de INTEL, por encargo de la compañia de calculadoras Busicom, a finales de 1970. Este procesador tenia 2,250 transistores, trabajaba con datos de cuatro bits y realizaba cerca de 60,000 operaciones por segundo. En abril de 1971 INTEL introdujo el 8008, el cual trabajaba con datos de 8 bits. Y dos años mas tarde introdujo el 8080, dando inicio a la familia de procesadores de INTEL 80x86.

La familia de microprocesadores de INTEL 80x86 tiene su predecesor directo en el 8080, que es un procesador de 8 bits y con 10 lineas de direcciones, y que utiliza modos de direccionamiento directos, es decir, la dirección que genera es la dirección física de memoria.


Características más importantes: Los procesadores INTEL 80x86
8088 8086 80286 80386 80486 PENTIUM PENTIUM II
Tamaño de los registros 16 16 16 32 32 32 32
BUS de datos 8 16 16 16/32 16/32 64
BUS de direcciones 20 20 24 24 32 32 32
Memoria segmentada SI SI SI SI SI SI SI
Memoria paginada NO NO NO 4KB 4KB 4MB/4GB 4MB/4GB
Memoria virtual NO NO NO 64 terabytes 64 terabytes 64 terabytes 64 terabytes
Multitareas NO NO SI SI SI SI SI
Multiprocesamiento NO NO NO SI SI SI SI
Modo real SI SI SI SI SI
Modo protegido SI SI SI SI SI
Modo virtual SI SI SI SI
Banderas virtuales SI SI
FPU 8087 8087 80287 80387 80487/ integrado integrado integrado
Cola de instrucción 4 Bytes 6 Bytes 6 Bytes
Cache compartido SI
Cache datos SI SI
Cache instrucciones SI SI
Nivel 2 de cache externo integrado
Instrucciones RISC SI
BTB SI SI

Familia Motorola 68000

El Motorola 68000 es un microprocesador diseñado en los años 80, pero cuya potencia y caracterí­sticas fueron determinantes para que se usara en ordenadores como los Amiga, los Atari, los Sun, las familias de Macintosh, y en consolas de videojuegos como la Neo-Geo y la Mega-Drive. Actualmente este micro está completamente anticuado, pero su uso sigue vigente en sistemas empotrados, como por ejemplo algunas PDAs.El 68000 dió origen a toda una familia de microprocesadores: 68010, 68020… que mantení­an la compatibilidad introduciendo progresivas mejoras. En este documento no se van a tener en cuenta estas diferencias y sólo se explicarán los fundamentos de la famila.

Caracterí­sticas principales

  • Lo primero que cabe destacar es que sus registros son de 32 bits, que para la epoca era descomunal comparado con los 8 bits con los que trabajaban los procesadores de entonces.
  • Su otra caracterí­stica principal es que está preparado para multitarea, ya que posee dos modos de ejecucion, el modo usuario y el modo supervisor. Este último esta destinado para programar las rutinas del nucleo de un sistema operativo, teniendo los dos modos de ejecución espacios de pila disjuntos.
Registros
Estos son los registros presentes en el motorola 68000:
D0 D1 D2 D3 D4 D5 D6 D7
A0 A1 A2 A3 A4 A5 A6 SSP
PC SR USP
La explicación de los registros:

  • D0-D7: Registros de datos.
  • A0-A6: Registros de direcciones.
  • SSP, USP: Son los punteros de pila del modo supervisor y del modo usuario respectivamente. Nos referimos a ellos directamente con A7, seleccionando el micro cual es el que corresponde segun el estado en el que nos encontremos. Los punteros de pila apuntan al elemento que está en el tope de la pila, y ésta crece hacia abajo, es decir que para introducir un elemento en la pila hay primero que decrementar el puntero de pila correspondiente y luego poner el dato en la posición a donde apunta.
  • PC: Contador de programa, es un puntero a la posición de la memoria con la siguiente instrución a ejecutar.
  • SR: Registro de estado, su composicion por bits es la siguiente:
  • T S I2 I1 I0 X N Z V C



  • Bits aritméticos (X N Z V C): Bits que se activan según el resultado de la última operacion aritmética.







  • Máscara de interrupciones (I2 I1 I0): Sólo pueden entrar las interrupciones de nivel menor que la máscara.







  • Bit de modo Supervisor (S): 1 si estamos en modo supervisor.







  • Bit de modo Traza (T): Para cuando se depuran programas y se va ejecutando paso a paso.






  • Familia RS/6000

    (RISC System/6000) El nombre de la generación anterior y original de la familia IBM System p de estaciones de trabajo científicas y los servidores que se fusionaron en la marca Power Systems. La línea RS/6000 fue el primero en utilizar basados ​​en RISC de IBM arquitectura de los chips POWER, y tanto el poder como CPU PowerPC se han utilizado en varios modelos. AIX (Unix) fue el sistema RS/6000 's operativo principal. El RS/6000 originalmente apoyaron el bus Micro Channel, pero más tarde pasó a PCI. Ver Sistemas de poder y el poder.

    EXPOSICIONES: BUSES, REGISTROS Y MODO DE DIRECCIONAMIENTO



    TEMA: MODO DE DIRECCIONAMIENTO

    Integrantes:


    • Cruz Cruz David
    • Garcia Solis Carlos Andres
    • Gomez Mercado Guadalupe
    • Gonzalez Perez Patricia
    • Lopez Riaño Omar
    • Rodriguez Aguilar Nidia Alejandra
    • Soriano Gutierrez Alejandra
    • Zarate Cruz Ricardo






    INTEL i3, i5 e i7


    ¿Cual es la diferencia entre una y otra?


    A mi punto de vista, en un S.O lleva por nombre kernell..pero en el caso de los procesadores, es muy ilogico pensar que 8 nucleos, puedan manejan 8 sistemas operativos al mismo tiempo . . . Y otra cosa seria que ningun procesasor sea capas de correr a dicha velocidad. . . ya que su uso se basa principalmente al rendimiento del procesador y a su ambiente grafico..!!

    PRACTICA # 5: Condiciones, ciclos y difurcasiones




    Estas estructuras, o formas de control le dan a la maquina un cierto grado de decision basado en la informacion que recibe, ejemplo:
    Se crearon tres programas que hacen lo mismo, desplegar un numero determinado de veces una cadena de caracteres en la pantalla.






    PRACTICA # 4: Como guardar un archivo en lenguaje ensamblador




    -'h' (para obtener la longitud de un programa).
    -'n' (nos permite poner un nombre al programa).
    -'rcx' (nos permite cambiar el contenido del registro CX al valor que obtuvimos del tamaño del archivo con 'h'.
    -'l' (carga el nombre del archivo).
    -'u' (se utiliza para verificar que el programa se cargo en memoria, lo que hace es desamblar el codigo y mostrarlo ya desamblado).
    DEBUG simpre carga los programa en memoria en la direccion 100H, a menos que se le indique alguna otra.



    PRACTICA # 3: "HOLA MUNDO" EN LINUX



    ~$ g++ holamundo.cpp (ENTER)
    ~$ ./a.out (ENTER)
    HOLA MUNDO . . .




    PRACTICA # 2: INTERRUPCIONES EN LINUX



    ~$ dmesg | grep -i irq (ENTER)



    viernes, 23 de septiembre de 2011

    PRACTICA # 1: DEBUG


    • AX = Acumulador
    • BX = Registro Base
    • CX = Registro Contador
    • DX = Registro de Datos
    • DS = Registro Segmento de Datos
    • ES = Registro Segemento Extra
    • SS = Registro del Segmento Pila
    • CS = Registro del Segmento de Codigo
    • BP = Registro de Apuntadores
    • SI = Registro Indice Fuente
    • DI = Registro Indice Destino
    • SP = Registro del Apuntador de la Pila
    • ID = Registro del Apuntador de Siguiente Instruccion
    • F = Registro de Bandera



    -a0100 (ENTER)
    13A0:0100 mov ax,0002; Coloca el valor 0002 en el registro ax.
    13A0:0103 mov bx,0004; Coloca el valor 0004 en el registro bx.
    13A0:0106 add ax,bx; Le adiciona el contenido de ax al contenido bx.
    13A0:0108 int20; Provoca la terminacion del programa.
    13A0:010A
    -g
    Program terminated normally
    -r . . .