Operadores Lenguaje Ensamblador

1- OPERADORES ARITMeTICOS

Pueden emplearse libremente (+), (-), (*) y (/) -en este ultimo caso la division es siempre entera-. Es valida, por ejemplo, la siguiente linea en ensamblador (que se apoya en la directiva DW, que se vera mas adelante, para reservar memoria para una palabra de 16 bits):

dato DW 12*(numero+65)/7

Tambien se admiten los operadores MOD (resto de la division) y SHL/SHR (desplazar a la izquierda/derecha cierto numero de bits). Obviamente, el ensamblador no codifica las instrucciones de desplazamiento (al aplicarse sobre datos constantes el resultado se calcula en tiempo de ensamblaje):

dato DW (12 SHR 2) + 5

2. - OPERADORES LoGICOS.

Pueden ser el AND, OR, XOR y NOT. Realizan las operaciones logicas en las expresiones. Ej.:

MOV BL,(255 AND 128) XOR 128 ; BL = 0

3. - OPERADORES RELACIONALES.

Devuelven

condiciones de cierto (0FFFFh o 0FFh) o falso (0) evaluando una expresion. Pueden ser: EQ (igual), NE (no igual), LT (menor que), GT (mayor que), LE (menor o igual que), GE (mayor o igual que). Ejemplo:

dato EQU 100 ; «dato» vale 100

MOV AL,dato GE 10 ; AL = 0FFh (cierto)

MOV AH,dato EQ 99 ; AH = 0 (falso)

4. - OPERADORES DE RETORNO DE VALORES.

  • Operador SEG: devuelve el valor del segmento de la variable o etiqueta, silo se puede emplear en programas de tipo EXE:

MOV AX,SEG tabla_datos

  • Operador OFFSET: devuelve el desplazamiento de la variable o etiqueta en su segmento:

MOV AX,OFFSET variable

Si se desea obtener el offset de una variable respecto al grupo (directiva GROUP) de segmentos en que este definida y no respecto al segmento concreto en que esta definida:

MOV AX,OFFSET nombre_grupo:variable

tambien es valido:

MOV AX,OFFSET DS:variable

  • Operador .TYPE: devuelve el modo de la expresion indicada en un byte. El bit 0 indica modo «relativo al codigo» y el 1 modo «relativo a datos», si ambos bits estan inactivos significa modo absoluto. El bit 5 indica si la expresion es local (0 si esta definida externamente o indefinida); el bit 7 indica si la expresion contiene una referencia externa. El TASM utiliza tambien el bit 3 para indicar algo que desconozco. Este operador es util sobre todo en las macros para determinar el tipo de los parametros:

info .TYPE variable

  • Operador TYPE: devuelve el tamaño (bytes) de la variable indicada. No valido en variables DUP:

kilos DW 76

MOV AX,TYPE kilos ; AX = 2

Tratandose de etiquetas -en lugar de variables- indica si es lejana o FAR (0FFFEh) o cercana o NEAR (0FFFFh).

  • Operadores SIZE y LENGTH: devuelven el tamaño (en bytes) o el no de elementos, respectivamente, de la variable indicada (definida obligatoriamente con DUP):

matriz DW 100 DUP (12345)

MOV AX,SIZE matriz ; AX = 200

MOV BX,LENGTH matriz ; BX = 100

  • Operadores MASK y WIDTH: informan de los campos de un registro de bits (vase RECORD).

5- OPERADORES DE ATRIBUTOS.

  • Operador PTR: redefine el atributo de tipo (BYTE, WORD, DWORD, QWORD, TBYTE) o el

de distancia (NEAR o FAR) de un operando de memoria. Por ejemplo, si se tiene una tabla definida de la siguiente manera:

tabla DW 10 DUP (0) ; 10 palabras a 0

Para colocar en AL el primer byte de la misma, la instruccion MOV AL,tabla es incorrecta, ya que tabla (una cadena 10 palabras) no cabe en el registro AL. Lo que desea el programador debe indicirselo en este caso explicitamente al ensamblador de la siguiente manera:

MOV AL,BYTE PTR tabla

Trabajando con varios segmentos, PTR puede redefinir una etiqueta NEAR de uno de ellos para convertirla en FAR desde el otro, con objeto de poder llamarla.

  • Operadores CS:, DS:, ES: y SS: el ensamblador genera un prefijo de un byte que indica al microprocesador el segmento que debe emplear para acceder a los datos en memoria. Por defecto, se supone DS para los registros BX, DI o SI (o sin registros de base o indice) y SS para SP y BP. Si al acceder a un dato este no se encuentra en el segmento por defecto, el ensamblador añadir el byte adicional de manera automatica. Sin embargo, el programador puede forzar tambien esta circunstancia:

MOV AL,ES:variable

En el ejemplo, variable se supone ubicada en el segmento extra. Cuando se referencia una direccion fija hay que indicar el segmento, ya que el ensamblador no conoce en que segmento esta la variable, es uno de los pocos casos en que debe indicarse. Por ejemplo, la siguiente linea dara un error al ensamblar:

MOV AL,[0]

Para solucionarlo hay que indicar en que segmento este el dato (incluso aunque este sea DS):

MOV AL,DS:[0]

En este ultimo ejemplo el ensamblador no generara el byte adicional ya que las instrucciones MOV operan por defecto sobre DS (como casi todas), pero ha sido necesario indicar DS para que el ensamblador nos entienda. Sin embargo, en el siguiente ejemplo no es necesario, ya que midato esta declarado en el segmento de datos y el ensamblador lo sabe:

MOV AL,midato

Por lo general no es muy frecuente la necesidad de indicar explicitamente el segmento: al acceder a una variable el ensamblador mira en que segmento este declarada (vease la directiva SEGMENT) y segun como esten asignados los ASSUME, pondre o no el prefijo adecuado segun sea conveniente. Es responsabilidad exclusiva del programador inicializar los registros de segmento al principio de los procedimientos para que el ASSUME no se quede en tinta mojada… si se emplean con bastante frecuencia, sin embargo, los prefijos CS en las rutinas que gestionan interrupciones (ya que CS es el unico registro de segmento que apunta en principio a las mismas, hasta que se cargue DS u otro).

  • Operador SHORT: indica que la etiqueta referenciada, de tipo NEAR, puede alcanzarse con un salto corto (−128 a +127 posiciones) desde la actual situacion del contador de programa. El ensamblador TASM, si se solicitan dos pasadas, coloca automaticamente instrucciones SHORT alla donde es posible, para economizar memoria (el MASM no).
  • Operador ‘$’: indica la posicion del contador de posiciones («Location Counter») utilizado por el ensamblador dentro del segmento para llevar la cuenta de por donde se llega ensamblando. Muy util:

frase DB “simpatico”

longitud EQU $-OFFSET frase

En el ejemplo, longitud tomara el valor 9.

  • Operadores HIGH y LOW: devuelven la parte alta o baja, respectivamente (8 bits) de la expresion:

dato EQU 1025

MOV AL,LOW dato ; AL = 1

MOV AH,HIGH dato ; AH = 4

Competencias Digitales (Tic’s Basicas) a construir con este TEMA:

  • Usar (click en )www.Google.com para buscar y localizar UN material academico apropiado y que se pueda recomendar para el tema, ver VIDEO BUSQUEDAS abajo en esta pagina.
  • En el post ( o tema ) apropiado en el Libro de Blogger, pegar el material localizado y que se recomienda para este tema, ver VIDEO BLOGGER abajo en esta pagina.

pd: Recordar incluir la fuente del tema usando el formato de citacion apropiado, ver VIDEO WIKIPEDIA abajo en esta pagina.

  • En el editor de Blogger usar colores para destacar los parrafos mas importantes y usar subrayados para las citas mas relevantes.
  • En el post ( o tema ) apropiado en el libro en Blogger, para incluir ecuaciones o notacion matematica se debera usar el icono del editor de Blogger IMAGE y construir esta notacion matematica con imagenes Latex, ver VIDEO LATEX ABAJO.
  • Construir al final y despues de la fuente del material, un breve resumen ( no mas de 2–3 parrafos) explicando palabras propias el contenido del tema.

pd: Se pueden usar alguna de las citas que encontradas dentro del tema, solo recordar encerrarla entre comillas.

pd: Se pueden usar tambien cambios en fonts para darle mas visibilidad, consistencia y relevancia al resumen del tema.

  • PUNTOS EXTRAS Si se usa una segunda fuente valiosa de informacion y recordar encadenar los dos materiales mediante uno o dos parrafos apropiados.
  • Enviar a el maestro o compañeros un correo electronico que incluya la liga a el tema en blogger para revision, recomendacion, sugerencias y evaluacion, ver VIDEO LIGAS GMAIL abajo.
  • Sacar una cuenta (click en)http://docs.google.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se construyo en Gmail y Blogger ver VIDEO GOOGLE DOCS abajo en esta pagina.

pd: Si ya se tiene una cuenta ignorar esta competencia digital.

pd: Google Docs es el equivalente a OFFICE pero con la caracteristica que todos sus componentes ( procesador de palabras, presentacion electronica y hoja de calculo) estan completamente en internet, es decir todos los archivos o material estaran en linea, seguros y siempre disponibles, ademas de que se pueden trabajarlos desde cualquier pc, ya sea la personal, la del laboratorio de la escuela o la de un lugar publico como la biblioteca o un cafe internet.

  • Construir una Presentacion Electronica ( usando muy pocos slides) del tema en GOOGLE DOCS e incrustrarla en el tema de bloger ver VIDEO GOOGLE DOCS en esta pagina abajo.

pd: Recordar que una presentacion electronica, es solamente un resumen muy condensado del tema ( o mapa o guia mental ), que ayuda a recordar los elementos y conceptos mas basicos del tema, cuando se estan exponiendo frente a un grupo.

pd: No olvidar incluir un primer slide con el titulo de la presentacion electronica, un segundo slide con un indice de la presentacion electronica y un ultimo slide con dos o tres parrafos de conclusiones y bibliografia.

  • Buscar en Google Imagenes o www.Flickr.com o www.PhotoBucket.com una galeria de fotos o de imagenes apropiadas al tema actual,
  • Para los casos de Photobucket y Flicker, ambos sitios proporcionan ligas a sus imagenes y tambien objetos (los recuerdan??), que se pueden incluir en el tema del libro apropiado en Blogger.

pd: para estos sitios deberan obtener una cuenta usando el correo de gmail y de preferencia obtener el mismo usario que se ha venido manejando a lo largo del curso.

pd: Tratar de usar resoluciones y tamaños de imagenes chicos o medianos, recordar que todo este material termina en el post del tema en Blogger y esa pagina no tiene mucho espacio para desplegar fotos o imagenes.

pd: El formato apropiado para fotos o imagenes es JPG, tratar de no usar otros formatos.

pd: Se puede construir y conseguir esta coleccion o galeria de imagenes con:

1) Usando Google Imagenes, recordar conseguir solo imagenes que tengan permiso de publicacion abierto, no usar imagenes o fotos que tengan derechos reservados.

pd: Estas fotos almacenarlas en un folder en el desktop o escritorio de su computadora y subirlas a el post en blogger usando el icono IMAGE del editor de Blogger.

2) Flickr y Photo Bucket tambien tienen una gran cantidad de imagenes que se pueden usar o mejor dicho enlazar a el tema o post en Blogger.

3) Tambien se puede usar la camaras digitales o las camaras de sus telefonos celulares.

4) Tambien se puede usar el programa o aplicacion llamado Srip32.exe( solo buscar srip32 en google) bajarlo e instalarlo, este programa permite capturar una pantalla de la pc, es decir si se encuentra un sitio con imagenes o incluso texto apropiado o relevante al tema, capturar la pantalla con srip32 y ya se tendra la imagen, ver VIDEO Srip32 abajo.

  • Incluir al menos una imagen de cada uno de los dos sitios (flickr y Photobucket) en el tema o post que se esta construyendo en Blogger.
  • PUNTOS EXTRAS Si se incluyen una galeria completa de imagenes apropiadas desde cualquiera de estos sitios de FLICKR o Photobucket.
  • Sacar una cuenta (click en)www.DivShare.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se consiguio en Gmail y Blogger y Flickr ver VIDEO DIVSHARE abajo en esta pagina.

pd: Si ya se tiene una cuenta ignorar esta competencia digital.

pd: Usar Divshare para almacenar material en audio (MP3) apropiado a el tema ( no usarlo para almacenar material comercial o les suspenden la cuenta)

pd: El material en Audio, con formato MP3 se debera producir usando un microfono en la pc y programas de aplicacion apropiados, llamados editores de audio, un ejemplo de ellos es el SOUND RECORDER que ya viene en Windows, pero se recomienda usar mejor AUDACITY ( solo buscar en google AUDACITY) bajarlo e instalarlo, ver VIDEO AUDACITY abajo.

  • Crear al menos dos archivos de audio mp3:

1) El primero de ellos sera la lectura completa de este tema en voz apropiada. ( o aprender a editar con audacity la voz)

2) El segundo de ellos sera un resumen del tema. ( buena voz o editarla con audacity)

3) Ambos archivos subirlos a Div Share (recordor que tienen que ser MP3) y el reproductor que proporciona gratis Div Share, ver VIDEO DIVSHARE abajo e insertarlo en el lugar apropiado del tema que se esta construyendo en Blogger.

4) Ejemplo del reproductor incrustado en una pagina:

  • Sacar una cuenta (click en)www.YouTube.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se consiguio en Gmail y Blogger y Flickr.

pd: Si ya se tiene una cuenta ignorar esta competencia digital.

  • Para producir video se pueden usar tres fuentes:

1) Localizar Videos apropiados en Youtube.

2) Usar nuestras camaras digitales o nuestros telefonos celulares para producir video.

3) Producir un video de la propia pantalla de la computadora ( muy similar a lo que se hizo con Srip32) pero usando un programa especializado en video, tal como CAMSTUDIO (click en www.CamStudio.org) bajar e instalar ( no olvidar bajar e instalar el CODEC que esta abajo en el mismo sitio.

3.1) para Usar Camstudio solo recordar que es muy similar a Srip32 Solo que el resultado final es un archivo de video AVI.

  • Producir un video de resumen del tema (usar camstudio con el fondo de la pagina con el tema e irlo comentando en voz apropiada)
  • Producir un video en vivo con la exposicion del tema ( pueden usar la presentacion electronica de fondo o cualquier otro material, pizarron, filminas, rotafolios, etc.)
  • Subir los videos a su cuenta en Youtube e incluirlos o ligarlos en la pagina en Blogger, tambien los pueden subir directamente a BLOGGER ver VIDEO BLOGGER VIDEO abajo.

Saludos y suerte prof Lauro Soto, Ensenada, BC, Mexico.