Пример "шапки" и сегментации EXE программы под DOS для FASM - Assembler

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

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

...доброго времени суток!... возник вопрос: где можно посмотреть пример (для начала самого простого, в стиле Hello, World! и т. п.) для DOS-овского EXE-шника (с *.COM разобрался) под FASM? Интересуют "шапка" программы и сегментация. Заранее благодарен за ответ.

Решение задачи: «Пример "шапки" и сегментации EXE программы под DOS для FASM»

textual
Листинг программы
  1. ; fasm example of writing multi-segment EXE program
  2.  
  3. format MZ
  4.  
  5. entry main:start            ; program entry point
  6. stack 100h              ; stack size
  7.  
  8. segment main                ; main program segment
  9.  
  10.   start:
  11.     mov ax,text
  12.     mov ds,ax
  13.  
  14.     mov dx,hello
  15.     call    extra:write_text
  16.  
  17.     mov ax,4C00h
  18.     int 21h
  19.  
  20. segment text
  21.  
  22.   hello db 'Hello world!',24h
  23.  
  24. segment extra
  25.  
  26.   write_text:
  27.     mov ah,9
  28.     int 21h
  29.     retf

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

В коде представлена шапка и сегментация EXE программы под DOS для FASM:

  1. Форматирование MZ.
  2. Указание точки входа в программу: main:start.
  3. Размер стека: 100h.
  4. Сегмент основной программы: main.
  5. Код программы начинается с метки start.
  6. Перемещение регистра ax в ds.
  7. Перемещение регистра dx в адрес строки 'Hello world!' в сегменте text.
  8. Вызов процедуры write_text в сегменте extra.
  9. Перемещение регистра ax в 4C00h.
  10. Ввод команды int 21h для выхода из программы.
  11. Сегмент текста: text.
  12. Строка 'Hello world!' с символом перевода строки в конце.
  13. Сегмент дополнительных процедур: extra.
  14. Процедура write_text перемещает регистр ah в 9 и вызывает int 21h для вывода строки.
  15. Возврат из процедуры с использованием retf.
  16. Программа завершается.

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы