Форум программистов, компьютерный форум, киберфорум
Assembler: MASM64, х64/long mode
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Assembler WIN32 API в Windows 7: как вызывать функцию NtCreateThread из ntdll.dll https://www.cyberforum.ru/ assembler-x64/ thread1656833.html
Значит дело такое, решил я узнать, как вызывать функцию NtCreateThread из ntdll.dll Прототип был найден NtCreateThread( OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ProcessHandle, OUT PCLIENT_ID ClientId,
Assembler Переписать ASM код на C++ для x64 сборки приложения
Всем привет. т.к. я нубик в ASM, прошу помочь мне переписать ASM код на C++ (Мне нужно это для x64 сборки приложения) Вот сам код #include "stdafx.h" #include "xrTheora_Surface_mmx.h" #pragma warning( disable : 4731 ) #pragma pack( push ) #pragma pack( 1 )
Assembler Ld и релоки https://www.cyberforum.ru/ assembler-x64/ thread1643761.html
Всем ку. Есть код, который собирается линкером от mingw-w64 (ld) в "сырой код" (нулевая база). Каким образом можно прописать релоки? Ключи (r/q) не отрабатывают. Вообще, каким еще линкером можно обработать obj дабы заиметь "бинарник"?
Assembler Masm64 console hello world Надыбал кое что, вроде и ошибок нет а ничего не выводит( OPTION DOTNAME option casemap:none include temphls.inc include win64.inc include kernel32.inc includelib kernel32.lib OPTION PROLOGUE:rbpFramePrologue https://www.cyberforum.ru/ assembler-x64/ thread1641640.html
Assembler Клавиатурный сервис. Озвучивание клавиатуры, индикация Lock-клавиш
Всем привет, в общем нужно переписать программу под win32. Задание было таким: Клавиатурный сервис. Озвучивание клавиатуры (при нажатии клавиши) и индикация на экране NumLock, CapsLock и ScrollLock . Мне сказали, что передачу параметров можно организовать через stdcall, а насчёт всего остального я не знаю... Помогите пожалуйста! ; Внешние функции EXTERN GetStdHandle EXTERN...
Assembler Компиляция ml64 https://www.cyberforum.ru/ assembler-x64/ thread1582791.html
Для компиляции использую эту команду: ml64.exe /c Hello.asm /link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:main создается .obj и на этом все. Kernel32.lib, user32.lib, link.exe, ml64.exe в одной папке. Выдает ошибку "Отказано в доступе" или не найден LINK.EXE. подскажите как исправить??? (-:
Assembler Как правильно использовать "assume" в ml64.exe? Как правильно использовать "assume" в ml64.exe? Если в 32-битной версии я объявлял так: (assume eax: ptr STRUCT), то в 64-битной (assume rax: ptr STRUCT) выдает ошибку. Помогите пожалуйста. https://www.cyberforum.ru/ assembler-x64/ thread1548962.html Как создать 64-битное exe приложения на ассемблере? Assembler
Какие ассемблеры использовать, как сделать, что бы они в 64-битные программы делали?
Assembler Предел адресации Фактически, адресация выше 40 бит для ОЗУ (это уже 1 терабайт) крайне маловероятна... Следовательно, вопрос: используются ли для чего-либо ещё эти занебесные цифры (например, для отображения видеопамяти)? Или же таких диапазонов long mode не предусматривает? https://www.cyberforum.ru/ assembler-x64/ thread1525414.html Assembler Запуск кода MASM под Windows 7 x64 Понимаю, что эту тему поднимали уже сто раз, но я только начал изучать Ассемблер и вопросов у меня много. Работаю я на Windows 7 x64 и мне хочется работать в нормальной виндовой IDE, а не из DOS'а в виртуальной машине. Идеально конечно использовать Visual Studio, но как не понятно. Там есть возможность вставлять блоки кода на ассемблере в код файла на С, но я предполагаю, что тогда не удастся... https://www.cyberforum.ru/ assembler-x64/ thread1524126.html
Assembler MASM64 and FASM64, секции .const
Путеводитель по написанию вирусов под Win32: 3. Заголовок PE — Архив WASM.RU То, что большинство программистов называет флагами, формат COFF/PE называет характеристиками. Это поле является множеством флагов, которые задают аттрибуты секции (такие как код/данные, доступно ли для чтения или для записи). Чтобы получить полный список всех возможных аттрибутов секций, смотрите IMAGE_SCN_XXX_XXX...
Assembler MASM64 Menu, Ошибка построения ресурсов https://www.cyberforum.ru/ assembler-x64/ thread1416753.html
Я так хотел подружиться с менюшками, но никак. option dotname option casemap:none option PROLOGUE:rbpFramePrologue option EPILOGUE:rbpFrameEpilogue ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= include temphls.inc include win64.inc include kernel32.inc include user32.inc
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
0

Создание консольных приложений в 64-разрядной Windows Seven - Assembler - Ответ 8825355

02.03.2016, 06:46. Показов 15206. Ответов 22
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Создаю папку masm64
в каталоге masm64 создаю подкаталоги bin, include, lib, examples
в каталоги include, lib копирую содержимое masm64.zip взятого с сайта httр://dsmhеlр.nаrоd.ru/еnvirоnmеnt.htm (в названии сайта латинские буквы "p", "e", "a", "o" заменены на буквы кириллицы, чтобы парсер сайта cyberforum.ru не испортил ссылку). Содержимое для каталога bin (cvtres.exe, link.exe, ml64.exe, msobj80.dll, mspdb80.dll, msvcp80.dll, msvcp90.dll, msvcr80.dll, msvcr90.dll, rc.exe, rc.hlp, rcdll.dll) взято из комплекта C++ компиляторов от Microsoft Microsoft Windows SDK for Windows 7 and .NET Framework 4 (распространяется бесплатно)
Создаю в папке Include файл win64a.inc следующего содержания
Кликните здесь для просмотра всего текста
Код
OPTION DOTNAME
include temphls.inc
include win64.inc
include kernel32.inc
includelib kernel32.lib
include user32.inc
includelib user32.lib
include comdlg32.inc
includelib comdlg32.lib
include comctl32.inc
includelib comctl32.lib
include gdi32.inc
includelib gdi32.lib
includelib msvcrt.lib
include msvcrt.inc

OPTION PROLOGUE:none
OPTION EPILOGUE:none
Пишу bat-файл следующего содержания
Кликните здесь для просмотра всего текста
Код
cls
set masm64_path=\masm64\
set filename= <--- здесь будет имя asm-файла
del %filename%.exe
%masm64_path%bin\ml64 /Cp /c /I"%masm64_path%Include" %filename%.asm || exit
%masm64_path%bin\link /SUBSYSTEM:CONSOLE /LIBPATH:"%masm64_path%Lib" ^
/entry:WinMain %filename%.obj /LARGEADDRESSAWARE:NO ^
/ALIGN:16 /SECTION:.text,W /BASE:0x400000 || exit
del %filename%.obj
содержимое asm-файла
Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
include win64a.inc
BLACK   equ 0
BLUE    equ 1
GREEN   equ 2
CYAN    equ 3
RED equ 4
PURPLE  equ 5
YELLOW  equ 6
SYSTEM  equ 7
GREY    equ 8
BRIGHTBLUE equ 9
BRIGHTGREEN equ 10
BRIGHTCYAN equ 11
BRIGHTRED equ 12 
BRIGHTPURPLE equ 13
BRIGHTYELLOW equ 14
WHITE   equ 15
MAXSCREENX = 80
MAXSCREENY = 25
buffersize = 200
X = 0
Y = 10
.code
WinMain proc
local LENS:qword
local hOut:qword
local BUFF[buffersize]:byte
local ConsoleWindow:SMALL_RECT
 
        push rbp
    mov ebp,esp
    sub esp,(28h+2*8+buffersize+sizeof SMALL_RECT+15)and(-16)
 
    call    FreeConsole;release the existing console
        call    AllocConsole;create the console
        mov ecx,STD_OUTPUT_HANDLE
        call    GetStdHandle;receive the handle for a conclusion
        mov     hOut,rax
        mov rcx,rax     ; hConsoleOutput
    call    GetLargestConsoleWindowSize     
;   rax return in 31-16 bits: dwCoord.y
;                 15-00 bits: dwCoord.x
 
        lea r8d,ConsoleWindow
    mov [r8+SMALL_RECT.Left],0
    mov [r8+SMALL_RECT.Top],0
 
    sub ax, MAXSCREENX
    sbb edx, edx
    and ax, dx
    add ax, MAXSCREENX-1
    mov [r8+SMALL_RECT.Right],ax
 
    shr eax, 16
    sub eax, MAXSCREENY
    sbb edx, edx
    and eax, edx
    add eax, MAXSCREENY-1
    mov [r8+SMALL_RECT.Bottom],ax
 
    mov edx,TRUE        ; bAbsolute
    mov rcx,hOut        ; hConsoleOutput
    call    SetConsoleWindowInfo
 
    mov edx,MAXSCREENY*10000h+MAXSCREENX;dwCoord
    mov rcx,hOut        ; hConsoleOutput
    call    SetConsoleScreenBufferSize;establish the new size of a window of the console
    mov     ecx,offset STR2
    call    SetConsoleTitle     ;definition of a title bar
        mov     edx,Y*10000h+X
        mov     rcx,hOut
        call    SetConsoleCursorPosition;establish a cursor position
        mov     edx,BRIGHTGREEN     ;color of the output text
        mov     rcx,hOut
        call    SetConsoleTextAttribute ;set color attributes of the output text
        mov     qword ptr [rsp+20h],0
    lea     r9d,BUFF
        mov     r8d,sizeof STR1
    mov     edx,offset STR1
    mov     rcx,hOut
        call    WriteConsole        ;display a line of symbols
        mov     ecx,STD_INPUT_HANDLE
        call    GetStdHandle        ;receive HANDLE for input
        mov     qword ptr [rsp+20h],0
    lea     r9d,LENS
        mov     r8d,buffersize
    lea     edx,BUFF
        mov     rcx,rax
        call    ReadConsole     ;wait for input of a line of symbols
        mov     edx,BRIGHTCYAN      ;color of the input text
        mov     rcx,hOut
        call    SetConsoleTextAttribute ;set color attributes of the output text
        mov     qword ptr [rsp+20h],0
    lea     r9d,LENS
        mov     r8d,[r9]        ;length of the removed line
    lea edx,BUFF
        mov rcx,hOut
        call    WriteConsole
        mov     ecx,3000        ;small delay
    call    Sleep
        call    FreeConsole     ;close the console
    mov ecx,ecx
        call    ExitProcess
WinMain endp
STR1 db 'Enter line of any symbols and press "Enter":',13,10
STR2 db 'Iczelion''s tutorial #38a',0
end


Вернуться к обсуждению:
Создание консольных приложений в 64-разрядной Windows Seven Assembler
Миниатюры
Создание консольных приложений в 64-разрядной Windows Seven  
Вложения
Тип файла: zip masm64.zip (3.84 Мб, 168 просмотров)
Тип файла: zip lesson01.zip (2.6 Кб, 76 просмотров)
3
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2016, 06:46
Готовые ответы и решения:

Создание консольных приложений Windows
Когда-то у меня был Microsoft Visual C++ и я лишь клацал F5 для компиляции консольных приложений....

Найти книгу "Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows" в djvu
Здравствуйте. Весь инет обыскал, а найти книгу &quot;Создание эффективных WIN32-приложений с учетом...

Создание консольных приложений на С #. Нужно написать программу
Здравствуйте, уважаемые обитатели форума, мне нужна ваша помощь, помогите написать программу ... \...

Запуск консольных приложений с кириллицей на англоязычной Windows
Всем привет! Установил Windows 10 с английским языком интерфейса. Сразу столкнулся с проблемой:...

22
02.03.2016, 06:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2016, 06:46
Помогаю со студенческими работами здесь

Как создать свой шрифт для консольных приложений Windows XP?
я знаю, что у windows используется два шрифта для консоли: 1) Lucida Console - это библиотека...

Установка 64-разрядной поверх 32-разрядной Windows 7
Здравствуйте! купил бук, на нем стоит 7базовая 32бита, можно както поставить 64 не сшибая винду?...

Разработка консольных приложений
Как в консольном приложении обеспечить вывод текста в кодировке 866 (MS-DOS) при наборе его в...

Компиляция консольных приложений VC 6.0
Может быть я совсем дурак, но программировать ни разу не пробовал и даже не знаю с чего начать. Вот...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru