lunes, 26 de marzo de 2018


Es muy interesante saber que los programas hechos en lenguaje ensamblador, que se ubican en un nivel más bajo (Nivel 4) que el lenguaje de alto nivel (Nivel 5), no sólo pueden ser interpretados desde la Computadora usando CMD, DOsBox, Emu8086, GUI Turbo Assembler,  etc. Sino que también se pueden compilar perfectamente desde el teléfono Android  utilizando cualquier aplicación que nos permita emular el funcionamiento de un terminal de computadora,  programas tales como: Terminal Emulator, TurboC, AnDosBox, entre otros. 

Lo único que se debe tener en cuenta para poder ejecutar programas en este lenguaje desde el Movil es que, como el ensamblador es el programa que lleva a cabo la traducción de un programa de nivel 4, necesitamos un traductor o compilador que sea adecuado para Android; en este caso utilizaremos el ensamblador perfecto para esta tarea: MASM (Microsoft Macro Assembler) que es el ensamblador de Microsoft diseñado para la familia x86 de Microprocesadores.

¿Cómo funciona todo esto?

Bien, como dicen: "Menos charla y más pelea". Para poder correr programas del lenguaje ensamblador en nuestros Android, lo haremos siguiendo estos pasos:


1- Descargar los archivos indicados: para este ejemplo utilizaremos una app llamada AnDOSBox en su versión: 1.1.6, y el ensamblador MASMcomo lo mencionamos antes.  

Descargar aquí 

2- una vez descargados los archivos a nuestro teléfono Android, y descomprimidos, procedemos primeramente a instalar la aplicación.

3- Consecutivamente Movemos la carpeta con el nombre 8086 a la memoria del dispositivo (no a la SD), teniendo el cuidado de que ésta quede fuera de cualquier otra carpeta; esto se hace así para poder acceder a ella desde la App emulador sin ningún problema.

4. Abrimos la Aplicación y presionamos en Keyboar, para mostrar el teclado 

    

5-  Una vez allí procedemos a acceder a la carpeta 8086, utilizando el comando cd
así: cd 8086

Una vez dentro de la carpeta 8086, como ejemplo, corremos un programa que viene ya en la carpeta, llamado: HI.asm

6- Para ello utilizamos la instrucción Masm, así: masm HI.asm 

Hacemos enter cuatro veces, puesto que así generamos el archivo OBJETO y nos indicará si hay o no hay errores. De haberlos tendremos que ir al código fuente y encontrarlos. Para ello sólo escribimos edit HI.asm, una vez allí corregimos, y volvemos, dando un toque en "file",  y "save"; luego en "exit". 

Volver al paso 6.





7- Luego escribimos la instrucción Link, así: Link HI

Esto también haciendo enter cuatro veces, para poder enlazar y crear el archivo ejecutable, .exe

8- Finalmente escribimos el nombre del archivo con la extención .EXE recientemente creado, para poderlo ejecutar, Así: HI.exe

Hacemos enter, y, si todo salió bien, obtendremos en pantalla un mensaje que dirá: "Visita a: www.tecnologianel.blogspot.com".





Nota: cuando crees archivos .asm no le coloques nombres demasiado largos o con caracteres especiales, porque no se podrán compilar.

Muy bien esa es la forma correcta de correr programas desde nuestros teléfonos Android, Si te sirvió comenta en la zona de comentarios, y si tuviste algún error puedes contar en qué parte tuviste error, para poderte ayudar. Hasta Pronto.

viernes, 23 de marzo de 2018



En el Mundo del lenguaje ensamblador, este tipo de operaciones lógicas son un poco más complicadas que en un lenguaje de alto nivel, debido a su bajo nivel de abstracción; lo cual nos hace requerir de un mayor esfuerzo a nivel de código, pero los programas son mucho más eficientes.

Este sencillo ejemplo se trata de:

 Ingresar dos números cualesquiera a la consola y la operación lógica que se desea realizar con ellos (<, = , >), por ejemplo: 3 > 2  y éste imprimirá como resultado un mensaje diciendo que la operación es verdadera en caso de serla, o falsa en caso de no serla. Esto se logra utilizando la instrucción CMP, que permite comparar dos operandos.

Veamos:


.MODEL Small ;modelo pequeño de compilación 
.Stack 100h  ;Segmento de pila: Pila 256 posiciones
cr equ 13    ;Declaración de Constante
lf equ 10    ;Declaración de constante

.DATA        ;Comienzo del segmento de datos

    titulo DB 10,13,'Operaciones logicas utilizando <,>,=',cr,lf,'$'
    Descripcion DB       'comparaciones con dos numeros',cr,lf,'$'
    line DB       '------------',cr,lf,'$'
             
 msg1 db "Ingresar primer numero ",10,13,"$"
 msg db 10,13,"Ingresar operacion logica a realizar  (<, >, = ) ",10,13,"$"
 msg2 db 10,13,"Ingresar segundo numero ",10,13,"$"
  msg3 db 10,13,"-----------------",10,13,"$"
 msg4 db 10,13,"La Operacion es falsa ",10,13,"$"
 msg5 db 10,13,"La Operacion es verdadera!!",10,13,"$"
 msg6 db 10,13,"La operacion erronea",10,13,"$"


 menor equ   12      ; 0C - 12 equivalente al signo '<'
 igual equ 13        ; 0D  - 13 equivalente al signo '=' 
 mayor equ   14      ; 0E - 14 equivalente al signo '>'

 
 n1 db 0
 n2 db 0
 opr db 0
                       

.CODE
Inicio:
;... nombre y descripcion ...
mov ax,@data
mov ds,ax ; DS ahora apunta al segmento de datos.
mov ah,9 ; Función del DOS para impresión de cadenas.
mov dx,OFFSET titulo ; Apuntador al Nombre
int 21h  ;Llamada a DOS por medio de la interrupción

mov ax,@data
mov ds,ax
mov ah,9
mov dx,OFFSET Descripcion 
int 21h

mov ax,@data
mov ds,ax
mov ah,9
mov dx,OFFSET line
int 21h

Operacion:

    mov ax, @data
 mov ds, ax ;referenciamos el segmento de datos

 ;primer numero
 mov ah, 9
 lea dx, msg1
 int 21h

 mov ah, 01
 int 21h

 sub al, 30h
 mov n1, al

 ;operacion logica
 mov ah, 9
 lea dx, msg
 int 21h

 mov ah, 01
 int 21h

 sub al, 30h
 mov opr, al

 ;segundo numero
 mov ah, 9
 lea dx, msg2
 int 21h

 mov ah, 01
 int 21h

 sub al, 30h
 mov n2, al 

 ;imprimiendo lineas
 mov ax,@data
    mov ds,ax
    mov ah,9
    mov dx,OFFSET msg3
    int 21h

             
;..iniciando opr logica..

   mov al, n1
   cmp al, n2  ;compara n1 con n2

   jg es_mayor  ;si n1 es mayor a n2 salta a la etiq. es_mayor
   je es_igual  ;si n1 es igual a n2 salta a la etiq. es_igual
   jmp es_menor ;si n1 es menor a n2 salta a la etiq. es_menor

es_mayor:   


            mov al, opr
            cmp al, menor
           
            je falso
            cmp al, igual
            je falso
           
            cmp al, mayor
            je verdadero
   jmp error
 
es_menor:
   mov al, opr
   cmp al, mayor
 
   je falso
   cmp al, igual
   je falso
 
   cmp al, menor
            je verdadero
   jmp error   
 
 
es_igual: 

            mov al, opr
   cmp al, mayor
 
   je falso
   cmp al, menor
   je falso
           
            cmp al, igual
            je verdadero
   jmp error
falso:

            mov ah, 9
   lea dx, msg4
   int 21h
   jmp fin
 
verdadero:

            mov ah, 9
   lea dx, msg5
   int 21h
   jmp fin
 
error:
            mov ah, 9
   lea dx, msg6
   int 21h
   jmp fin
 

;..fin opr..


; --------------------- fin del programa --------------------------

fin:

mov ah,4Ch   ; Transferencia del control al DOS. Función
             ;“Retornar a DOS”
int 21h      ;Interrupción que llama a DOS para terminar el
              ;programa
   
   
END Inicio 












viernes, 16 de marzo de 2018

Eliminar la cuenta de Google en Android  no es una tarea dificil.

Porque  no se necesita ninguna aplicación externa para hacerlo; basta con entrar a los ajustes del dispositivo android, y luego:



- Entrar a "Cuentas"



- Entrar a "Google"



* Si allí hay dos cuentas, basta con presionar sobre la cuenta, para entrar en sus detalles, luego  allí buscar en el menú la opción "Eliminar cuenta", confirmas, y listo.



* Si sólo hay una cuenta, habrá que ir hacia atrás... de nuevo hacia "Cuentas"



- Tocar en "+ Añadir cuenta"



- Tocar en "Google"



- Introducir el pin o patrón de bloqueo



- ingresas el correo, si ya tienes uno



- Si no tienes un correo, seleccionas en "O crea una nueva cuenta" ... sigue los pasos que se te indican.



- ...En cualquiera de las dos opciones anteriores, después de haber seguido los pasos,

  lo que sigue es:



- Entrar de nuevo en los ajustes y seguir los primeros pasos:



- "Cuentas"



- "Google"



-  "Allí estará la cuenta antigua más la cuenta nueva"...



- Entrar a la cuenta antigua



- Seleccionar en el menú la opción de "Eliminar cuenta"



- Confirmas que quieres eliminar la cuenta



- Y listo, ya la habrás eliminado!!



- Si no te quedó algo claro, mira el video siguiente.