Programación General > ASM (Ensamblador)

 Traducción de dos sentencias NASM a GAS

(1/3) > >>

clicklose:
Alguien podrías decirme como traducir este código (en sintaxis de NASM) a sintaxis de GAS?
mov dword [ebp - 4], eax      
lea ebx, [ebp - 256]

Yo lo escribí así:

movl %eax , -4(%ebp)
leal  - 256(%ebp) , %ebx

Estaría bien?

Saludos

m0skit0:
Bueno, NASM acepta tanto sintaxis Intel como AT&T.

A primera vista, está bien para GAS. ¿Te da algún error/problema?

clicklose:
En realidad forma parte de un código bastante largo, y quería esperar a traducirlo completamente antes de compilar, tengo otras dudas como por ejemplo lineas de este estilo:

mov dword [ebp - 76], 'Hi, '
mov dword [ebp - 72], 'this'
mov dword [ebp - 68], ' is '
mov dword [ebp - 64], 'a pr'
mov dword [ebp - 60], 'oof '

que no se como traducirlas o también
mov cx, [ebp - 20]
mov edx, End - main
Con End y main como etiquetas

La 1° me deja la dudas por el tamaño de los operadores
Sería movw -20(%ebp) , %cx ?
Por las primera lineas y la última no tengo idea :S
Gracias por la ayuda
Saludos

m0skit0:

--- Código: ASM ---mov dword [ebp - 76], 'Hi, 'mov dword [ebp - 72], 'this'mov dword [ebp - 68], ' is 'mov dword [ebp - 64], 'a pr'mov dword [ebp - 60], 'oof ' Buf, esto me parece una chorrada inútil, no sé si GAS aceptará eso, pero weno, siempre puedes pasarlo a hexadecimal:


--- Código: ASM ---movl 0x48692C20, -76(%ebp) (no recuerdo cómo se definían los números hexadecimales en GAS  :P )


--- Cita de: "clicklose" ---La 1° me deja la dudas por el tamaño de los operadores
Sería movw -20(%ebp) , %cx ?
--- Fin de la cita ---
Sip


--- Código: ASM ---mov edx, End - main Hm no sé si GAS aceptará esto, pero puedes cargar las direcciones en registros (LEA) y computar dicha resta.

clicklose:
Las lineas en la que carga texto las necesito hacer así para no usar sección .data, había pensado la de los hexadecimales (te faltó el "$" antes del número), es una pena que GAS no tenga una forma más cómoda como la de NASM
Voy a probar el de las etiquetas, para la diferencia


--- Código: ASM ---leal End , %edileal main , %esisubl %esi , %edi estaría bien decís?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa