Функция «Hello World» без использования C printf

ОБНОВЛЕНО

Это мой второй день работы сNASM, После полного понимания этого

section .programFlow
    global _start
    _start:
        mov edx,len
        mov ecx,msg
        mov ebx,0x1    ;select STDOUT stream
        mov eax,0x4    ;select SYS_WRITE call
        int 0x80       ;invoke SYS_WRITE
        mov ebx,0x0    ;select EXIT_CODE_0
        mov eax,0x1    ;select SYS_EXIT call
        int 0x80       ;invoke SYS_EXIT
section .programData
    msg: db "Hello World!",0xa
    len: equ $ - msg

Я хотел обернуть этот материал внутри функции сборки. Все (или большинство) примеров в Интернете используютextern и звонитprintf функцияC (см. код ниже) - и я не хочу этого. Я хочу научиться создавать функцию "Hello World" в сборке без использованияC printf (или даже другие внешние вызовы функций).

global  _main
extern  _printf

section .text
    _main:
        push    message
        call    _printf
        add     esp, 4
        ret
section .data
    message: db "Hello, World", 10, 0

Обновить

Я занимаюсь сборкой для Linux, но так как у меня нет Linux-бокса, я запускаю свой ассемблерный код здесьcompile_assembly_online.

Ответы на вопрос(3)

Ваш ответ на вопрос