Функция "int 21h" с компилятором MASM в среде SASM - Assembler

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

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

С помощью MASM в среде SASM скомпилировано:
.386 
.model flat, stdcall 
.code 
start: 
        mov    ah,    00h
        int    21h 
end start
При отладке указана ошибка:
Program received signal SIGSEGV, Segmentation fault.
Если создать .exe и запустить, то вместо закрытия приложения происходит
Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: char2.exe Версия приложения: 0.0.0.0 Отметка времени приложения: 568ff17d Имя модуля с ошибкой: char2.exe Версия модуля с ошибкой: 0.0.0.0 Отметка времени модуля с ошибкой: 568ff17d Код исключения: c0000005 Смещение исключения: 00001002 Версия ОС: 6.1.7601.2.1.0.256.1 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789 Ознакомьтесь с заявлением о конфиденциальности в Интернете: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419 Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом: C:\Windows\system32\ru-RU\erofflps.txt
То же самое происходит при задании других команд в регистре AH. Что нужно добавить, чтобы функция int 21h начала работать?

Решение задачи: «Функция "int 21h" с компилятором MASM в среде SASM»

textual
Листинг программы
start: 
   mov   ah, 1
   int   21h 
   mov  ah,4Ch
   int   21h
end start

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

  1. Переменная ah используется для хранения регистра состояния процессора после выполнения команды int 21h.
  2. Команда int 21h передает управление на уровень ввода-вывода.
  3. Переменная 4Ch представляет собой константу, которая используется для завершения работы программы.
  4. Команда int 21h используется для выполнения функции завершения работы программы.
  5. Код не содержит никаких других переменных или команд.
  6. Код не выполняет никаких сложных операций или вычислений.
  7. Код не содержит ошибок или неопределенного поведения.
  8. Код не использует какие-либо библиотеки или функции, кроме int 21h.
  9. Код не содержит комментариев или пояснений к своей работе.
  10. Код не является частью более крупной программы или системы.
  11. Код не содержит никаких управляющих структур или циклов.
  12. Код не выполняет никаких операций с памятью или вводом-выводом.
  13. Код не содержит никаких команд перехода или возврата.
  14. Код не содержит никаких операций сравнения или логических операций.
  15. Код не содержит никаких операций с регистрами процессора, кроме ah и 4Ch.
  16. Код не содержит никаких операций с портами ввода-вывода.
  17. Код не содержит никаких операций с сегментами памяти.
  18. Код не содержит никаких операций с регистрами управления процессором.
  19. Код не содержит никаких операций с флагами процессора.
  20. Код не содержит никаких операций с буферами или указателями.

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

5   голосов , оценка 3.8 из 5
Похожие ответы