abr
3
2012
3
2012
Ensamblador | Cambiar el orden de un Array

El siguiente código fuente cambia la posición de todos los elementos de un array de 100 elementos, el array estará compuesto por 100 elementos de números enteros.
Para probar el código tenéis que haber creado el array A y haber introducido los cien elementos que ocuparán desde la posición de memoria “A” a la posición de memoria
A + (100 elementos * 4 bytes), 4 bytes es lo que ocupa cada número entero.
Tendremos dos registros para conocer la posición en memoria en la que se encuentra el bucle (ebx,edx), y otros dos registros para hacer el intercambio de los valores (eax,ecx).
El código está hecho para la arquitectura (x86-64).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | mov ebx, dword[A] ; posición inicial de A mov edx, dword[A+99*4] ; posición del último elemento de A Bucle: cmp ebx, edx ; cuando tengan la misma posición ; o se cruce el bucle jge final mov eax, dword[A+ebx] ;carga la posición de memoria mov ecx, dword[A+edx] ;carga la posición de memoria mov dword[A+edx], eax ;cambia el valor mov dword[A+ebx], ecx ;cambia el valor add ebx, 4 ; aumenta la posición “inicial” sub edx, 4 ; disminuye la posición “final” jmp Bucle final: |
Artículos relacionados
Related Posts
Leave a comment
Entradas recientes
- Cómo conectarse por SSH al servidor web
- Programación en Lenguaje ensamblador | Dividir dos números
- Secuencias Oracle.
- Cómo crear 20 subredes | Red tipo B | Ejemplos
- Colores en el diseño de las redes sociales
- Mejora la velocidad de tu web
- Problemas de conexión con SMF
- Diversidad funcional | Interacción de las personas con los ordenadores
- Tecnicas de Black hat SEO
- Tutorial posicionamiento Web SEO II – Diseño y SEO
- Programar en lenguaje ensamblador | Ejemplo Práctico
- Interrupciones en la Arquitectura CISC | Ejemplo RSI
- Oracle RAC | Resolver Problemas de Permisos
- Traducir lenguaje Ensamblador a lenguaje Máquina | CISC
- Codificar en lenguaje ensamblador CISC | Ejemplos Matrices
- Memorias caché y algoritmos de reemplazo
- Clasificación de Sistemas de memoria
- Indexar contenido en Google
- Programación en Lenguaje ensamblador | Registro de estado
- Cómo eliminar el contenido duplicado de tu web
- Resolver error ora-01008 not all variables bound | frm-41380
- CURSOR DINÁMICO FORMS 10G
- PRAGMA
- Factores humanos y diseño en informática | Resumen
- Conceptos básicos de Interación Persona Ordenador | Apuntes
- Suma de polinomios con código ensamblador x86-64
- Desarrollar contenido SEO
- Eliminar campos del perfil administrador
- ORA-02291: integrity constraint | Oracle
- Función JavaScript sin conocer el número de parámetros
- Error 500 | Internal Server Error
- Recopilación de Redes Sociales
- Realidad aumentada Google Project Glass
- Bloquear IPs por .htaccess
- Ensamblador | Cambiar el orden de un Array
- Ensamblador | Algoritmo de la burbuja
- Programación en ensamblador | Arquitectura CISC
- Alternar colores en tablas con PHP y CSS
- Permisos en WordPress
- Programación en ensamblador (Resumen III) – Instrucciones
- Programación en ensamblador (Resumen II)
- Programación en ensamblador (Resumen I)
- Dibujar rutas en Google Maps | v3
- Paginar sin plugin en WordPress
- Tutorial Google Maps II ** Insertar marcas
- Tutorial Google Maps I
- Instalar Java en Ubuntu
- Enviar un email con PHP
- Recuperar Pc Packard Bell
- Claúsula RETURNING
- Paquete DBMS_UTILITY
- Sentencia CONTINUE | SQL
- GPS con Android | Mostrar tu posición
- Tutorial | Primeros pasos con IBM DB2
- Instrucción SAVEPOINT
- Diferencias entre the_excerpt y the_content | Resumir entradas
- Redireccionar Web | Métodos de redirección
- Clase Robot
- Formulario transparente en java | Robot
- Google Zeitgeist | Lo más buscado 2011
- Compartir contenidos Facebook – Tweetter | Blogger
- Plugin imprescindibles en wordpress (10 mejores)
- Resolver problemas de mantenimiento con WordPress
- Widget Hazte Fan para tu blog
- Introducción a la Minería de Datos
- Integrar tu Web en Facebook
- Debugar con ORACLE Forms Builder
- Test para Facebook | Desarrollo de aplicaciones
- Cursor dinámico en ORACLE FORMS
- Publicar en el muro con JavaScript SDK
- Sueldos en Informática
- Tutorial – Cómo crear aplicaciones para Facebook
- Mensajero de Windows con Java
- Tutorial posicionamiento Web SEO I
- AJAX en tres pasos
- Publicar con tu aplicación Facebook
- Aplicacion Facebook en Español
- Facebook vs Google (Adsense)
- Conectar con Facebook (Graph API)
- Conectar con Facebook | Utilizando el Php SDK
Recientes
- admin: Ok, prueba. No obstante, si no lo consigues muestrame o envíame el código y te echo una mano. Suerte!
- Anselmo: Gracias por la respuesta, hoy voy a intentar modificar el código. De hecho tengo una lista con muchos links,...
- admin: Hola, Lo que quieres hacer no parece complicado, prueba esto: Modifica la función initialize para que le...
- Anselmo: Gracias por los tutoriales, son muy buenos! Tengo una duda, espero me puedas orientar. En el código, veo que...
- Navit: Buen artículo, tengo que probar dos o tres cosas que has puesto. Gracias