|
Mostrar Temas
|
Páginas: 1 [2]
|
11
|
Programación / ASM / Direccionamiento indexado ASM
|
en: 19 Agosto 2010, 17:28 pm
|
Veréis, me estoy iniciando en ensamblador, pues creo que es fundamental. Ya conozco otros lenguajes, asi que pensé que era hora de meterme en ello. Compré el libre de Francisco Charte Ojeda, llamado Lenguaje Ensamblador (El Pequeño) y en general, todo bien, se va entendiendo, pero tengo un pequeño problema, no llego a entender un modo de direccionamiento (estuve buscando por google y todavía lo entiendo peor; será que soy tonto). Es el llamado "Indexado" (me pasa lo mismo con el escalado que es parecido). Ahi explica que se le puede sumar desplazamiento. A que se refiere esto? Un ejemplo del que me muestra es el siguiente: Me podriais explicar que ocurre en este ejemplo? Que es exactamente lo que se transfiere al registro AL? También os muestro el primer ejercicio práctico que me propone hacer(esto es el resultado, es decir, la solución), por si necesitais un poco más de contexto de código (no es necesario que me lo expliqueis, no os preocupeis): #include <stdafx.h> #include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { struct Incidencia { char carretera[8]; short kilometro; char descripcion[128]; }; Incidencia hoy[] = { { "A44", 32, "Nieve"}, { "A6", 173, "Accidente"}, { "M30", 8, "Retenciones" } }; char *via, *problema; short altura; __asm { ;EBX apunta al inicio del vector lea ebx, hoy ; y esi tiene tamaño por elemento mov esi, SIZE Incidencia
; se recupera puntero a la cadena carretera lea eax, [ebx+esi*2] mov via, eax
;se recupera dato 16 bits que indica kilometro mov ax, [ebx+esi*2+8] mov altura, ax ; se recupera puntero cadena descripcion lea eax, [ebx+esi*2+10] mov problema, eax } cout << problema << " a la altura del KM " << altura << " en la " << via << endl; return 0; }
Saludos! Gracias de antemano. Se que os he metido un rollazo, pero es que no puedo avanzar y alli me quedaré si alguien no me lo soluciona...
|
|
|
12
|
Programación / ASM / Assembler PowerPC
|
en: 3 Agosto 2010, 23:20 pm
|
Alguien conoce algun ensamblador para PowerPC? Y si no es mucho pedir, algun manual para este?
Gracias, les gradeceré! Quiero iniciarme en este aspecto, y si lo hago, mejor comenzando con PPC.
Saludos!
|
|
|
13
|
Programación / ASM / Libreria en ensamblador (FASM)
|
en: 2 Agosto 2010, 22:11 pm
|
Soy un poco novato en este aspecto, pero quizás a muchos les sea útil para adjuntar librerias a sus programas. Yo, de hecho llevaba tiempo buscando como crear una DLL en FASM, y toqué con el código para hacerlo. Asi podrán usar FASM, que es un ensamblador inmejorable, sin escusas. ; DLL creation example
format PE GUI 4.0 DLL entry DllEntryPoint
include 'win32a.inc'
section '.code' code readable executable
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved mov eax,TRUE ret endp
; VOID ShowErrorMessage(HWND hWnd,DWORD dwError);
proc ShowErrorMessage hWnd,dwError local lpBuffer:DWORD lea eax,[lpBuffer] invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,[dwError],LANG_NEUTRAL,eax,0,0 invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK invoke LocalFree,[lpBuffer] ret endp
; VOID ShowLastError(HWND hWnd);
proc ShowLastError hWnd invoke GetLastError stdcall ShowErrorMessage,[hWnd],eax ret endp
section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL',\ user,'USER32.DLL'
import kernel,\ GetLastError,'GetLastError',\ SetLastError,'SetLastError',\ FormatMessage,'FormatMessageA',\ LocalFree,'LocalFree'
import user,\ MessageBox,'MessageBoxA'
section '.edata' export data readable
export 'ERRORMSG.DLL',\ ShowErrorMessage,'ShowErrorMessage',\ ShowLastError,'ShowLastError'
section '.reloc' fixups data discardable Espero que les sea útil. Este código se encuentra entre uno de los ejemplos de FASM. Las funciones exportadas, en este caso son ShowErrorMessage y ShowLastError. Saludos! PD: Si ya sabian hacer esto, porfavor, no critiquen. Comparto lo que puedo a la comunidad; a algunos les será util, a otros quizás no.
|
|
|
14
|
Programación / Programación C/C++ / MinGW
|
en: 2 Agosto 2010, 03:14 am
|
Hola, Perdonen mi ignorancia pero tengo una pequeña duda respecto a MinGW. Es MinGW un compilador distinto a GCC o es el mismo pero adaptado a windows?
Saludos! Gracias!
|
|
|
15
|
Informática / Hardware / Disco Duro: Pérdida Datos
|
en: 8 Julio 2010, 13:18 pm
|
Hola,
Lo que pregunto ahora es mera curiosidad. Leí por un sitio que los discos duros si no los enciendes cada cierto tiempo, no se si era medio año, perdían datos.
Alguien ha leído algo por el estilo que pudiera responderme? Por favor, intenten abstenerse de 'creo que'. Si alguien tiene una hipótesis contundente exponerla-
Gracias y saludos!
|
|
|
|
|
|
|