Дано два массива по 10 значений . получить третий массив 10 с суммой соответствующих значений - Assembler
Формулировка задачи:
помогите кто чем может, срочно нужно)
Решение задачи: «Дано два массива по 10 значений . получить третий массив 10 с суммой соответствующих значений»
textual
Листинг программы
;DOS, TASM, COM-файл ;tasm.exe /m filename.asm ;tlink.exe /t /x filename.obj ; .model tiny .code .386 ORG 100h START: mov cx,10 lea si,mass1 lea bx,mass2 lea di,mass3 m1: lodsb add al,[bx] stosb inc bx loop m1 ret ;выход из программы mass1 db 0,1,2,3,4,5,6,7,8,9 mass2 db 9,8,7,6,5,4,3,2,1,0 mass3 db 10 dup (?) end start
Объяснение кода листинга программы
В коде на языке Assembler с постановкой задачи на получение третьего массива 10 с суммой соответствующих значений даны следующие инструкции:
- .model tiny - устанавливает модель памяти для программы.
- .code - указывает на то, что в этом разделе будет находиться код программы.
- .386 - задаёт уровень привилегий процессора 386.
- ORG 100h - устанавливает базовый адрес для сегмента данных.
- START: - начало работы программы.
- mov cx,10 - устанавливает счётчик циклов.
- lea si,mass1 - указывает на первый массив.
- lea bx,mass2 - указывает на второй массив.
- lea di,mass3 - указывает на третий массив.
- m1: - начало цикла.
- lodsb - загружает в регистр AL байт из памяти по адресу BX+CX.
- add al,[bx] - прибавляет к AL значение байта из памяти по адресу BX.
- stosb - записывает в память по адресу DI значение регистра AL.
- inc bx - увеличивает BX на единицу.
- loop m1 - повторяет шаги с 10 по 14, пока счётчик CX не станет равным нулю.
- ret - завершает работу программы.
- mass1 db 0,1,2,3,4,5,6,7,8,9 - первый массив.
- mass2 db 9,8,7,6,5,4,3,2,1,0 - второй массив.
- mass3 db 10 dup (?) - третий массив, инициализированный нулями. Программа берёт значения из двух массивов и добавляет их в третий массив, затем выводит результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д