Как написать hello world под windows на ассемблере?
Пишу hello world на ассемблере, но все гайды под DOS, мне нужен windows, пишу на FASM (в SASM), дайте код, пожалуйста, для изучения.
Вариант а: цепануть каких-нибудь функций из winapi и вызывать их из ассемблера
вариант б: выучить си, писать подпрограммы на ассемблере и вызывать их из программы на си с учётом соглашения о вызовах
я на линухе использовал второй варик, когда асм учил
а вообще если есть гайд под дос, то лучше просто dosbox настрой
В SASM элементарный вывод собственными макросами PRINT_DEC, PRINT_STRING и так далее Есть так-же ввод. Смотрите в Help
В остальном SASM - IDE и использует один из ассемблеров NASM, MASM, FASM, GAS соотв. Синтаксис будет отличаться. Ну или в принципе если настроить правильно опции - можно подставить другой.
Внизу скрин для NASM (он по умолчанию в SASM):
ЗЫЖ Увидел коммент про WinAPI - там большое кол-во функций управляющих ОС Windows, там и работа с окнами и с файлами и устройствами и так далее Их ОЧЕНЬ много. Проще смотреть MSDN. Н-р MessageBox типичная WinAPI функция вывода простейшего диалог. Окна.
https://docs.microsoft.com/...messagebox
Format PE console
entry start
include 'include\win32a.inc'
section '.data' data readable writeable
msg: db 'hello world', 0
section '.text' code readable executable
start:
ccall [printf], msg
stdcall [ExitProcess], 0
section '.idata' import data readable
library kernel, 'kernel32.dll', msvcrt, 'msvcrt.dll'
import kernel, ExitProcess, 'ExitProcess'
import msvcrt, printf, 'printf'
Гугли hello world в машинных кодах.
Не могу сейчас принять участие в дискуссии - нет свободного времени. Очень скоро обязательно выскажу своё мнение.
Я извиняюсь, но, по-моему, Вы не правы. Давайте обсудим это.
Вы попали в самую точку. В этом что-то есть и это хорошая идея. Готов Вас поддержать.
- Запускается ли World of tanks 1.5 под Windows XP Hi. Хотел уточнить запускается ли worldoftanks 1.5 под windows xp? И если запускается, то наблюдаются ли какие-нибудь глюки?
- Помогите подобрать 2 SSD диска под мать один под винду второй под проги? Какие по советуете? Разъёмы на материнке вот такие: M. 2 разъем 3 с ключом M, тип 2242/2260/2280 поддержка устройств хранения данных (режим SATA & PCIE 3.0 x 4) и M. 2 разъем 3 с ключом M, тип 2242/2260/2280/22110 поддержка устройств хранения данных (режим PCIE 3.0 x 4)
- Смотрите, вот я на ОС Windows написал к примеру print( Hello world ) и так далее Ну и вот поставил расширение .py Смотрите, вот я на ОС Windows написал к примеру print("Hello world") и так далее Ну и вот поставил расширение .py, и я не могу этот файл открыть. Пишет что нет такой программы через которую можно открыть этот файл. Тип, а через какую программу открывается файл с расширением .py
- Не работает Hello World! На ассемблере. Компилятор FASM, платформа Windows. Код в вопросе. Компилируется, но не работает Format pe use32 include 'win32ax.inc' PrintStr: db "Hello, World!",0 sz: dd? pf: dd 0 .code start: invoke AllocConsole invoke WriteConsole, GENERIC_WRITE, addr PrintStr, dword [sz], addr pf, 0 invoke ExitProcess, 0 .end start