Сообщение "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 — Эта инструкция указывает на конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д