Академический Документы
Профессиональный Документы
Культура Документы
TEMA:
UNIDAD 2:PROGRAMACION BASICA
MAESTRO:
CASTILLEJOS GONZALEZ JOSE MANUEL
PRESENTA:
EDGAR SANTIAGO GUTIERREZ
Ciclos numéricos………………………………………………………..4
Comparación y prueba………………………………………….........5
Saltos……………………………………………………………………..5
Ciclos condicionales…………………………………..………………..6
Incremento y decremento……………………………..……………….7
Instrucciones aritméticas………………………………………………9
Instrucciones lógicas……………………………………………………15
Desplazamiento y rotación…………………………………………..….15
Ensamblado
tasm /zi /l nombre donde nombre es el nombre del fichero .asm con
el código fuente. La extensión no es necesaria ponerla y los
parámetros /zi y /l sólo son útiles si queremos hacer un proceso de
depuración (debug) con el Turbo Debugger. Tras la ejecución de esta
línea se nos creará un fichero “nombre.obj
Linkado y montado
CICLOS NUMERICOS
siguientes instrucciones:
COMPARACION Y PRUEBA
• TEST verifica
• CMP compara
SALTOS
• JMP salta
CICLOS DE CONDICIONALES
Ciclo For
La Sintaxis empleada por el ciclo for es la siguiente:
for (valores de entrada ; condición de terminación ; iteración
por ciclo)
Las tres partes del ciclo se encuentran separadas por ; (punto y
coma)
La primer parte del ciclo especifica valores previos a su inicio.
La segunda parte indica la condición de terminación para el ciclo,
la cual está directamente relacionada con los valores iniciales.
Finalmente, la última parte especifica cómo serán manipulados los
valores iniciales en cada iteración del ciclo.
Ciclo IF
Una característica del ciclo if/else es el uso de llaves { }, en el
ejemplo anterior pudo notar que no fueron utilizadas llaves { } para
delimitar las condicionales, al no emplearse este mecanismo, se
asume que el ciclo o condicional tendrá efecto únicamente en la linea
contigua a su inicio. Aunque es recomendable utilizar llaves ({ } )
para incrementar la legibilidad del código, es importante señalar que
esta sintaxis de no utilizar llaves ({ } ) es válida y muy común
(Lamentablemente) .
Existe otra variación de if/else que agrupa las condicionales en una
sola expresión:
Ciclo While
While (condición)
INCREMENTO Y DECREMENTO
MOV AX,BL
• REP repetir
INSTRUCCIONES ARITMÉTICAS
Instrucciones Aritméticas.
a. Grupo de adición:
• ADD suma
b. Grupo de sustracción:
• SUB resta
c. Grupo de multiplicación:
• MUL multiplicación
d. Grupo de división:
• DIV división
e. Conversiones:
• NEG negación
MANIPULACIÓN DE PILA
• PUSH introducir
Procesos de Control
Sintaxis:
NOP
Indicadores:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
Realiza una operación nula, es decir, el microprocesador decodifica la
instrucción y pasa
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
Ejemplo:
ESC 21,AX
Sintaxis:
HLT
Indicadores:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
El procesador se detiene hasta que se restaura el sistema o se recibe
una interrupción. Como en los PC se producen normalmente 18,2
interrupciones de tipo 8 por segundo (del temporizador) algunos
programadores utilizan HLT para hacer pausas y bucles de retardo. Sin
embargo, el método no es preciso y puede fallar con ciertos
controladores de memoria.
Sintaxis:
LOCK
Indicadores:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
WAIT (Espera).
Sintaxis:
WAIT
Indicadores:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
XLAT (traducción).
Sintaxis:
XLAT tabla
Indicadores:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
DATOS SEGMENT
TABLA DB 2, 3, 5, 8, 16, 23
DATOS ENDS
CODIGO SEGMENT
MOVE AL, 5
XLAT TABLA
CODIGO ENDS
Otro ejemplo:
MOV AL, 4
XLAT TABLA
Sintaxis:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
ADD DX, SI
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
- - - - - - - - -
Ejemplo:
PUNT DD 12345678H
Sintaxis:
INSTRUCCIONES LÓGICAS
• NOT negación
• OR suma lógica
DESPLAZAMIENTO Y ROTACIÓN
Indicadores:
OF DF IF TF SF ZF AF PF CF
x - - - - - - - x
Rotar a la izquierda los bits del operando destino junto con el indicador
de acarreo CF el número de bits especificado en el segundo operando. Si
el número de bits a desplazar es 1, se puede especificar directamente,
en caso contrario el valor debe cargarse en CL y especificar CL como
segundo operando. No es conveniente que CL sea mayor de 7, en bytes;
ó 15, en palabras.
Ejemplos:
RCL AX,1
RCL AL,CL
RCL DI,1
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
x - - - - - - - x
Rotar a la derecha los bits del operando destino junto con el indicador
de acarreo CF el número de bits especificado en el segundo operando. Si
el número de bits es 1 se puede especificar directamente; en caso
contrario su valor debe cargarse en CL y especificar CL como segundo
operando:
Ejemplos:
RCR BX,CL
RCR BX,
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
x - - - - - - - x
Ejemplos:
ROL DX,CL
ROL AH,1
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
x - - - - - - - x
Ejemplos:
ROR CL,1
ROR AX,CL
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
X - - - x x ? x X
Desplaza a la izquierda los bits del operando el número de bits
especificado en el segundo operando que debe ser CL si es mayor que 1
los bits desplazados.
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
X - - - x x ? x x
Ejemplos:
SAR AX, CL
SAR BP,1
Sintaxis:
Indicadores:
OF DF IF TF SF ZF AF PF CF
X - - - x x ? x x
Desplaza a la derecha los bits del operando destino el número de los bits
especificados en el segundo operando. Los bits de la izquierda se llena
con cero. Si el número de bits a desplazar es 1 se puede especificar
directamente en el caso en que no ocurra se pone el valor en CL:
Ejemplos:
SHR AX,CL
SHR CL,1
Bloques en ensamblador
MODELOS DE MEMORIA.
Segmentos Punteros
Huge 1 Mb 1 Mb
HUGE: Similar al anterior, pero con algunas ventajas: por un lado, todos
los punteros son normalizados automáticamente y se admiten datos
estáticos de más de 64 Kb. Por otro, y gracias a esto último, es factible
manipular bloques de datos de más de 64 Kb cada uno, ya que los
segmentos de los punteros se actualizan correctamente. Sin embargo,
este modelo es el más costoso en tiempo de ejecución de los
programas.
Usando la pila
#Listing 3
.globl main
main:
movl $10, %eax
call foo
ret
foo:
addl $5, %eax
ret
ENTRADA Y SALIDA
Dispositivos externos