Заполнить массив случайными значениями - Assembler

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

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

Пожалуйста помогите решать задачу. Внести в память матрицу 3х4. Заполнить ее случайными значениями. Заранее благодарю.

Решение задачи: «Заполнить массив случайными значениями»

textual
Листинг программы
  1. MSize = 3*4
  2.  
  3. .data
  4.   Matrix dw MSize dup (?)
  5.  
  6. .code
  7.   cld
  8.   mov cx,MSize
  9.   mov di,offset Matrix
  10. @@Next:
  11.   push cx
  12.   push di
  13.   call RandomWord  ; или как-то ещё
  14.   pop di
  15.   pop cx
  16.   stosw
  17.   loop @@Next

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

  1. Объявляется переменная MSize со значением 3*4, то есть 12.
  2. В сегменте .data объявляется массив Matrix размером MSize с элементами типа dw, то есть dword, инициализированными значением ?.
  3. В сегменте .code устанавливается регистр cx в значение MSize.
  4. В регистр di записывается смещение offset Matrix, то есть адрес первого элемента массива Matrix.
  5. Начинается цикл, который будет выполняться до тех пор, пока не будут выполнены все условия.
  6. В стеке сохраняются значения регистра cx и di.
  7. Вызывается функция RandomWord, которая будет генерировать случайное слово и сохранять его в регистре ax.
  8. Сохраняемое в стеке значение регистра di восстанавливается после вызова функции.
  9. Восстанавливаемое из стека значение регистра cx используется для продолжения цикла.
  10. В каждом цикле выполняется операция stosw, которая записывает в массив Matrix слово, сохранённое в регистре ax.
  11. Цикл продолжается до тех пор, пока не будут выполнены все условия.
  12. Код, который должен выполняться в случае прерывания, помещён в сегмент .interrupt.

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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