Fasm, Hello World x64 компилится но не работает - Assembler

Узнай цену своей работы

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

На винде x32 программа нормально работала код был
format binary
use16
org 100h
 
mov ah,9
mov dx,msg
int 21h
 
mov ah,0
int 16h
 
int 20h
 
msg db 'Hello World$'
Попытался переписать под x64, компилируется без ошибок, но при запуске как только открывается консоль, выскакивает сообщение "Прекращена работа программы". Подскажите что я нетак изменил в коде. И если не сложно покажите пример простого консольного приложения на asm под x64. Вот код:
format PE64
use64
 
mov ah,9
mov rdx,msg
int 21h
 
mov ah,0
int 16h
 
int 20h
 
msg db 'Hello World$'
Все понял в чем проблема. Посоветуйте плз чтонибудь почитать по assembler'у, только не старье под DOS. Под x64 желательно на русском. И чтоб были примеры консольных приложений(к примеру вводим массив, выполняем сортировку, и выводим).

Решение задачи: «Fasm, Hello World x64 компилится но не работает»

textual
Листинг программы
Format PE64
use64
mov ah,9
mov rdx,hello
int 21h
hello db 'hewllo',24h

Объяснение кода листинга программы

  1. Установка сегмента данных (DS) в 9
  2. Передача в регистр RDX содержимого переменной hello
  3. Вызов прерывания 21h для вывода строки на экран
  4. Определение строки 'hewllo' в области данных (hello db 'hewllo',24h)
  5. Значение 24h в поле смещения указывает на длину строки 'hewllo' (24 байта)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

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