Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - alienxz77b

#1
ASM / Error de ld en nasm
2 Noviembre 2021, 03:17 AM
Hola, tengo el siguiente error de ld:
c:/program files (x86)/sasm/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lib32

y no se como solucionarlo, ya busque en google pero no funciona  :-(
Gracias de antemano por la ayuda ;D
#2
ASM / Variables macros de NASM
20 Octubre 2021, 02:26 AM
Hola  :D gracias por las repuestas a esta pregunta :)
Tengo el siguiente código de ensamblador nasm que no funciona  :-\ pero no se porque:
Código (asm) [Seleccionar]

%include "io.inc"
%macro print 1
   %%msg2 dw 12 ; esta la linea del error :(
   push eax
   push ecx
   mov eax, %1
   mov ecx, -1
   while:
   add ecx, 1
   cmp byte [eax+ecx], 0
   jmp PRINT_CHAR [eax+ecx]
   jne while
   pop ecx
   pop eax
%endmacro
section .data
msg db "Hola", 13, 0
section .text
global CMAIN
CMAIN:
   xor eax, eax
   print msg
   ret 0

Mi intención con esto es crear una variable en una macro para usarla en un bucle, esta en una macro que imprime caracteres para que sepa si funciona o no  ;D pero no funciona  :(, si cambio el valor de 12 a 500 o 250, se traba el programa y no ejecuta :(, tambien si uso algo como;
Código (asm) [Seleccionar]
%%msg2 db "Hola mundo"
No funciona
Gracias por las respuestas :)
Edit:
Logre hacerlo funcionar con el siguiente codigo:
Código (asm) [Seleccionar]

%macro print 1
section .data
    msg2 db "Hola mundo";
    section .text
    push eax
    push ecx
    mov eax, %1
    mov ecx, -1
    while:
    add ecx, 1
    cmp byte [eax+ecx], 0
    jmp PRINT_CHAR [eax+ecx]
    jne while
    pop ecx
    pop eax
%endmacro
#3
Hola :), primero gracias por tomarse el tiempo para leer esta pregunta  ;D

Tengo este código ensamblador de NASM que realice para probar una teoría de condicionales
el chiste es que no puedo hacerlo correr debido a un problema que me sale:
Código (mpasm) [Seleccionar]
%include "io.inc"
%macro print 1
   push eax
   push ecx
   mov eax, %1
   mov ecx, -1
   while:
   add ecx, 1
   cmp byte [eax+ecx], 0
   jmp PRINT_CHAR [eax+ecx]
   jne while
   pop ecx
   pop eax
%endmacro
%macro strcpy 2
   push eax
   push ecx
   push edx
   mov eax, %1
   mov edx, %2
   mov ecx, -1
   .while:
   add ecx, 1
   cmp byte [eax+ecx], 0
   mov [edx+ecx], byte [eax+1]; al parecer en esta linea de codigo esta el error  :-[
   jne .while
   je print edx
   pop edx
   pop ecx
   pop eax
%endmacro
;segment data
section .data
msg db "Hola", 13, 0
msg2 db "     ", 0
section .text
global CMAIN
CMAIN:
   xor eax, eax
   call strcpy msg, msg2
   ret 0

Error:

C:\Users\Windows\AppData\Local\Temp\SASM\program.asm:40: error: invalid combination of opcode and operands
gcc.exe: error: C:\Users\Windows\AppData\Local\Temp\SASM\program.o: No such file or directory


No se que hacer para solucionarlo, programo en windows bajo el IDE de SASM
Agradezco toda la ayuda  ;D
Edit:
En la linea 25 era:
Código (asm) [Seleccionar]
    mov [edx+ecx], byte [eax+ecx]; al parecer en esta linea de codigo esta el error  :-[
:xD
#4
Hola  ;D
Recientemente que estado programando bajo controles edit haciendo algo parecido a un codeblocks; me di cuenta que el ide tiene las palabras especiales de c y c++ de un color
azul:
https://photos.app.goo.gl/dui3XPpEBnnsr5SN6
Y no se como hacer esto con un control edit comun, hasta ahora tengo este codigo:

      case WM_CTLCOLOREDIT:{
          if((HWND)lParam==edit2){
            SetBkMode((HDC)wParam, TRANSPARENT);
            SetBkColor((HDC)wParam, RGB(0, 0, 255));
            UpdateWindow(edit2);
            return (LRESULT)colorFondo;
          }
          break;
      }

El color del texto en el edit sale de un solo color pero me gustaria que cuando por ejemplo escriba en control edit me aparezca  "Ejecutar HolaMundo.c" de color azul
Gracias por la ayuda por adelantado y la atencion prestada
#5
Hola, recientemente que estado programando bajo la api de Windows programando algo parecido a un bloc de notas, me he encontrado con el problema de que al abrir un archivo, leer su contenido y ponerlo en mi control edit los saltos de line no aparecen, ya he buscado alguna solución a este problema en Google y la documentación de MSDN pero no he hallado nada

Al parecer cuando escribo texto en el control edit y lo guardo,  y después abro el archivo en el bloc de notas me aparecen dos saltos de linea

Podrían por favor ayudarme a visualizar una salto de linea en un control edit y guardarlo como tal sin que se repita el salto de linea

Perdón si escribo mal o no me explico bien, es que soy nuevo

Gracias por adelantado