Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJulián Ferreyra Villalba Modificado hace 8 años
1
Etapas de solución de un problema
2
Módulo o secciones de un algoritmo
11
Comandos de debug
15
-n conteo.asm
32
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
33
Comandos debug
34
Ejemplo: Al= perimetro Ch= base Bx=altura Si al: 10 ch: 05 Add al,ch 15 Mul 2 2A
36
Diagrama de flujo si entonces
37
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
43
Estructura de selección múltiple
44
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
50
Estructuras de repetición For(valor inicial; condición;incremento) { } While(condición){ } Do{ }while(condición)
51
for
52
while
53
Práctica de banderas
54
Conversión ASCII HEXADECIMAL Num letra 30 carácter 39 41 carácter 46 57
55
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
56
Conversión HEXADECIMAL ASCII ABCDEFABCDEF +37 0...90...9 +30 A +37 41 Ejemplo:
57
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
58
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
59
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
60
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
61
Uso del segmento de datos
63
Buscar una Letra -500 ‘no se encontro’ 0d 0a ‘$’ -600 ‘si se encontro’ 0d 0a ‘$’
64
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
65
ABCDEF
66
Ejemplo de uso DS
67
Mostrar los datos del DS $
68
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
69
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
70
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
71
Name A name in Assembler lenguage can use the following characters:
83
Usando Turbo Assembler
89
Compilador modo dos usando masm y link
91
Ejemplo
93
Compilación modo usando ml.exe dos con errores
97
Compilando usando AssemblerEditor, ml y link
102
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.
105
Linkeando todo para obtener el ejecutable
116
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
117
Compilando sort.asm con masm
121
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
122
Cadenas en ensamblador usando masm
126
Matrices
131
Archivos (escritura)
137
antes Después
138
Archivos (lectura)
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.