Отрицательные элементы массива заменить их квадратами - Assembler
Формулировка задачи:
Задать с клавиатуры массив из 10 отрицательных и положительных чисел. Разрядность вводимых числе <3. Организовать проверку ввода. Отрицательные элементы массивы заменить их квадратами. В программе предусмотреть приглашение к вводу массива, вывод сообщения об ошибке и выходного массива
Решение задачи: «Отрицательные элементы массива заменить их квадратами»
textual
Листинг программы
.model small .data arr db 1,-2,3,-4,5,-6,7,-8,9,-10 len = $ - arr .stack 100h .code start: mov ax,@data mov ds,ax lea si,arr mov cx,len negsqr: lodsb test al,80h jz skip imul al mov byte ptr [si-1],al skip: loop negsqr mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
В этом коде выполняется замена отрицательных элементов массива на их квадраты. Вот список действий, которые происходят в коде:
- Устанавливается модель памяти на
small
. - Определяется сегмент данных, в котором будет размещен массив.
- Задается сам массив, его отрицательные элементы будут заменены на квадраты.
- Вычисляется длина массива, она равна количеству элементов минус один.
- Устанавливается стек размером 100 байт.
- Задается сегмент кода.
- Определяется точка входа в программу.
- Код перемещает указатель на начало массива в регистр SI.
- Код перемещает длину массива в регистр CX.
- Начинается цикл, который выполняется до тех пор, пока не будут обработаны все элементы массива.
- Внутри цикла проверяется каждый байт массива на отрицательность.
- Если байт является отрицательным, он умножается на -1 и сохраняется обратно в массив.
- После выполнения цикла программа завершается.
- Код перезаписывает конец массива на ноль, чтобы корректно завершить массив.
- Выполняется функция 21h, которая завершает программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д