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

Формулировка задачи:

Прикрепил файл .asm к проекту на с++ а в примере, который скачал указан лишь вывод в окно windows. А как вывести на консоль ? Вот код файла асм и файла с++ с++
#include "stdafx.h"
 
extern "C"
{
    void hello_world_asm();
};
 
int main(int argc, char** argv)
{
    hello_world_asm();
    
    _getch();
    return 0;
}
asm
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


textual

Код к задаче: «ASM + C++ Как вывести в консоль ? - Assembler»

.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
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 3.400 из 5

Источник