Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: MASM64, х64/long mode
Войти
Регистрация
Восстановить пароль
 
Феликс Фалько
2 / 2 / 1
Регистрация: 05.08.2016
Сообщений: 69
#1

ASM + C++ Как вывести в консоль ? - Assembler

17.09.2017, 17:35. Просмотров 333. Ответов 2
Метки нет (Все метки)

Прикрепил файл .asm к проекту на с++ а в примере, который скачал указан лишь вывод в окно windows. А как вывести на консоль ? Вот код файла асм и файла с++

http://www.cyberforum.ru/assembler/thread671810.html
с++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
 
extern "C"
{
    void hello_world_asm();
};
 
int main(int argc, char** argv)
{
    hello_world_asm();
    
    _getch();
    return 0;
}
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
PUBLIC hello_world_asm
 
_TEXT   SEGMENT
 
EXTERN MessageBoxA: PROC
EXTERN GetForegroundWindow: PROC
 
hello_world_asm PROC
 
    push rbp ; save frame pointer
    mov rbp, rsp ; fix stack pointer
    sub rsp, 8 * (4 + 2) ; allocate shadow register area + 2 
    
    call GetForegroundWindow
    mov rcx, rax
 
    mov rdx, offset hello_msg
    mov r8, offset info_msg
    mov r9, 0 ; MB_OK
 
    and rsp, not 8 ; align stack to 16 bytes prior to API call
    
    call MessageBoxA
 
    mov rsp, rbp
    pop rbp
 
    ret 
hello_world_asm ENDP
 
_TEXT   ENDS
 
 
_DATA SEGMENT
    hello_msg db "HELLO ASM WORLD", 0
    info_msg  db "Info", 0
    buf dw 2048 DUP ('eb')
_DATA ENDS
 
END
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2017, 17:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос ASM + C++ Как вывести в консоль ? (Assembler):

Создание проекта с участием c++ и asm модулей. Ошибка asm модуля
Доброго времени суток! Подскажите, пожалуйста, как исправить данную ошибку...

Вывести текст в консоль
Всем привет) Опять мне нужна помощь. Изучаю простое консольное приложение под...

Вывести байты в консоль
Есть буффер, нужно вывести его содержимое в консоль функцией WriteConsole....

Вывести сообщение на консоль
Ребят помогите пожалуйста новичку. Я нажимаю Компиляция === Компилировать с...

При сборке выдает ошибку "MASM: fatal error A1000: : 1.asm.asm"
"MASM : fatal error A1000: : 1.asm.asm :\1>link16 /TINY 1.asm.obj,...

2
ФедосеевПавел
Модератор
3412 / 1909 / 815
Регистрация: 01.02.2015
Сообщений: 6,449
17.09.2017, 17:43 #2
http://www.cyberforum.ru/assembler-x64/thread1675046.html
Скорее всего, нужна последовательность вызовов Win API
GetStdHandle(STD_OUTPUT_HANDLE)
WriteConsole
0
Jin X
❗❗ RTFM 👈
3997 / 1141 / 151
Регистрация: 14.12.2014
Сообщений: 2,282
Записей в блоге: 4
Завершенные тесты: 2
21.09.2017, 16:35 #3
Лучше WriteFile, чтобы можно было перенаправить в файл, если что.
Или просто printf, без заморочек (crt_printf он может называться в MASM).

Добавлено через 2 минуты
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
.686P
.MODEL Flat,StdCall
OPTION CASEMAP:NONE
 
INCLUDE         \MASM32\INCLUDE\WINDOWS.INC
INCLUDE         \MASM32\INCLUDE\KERNEL32.INC
INCLUDE         \MASM32\INCLUDE\USER32.INC
INCLUDE         \MASM32\INCLUDE\MSVCRT.INC
 
INCLUDELIB      \MASM32\LIB\KERNEL32.LIB
INCLUDELIB      \MASM32\LIB\USER32.LIB
INCLUDELIB      \MASM32\LIB\MSVCRT.LIB
 
.DATA
 
Text            DB      'Hello world!',0
 
.CODE
 
Start:
 
                invoke  crt_printf, ADDR Text
                invoke  ExitProcess, NULL
 
END             Start
С 64 битами аналогично...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2017, 16:35
Привет! Вот еще темы с решениями:

Не получается вывести результат в консоль
Сижу делаю лабораторную в институт. Одно из заданий звучит так:необходимо...

Отследить нажатия клавиш F1-F10 и вывести нажатую клавишу в консоль
Отследить нажатия клавиш F1-F10 и вывести нажатую клавишу в консоль

Как объявить переменную на языке ASM
Пытаюсь изучать ассемблер, но это получается хуже, чем хочется. Остаются "белые...

Метод класса как callback(поясните asm)
Всем привет! Как то давно нашёл на просторах нэта интересный код, который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru