Загадки мозга

Тема в разделе "WASM.HEAP", создана пользователем Blackbeam, 19 июн 2011.

  1. q2e74

    q2e74 Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    1.015
    у вас исходник(не знаю про какой именно вы говорите) проходит линковщик и загрузчик. а возможно и компилятор. поэтому исходик хорошо, но реальность она не всегда в исходнике.
     
  2. q2e74

    q2e74 Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    1.015
    зачем вам эта строчка? я конечно понимаю что сначала вы берете и делаете последний знак либо 0 либо 5, что бы потом взять по модулю 2 в 15. Но зачем такой ранд нужен? взяли бы RDRAND/RDSEED.

    уже набор инструкций на выброс
     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    Я бы попросил, это rand из стандартной сишной библиотеки, но он довольно всратый, да, даже для линейного конгруэнтного генератора.
    --- Сообщение объединено, 13 июн 2026 ---
    Стандартная сишная библиотека уже есть в системе. В венде есть msvcrt.dll, которая есть во всех версиях, хоть она очень старая в плане стандарта. Какие-то реализации есть в других системных библиотеках, типа lstrlenA. Нужны ли тебе эти знания - нет.
     
  4. schuler

    schuler New Member

    Публикаций:
    0
    Регистрация:
    23 фев 2021
    Сообщения:
    17
    Код (ASM):
    1.  
    2.                 .386P
    3. ifndef MASM
    4.                 model flat, c          
    5. LOCALS
    6. endif
    7.                 ASSUME   CS: FLAT, DS: FLAT, SS: FLAT, ES: FLAT
    8. ;----------------------------------------------------------------------
    9. _TEXT           SEGMENT PUBLIC DWORD USE32 PUBLIC 'CODE'
    10. _TEXT           ENDS
    11. ;----------------------------------------------------------------------
    12. _TEXT           SEGMENT PUBLIC DWORD USE32 PUBLIC 'CODE'
    13. EXTRN          _MyRealWinMain:NEAR    
    14. _TEXT           ENDS
    15. ;----------------------------------------------------------------------
    16. _TEXT           SEGMENT  DWORD USE32 PUBLIC 'CODE'
    17.                 public stdcall WinMain
    18. WinMain         PROC NEAR
    19.                 jmp     _MyRealWinMain
    20. WinMain         ENDP
    21. _TEXT           ENDS
    22.                 END
    23.  
    Код (C):
    1.  
    2. #include <windows.h>
    3. #pragma hdrstop
    4. extern "C" int _MyRealWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    5. {
    6.     char* cppBuffer = new char[1024];
    7.  
    8.     lstrcpyA(cppBuffer, "C++ Runtime is fully working!\n\n");
    9.     lstrcatA(cppBuffer, "- Transited via TASM jmp: OK\n");
    10.     lstrcatA(cppBuffer, "- Standard c0w32.obj startup: Active\n");
    11.     lstrcatA(cppBuffer, "- Operator 'new' and 'delete': OK");
    12.     MessageBoxA(NULL, cppBuffer, "C++ Bare Metal", MB_OK | MB_ICONINFORMATION);
    13.     delete[] cppBuffer;
    14.     return 0;
    15. }
    16.  
    При отрезании VCL из exe, полученного старой версией C++ Builder получился
    размер 51kb, при этом оба рантайма (С/C++) на месте, а пустой VCL проект занимает 335kb. Просил сначала у гугл ИИ,который не gemini, вырезать VCL, но при этом оставить класс Ansistring, который находится в файлах dstring.cpp и dstring.h, но не собралось.
     
    Последнее редактирование: 14 июн 2026