Сообщение "terminated, exit code 2" при запуске программы в TD - Assembler

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

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

когда запускаю TD выбивает terminated , exit code 2
Листинг программы
  1. .model small
  2. .stack 100h
  3. .data
  4. TWO equ 2
  5. VECTOR dw 1, 5, 7, 2, 4, 3, 6, 9, 10, 8
  6. .code
  7. .startup
  8. lea bx, VECTOR
  9. mov ax, [bx]+8
  10. mov dx, TWO
  11. Xchg ax, dx
  12. mov ah, 4ch
  13. int 21h
  14. end

Решение задачи: «Сообщение "terminated, exit code 2" при запуске программы в TD»

textual
Листинг программы
  1. .model small
  2. .stack 100h
  3. .data
  4. TWO equ 2
  5. VECTOR db 1, 5, 7, 2, 4, 3, 6, 9, 10, 8
  6. .code
  7. startup:
  8. mov ax,@data           сегментный регистр DS
  9. mov ds,ax              ;помещается адрес сегмента данных
  10. mov bx, offset VECTOR  ;загружаем в bx адрес VECTOR
  11. mov ax, [bx]+8         ;загружаем девятый элемент массива (число 10)
  12.                        ;AH - смещение, AL - значение
  13. mov dx, TWO            ;загружаем в dx значение константы TWO
  14. xchg ax, dx            ;меняем местами регистры ax и dx
  15.  
  16. mov ax, 4c00h          ;выход
  17. int 21h
  18. end startup

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

Выполнение кода:

  1. .model small — Эта инструкция устанавливает модель памяти, используемую в программе. В данном случае используется модель small, что означает, что сегменты данных и кода имеют по 64 КБ.
  2. .stack 100h — Эта инструкция устанавливает стек размером в 100 байт.
  3. .data — Эта инструкция определяет сегмент данных.
  4. TWO equ 2 - Эта инструкция определяет константу TWO со значением 2.
  5. VECTOR db 1, 5, 7, 2, 4, 3, 6, 9, 10, 8 - Эта инструкция определяет массив VECTOR, содержащий числа от 1 до 10.
  6. .code — Эта инструкция определяет сегмент кода.
  7. startup: — Эта инструкция определяет точку входа в программу.
  8. mov ax,@data — Эта инструкция загружает в регистр AX адрес сегмента данных.
  9. mov ds,ax — Эта инструкция присваивает сегменту данных значение из регистра AX.
  10. mov bx, offset VECTOR — Эта инструкция загружает в регистр BX адрес массива VECTOR.
  11. mov ax, [bx]+8 - Эта инструкция загружает в регистр AX девятый элемент массива VECTOR, то есть число 10.
  12. mov dx, TWO — Эта инструкция загружает в регистр DX значение константы TWO.
  13. xchg ax, dx — Эта инструкция меняет местами значения в регистрах AX и DX.
  14. mov ax, 4c00h — Эта инструкция устанавливает значение в регистре AX равным 4C00H.
  15. int 21h — Эта инструкция вызывает функцию 21, которая завершает работу программы и возвращает в DOS.
  16. end startup — Эта инструкция указывает на конец программы.

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


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

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

6   голосов , оценка 3.667 из 5

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

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

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