Сообщение "terminated, exit code 2" при запуске программы в TD - Assembler
Формулировка задачи:
когда запускаю TD выбивает terminated , exit code 2
.model small .stack 100h .data TWO equ 2 VECTOR dw 1, 5, 7, 2, 4, 3, 6, 9, 10, 8 .code .startup lea bx, VECTOR mov ax, [bx]+8 mov dx, TWO Xchg ax, dx mov ah, 4ch int 21h end
Решение задачи: «Сообщение "terminated, exit code 2" при запуске программы в TD»
textual
Листинг программы
.model small .stack 100h .data TWO equ 2 VECTOR db 1, 5, 7, 2, 4, 3, 6, 9, 10, 8 .code startup: mov ax,@data ;в сегментный регистр DS mov ds,ax ;помещается адрес сегмента данных mov bx, offset VECTOR ;загружаем в bx адрес VECTOR mov ax, [bx]+8 ;загружаем девятый элемент массива (число 10) ;AH - смещение, AL - значение mov dx, TWO ;загружаем в dx значение константы TWO xchg ax, dx ;меняем местами регистры ax и dx mov ax, 4c00h ;выход int 21h end startup
Объяснение кода листинга программы
Выполнение кода:
- .model small — Эта инструкция устанавливает модель памяти, используемую в программе. В данном случае используется модель small, что означает, что сегменты данных и кода имеют по 64 КБ.
- .stack 100h — Эта инструкция устанавливает стек размером в 100 байт.
- .data — Эта инструкция определяет сегмент данных.
- TWO equ 2 - Эта инструкция определяет константу TWO со значением 2.
- VECTOR db 1, 5, 7, 2, 4, 3, 6, 9, 10, 8 - Эта инструкция определяет массив VECTOR, содержащий числа от 1 до 10.
- .code — Эта инструкция определяет сегмент кода.
- startup: — Эта инструкция определяет точку входа в программу.
- mov ax,@data — Эта инструкция загружает в регистр AX адрес сегмента данных.
- mov ds,ax — Эта инструкция присваивает сегменту данных значение из регистра AX.
- mov bx, offset VECTOR — Эта инструкция загружает в регистр BX адрес массива VECTOR.
- mov ax, [bx]+8 - Эта инструкция загружает в регистр AX девятый элемент массива VECTOR, то есть число 10.
- mov dx, TWO — Эта инструкция загружает в регистр DX значение константы TWO.
- xchg ax, dx — Эта инструкция меняет местами значения в регистрах AX и DX.
- mov ax, 4c00h — Эта инструкция устанавливает значение в регистре AX равным 4C00H.
- int 21h — Эта инструкция вызывает функцию 21, которая завершает работу программы и возвращает в DOS.
- end startup — Эта инструкция указывает на конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д