Etapas de solución de un problema. Módulo o secciones de un algoritmo.

Slides:



Advertisements
Presentaciones similares
Instrucciones de operación sobre datos
Advertisements

REGISTROS INTERNOS DEL PROCESADOR.
CLASE 4 EL ENSAMBLADOR.
CLASE 7 CONJUNTO DE INSTRUCCIONES. TRANSFERENCIA
TEMA 2 Arquitectura de un Ordenador
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
MANEJO DE CADENAS Equipo 7 Villanueva Martínez Yesenia Nallely
INSTTUTO TECNOLOGICO DE APIZACO
No. Lista 31 Teresita Ramírez Uribe HORA: 8:00-9:00AM.
N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR.
Programación en ensamblador
Introducción al lenguaje ensamblador
SEMANA 9_2.
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
TASM: Ensamblador Se le llama ensamblador no sólo al lenguaje; sino también al programa que traduce el código fuente escrito en ensamblador, a código objeto,
Programación en Lenguaje Ensamblador.
PROG. EN ENSAMBLADOR Ing. Pablo Cesar Tapia Catacora.
Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C.

Evidencia no. 5 modos de direccionamiento Paréntesis para poder resolverla ADD OP-DESTINO, OP.FUENTE OP1 OP2 SUMA= ADD ¿Cómo funciona? Op_Destino=Op_Destino+Op.Fuente.
ISA (Instruction Set Architecture)
MODOS DE DIRECCIONAMIENTO No. Lista 21 7am Rivas chacón Ana cristina
MODOS DE DIRECCIONAMIENTO

Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
Introducción al lenguaje ensamblador
Tema 2: INTRUCCIONES Profesor: Carlos Concha S LENGUAJES DE BAJO NIVEL.
Unidad 2: Organización del CPU
MODOS DE DIRECCIONAMIENTO

1 SEMANA 04_2. 2 OPERADORES ARITMETICOS OPERADOR: + FORMATO: VALOR1 + VALOR2 FUNCION : SUMA VALOR1 Y VALOR2 EJEMPLO : TABLA_MAS_2 DW TABLA + 2 ; (DESPLAZAMIENTO.
Lenguaje Ensamblador Unidad 2
Arquitectura del 8086/8088 TEEL 4011
Microprocesador (80X86) Universidad Nacional de Ingeniería
Introducción al lenguaje ensamblador
Estructura de Computadores Comandos DEBUG Programación en Assembler Profesora : Tatiana Marín R.
Tema 1: DATOS Y REGISTROS
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
M.C. Juan Carlos Olivares Rojas
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 7: Control del flujo en BASH Nombre unidad de.

INTRODUCCION AL AMBIENTE DE BAJO NIVEL ® M.C.C. Sergio Luis Castillo Valerio Esta presentación puede reproducirse libremente siempre que se mantengan estos.
MODOS DE DIRECCIONAMIENTO
A este registro se le conoce también como registro de estado. Consta de 16 bits y únicamente 9 de ellos contiene información, indican el estado de la.
introducción al Lenguaje Ensamblador
MODOS Y METODOS DE DIRECCIONAMIENTO
Módulo LCD Controlador HD44780.
Microprocesador (8086) Universidad Nacional de Ingeniería

PROGRAMACION A BAJO NIVEL
Sistemas Operativos Ensamblador. Junio de 2005Cesar Guisado2 Ventajas del Ensamblador La primera razón para trabajar con ensamblador es que proporciona.
SEMANA 01_2.
TEMA : ARQUITECTURA DE COMPUTADORAS

introducción al Lenguaje Ensamblador
Universidad Domingo Savio
Aprende el arte de la ingeniería inversa
2. ELEMENTOS DEL LENGUAJE 2.1 INTRODUCCIÓNES LINEALES
Arquitectura de Computadores
En las computadoras el formato natural para la aritmética es el binario. Sin embargo, para muchos propósitos, los datos numéricos se introducen desde el.
El microprocesador y su arquitectura
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de PCs El ambiente de desarrollo. Introducción Ambiente de desarrollo del curso: - CPU Intel Teclado - Monitor color - Disco duro.
Arquitectura de PCs Lenguaje ASM Intel Lenguaje de máquina y ASM Toda CPU interpreta su código de máquina propio Instrucciones en código de máquina.
Lenguaje ensamblador Resumen en diapositivas
Arranque desde CD en modo de no emulación Instalación y Configuración de Computadores, Redes y Periféricos.
Clase 7 Assembly - Simulador MSX88.
Manejador de interrupción (subrutina)
Explicación 2 Interrupciones.
Lenguaje Ensamblador. Repertorio de instrucciones Microprocesador Z80.
Transcripción de la presentación:

Etapas de solución de un problema

Módulo o secciones de un algoritmo

Comandos de debug

-n conteo.asm

Dirección de memoria de la que se ha leído el código CS : Desplazamiento Bytes que hay a partir de esa zona de memoria, la instrucción en código máquina ejecutables directamente del procesador Conversión a ensamblador que efectúa debug a partir de la 2da. columna

Comandos debug

Ejemplo: Al= perimetro Ch= base Bx=altura Si al: 10 ch: 05 Add al,ch 15 Mul 2 2A

Diagrama de flujo si entonces

Crear un programa que determine que número es mayor o son iguales inicio a,b El mayor es a fin a>b a<b El mayor es b Son iguales v v F F MOV AH,20 MOV AL,10 CMP AH,AL JBE XX MOV BH,01 JMP FIN XX : CMP AH,AL JZ YY MOV BH,02 JMP FIN YY: MOV BH,00 FIN: NOP Si a>b entonces bh=1 Si b>a entonces bh=2 Si a=b entonces bh=0

Estructura de selección múltiple

inicio opc,a,b opc c=a+bc=a*bc=a-bc=a/b 1 23 default c fin Crear un programa que dada una opción(opc) y los operandos (a,b)realice las siguientes operaciones Si opc=1 entonces c=a+b Si opc=2 entonces c=a-b Si opc=3 entonces c=a/b en caso contrario c=a/b Si ch=opc al=operando 1 ah=operando 2 Mov ch,01 Mov al,10 Mov ah,02 //mov ch,02 Cmp ch,01 Jnz resta Add al,ah Jmp fin resta: cmp ch,02 Jnz division Sub al,ah Jmp fin division: cmp ch,03 Jnz mult Div ah Jmp fin mult: mult ah Fin: nop

Estructuras de repetición For(valor inicial; condición;incremento) { } While(condición){ } Do{ }while(condición)

for

while

Práctica de banderas

Conversión ASCII  HEXADECIMAL Num letra 30  carácter   carácter  46 57

Inicio: lee dato dato  30 inicio dato  39 numero dato <41 inicio dato  41 letra si no inicio Letra: dato=dato-37 Numero:dato=dato-30 fin Ascii  hexadecimal

Conversión HEXADECIMAL  ASCII ABCDEFABCDEF A Ejemplo:

Rutinas y llamados F Llamada a una subrutina Terminación de un programa (dos) Fin de una subrutina retorno el control a la siguiente instrucción de donde se llamo

Escritura Carácter Mov AH,02 Int 21 ret Espera entrada proveniente del teclado, la exhibe y la coloca en el registro AL Lectura Carácter Mov AH,01 Int 21 ret El carácter a escribir debe estar en DL

Empaquetamiento 2 números push cx lee (al) ascii-hex(al) Mov cl,04 Shl al,cl Mov ch,al lee (al) ascii-hex(al) Add al,ch Pop cx ret

Desempaquetamiento 2 números (para escribir en pantalla) push cx Mov dh,dl Mov cl,04 Shr dl,cl Hex-ascii (dl) Escribir(dl) Mov dl,dh And dl,0f Hex-ascii (dl) Escribir(dl) Pop cx ret Suponiendo que el dato lo recibe en dl

Uso del segmento de datos

Buscar una Letra -500 ‘no se encontro’ 0d 0a ‘$’ -600 ‘si se encontro’ 0d 0a ‘$’

F Llamada a una subrutina Terminación de un programa (dos) Fin de una subrutina retorno el control a la siguiente instrucción de donde se llamo

ABCDEF

Ejemplo de uso DS

Mostrar los datos del DS $

Funciones bios int 10h [screen] gotoxy Mov ah,02 ;solicitud iniciar el cursor Mov bh,00 ;screen #0 Mov dh,05 ;ren 5 h Mov dl,12 ;col. 12 h (18 d ) Int 10

before after C Dos clrscr(); >cls Mov ax,0600 ;ah 06(scroll), al 00 (full screen) Mov bh,07 ;noraml attribute (black & white) Mov cx,0000 ;upper left row/col Mov dx,184f ;lower right row/col Int 10 ;interrupt– exit to bios

Introducción a masm Comments 1. ;This entire line is a comment 2.ADD AX,BX ;comment on same line as instruction Coding Format The en general format an Assembler instruction is the is the following [name] operation operand(s) Ejem: NameOper’sOperand COUNTERDB1;Name, operation, one operand MOVAX,0;Operation, two operands

Name A name in Assembler lenguage can use the following characters:

Usando Turbo Assembler

Compilador modo dos usando masm y link

Ejemplo

Compilación modo usando ml.exe dos con errores

Compilando usando AssemblerEditor, ml y link

Ensamblando con nasm Para ensamblar un archivo en assembler con nasm debemos ejecutar la siguiente instrucción: nasm -felf rapidas.asm Donde 1.rapidas.asm es nuestro archivo assembler en cuestión 2.la opci´on -felf indica que el formato del archivo objeto será ELF (el más común para Linux). Aquí también se podría haber utilizado la opción -o rapidas.o pero nasm por omisión utiliza ese archivo como destino. Nuevamente, si tuviéramos varios archivos en lenguaje ensamblador que utilizan funciones entre ellos, debemos ensamblarlos por separado y obtener así un archivo objeto para cada.

Linkeando todo para obtener el ejecutable

Sort.asm i  j j  i+1 dl  table1(i) bl  table1(j) dl<bl table1(i)  table1(j) j  j+1 Fin de table1? i  i+1 Fin de table1? v F v v F F

Compilando sort.asm con masm

Instrucciones de cadenas movsMueve un byte, palabra o palabra doble desde una localidad de memoria a otra lodsCarga desde memoria un byte en el al, una palabra en el AX o un palabra doble en EAX stosAlmacena los registros AL, AX, o EAX en memoria CmpsCompara localidades de memoria de un byte, palabra o palabra doble scasCompara el contenido de AL, AX, o EAX con el contenido de una localidad de memoria repUna instrucción asociada a REP provoca que una instrucción para que cadena se realice de manera repetitiva un numero especifico de veces. Ejem: string1 db 20 dup(‘*’); string2 db 20 dup(‘*’); …. cld Lea di,string2 ; Lea si, string1 Rep movsb jcxz Label1: mov al,[si] mov[di],al inc di inc si loop label1 

Cadenas en ensamblador usando masm

Matrices

Archivos (escritura)

antes Después

Archivos (lectura)