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

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

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

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

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

textual
Листинг программы
MSize = 3*4
 
.data
  Matrix dw MSize dup (?)
 
.code
  cld
  mov cx,MSize
  mov di,offset Matrix
@@Next:
  push cx
  push di
  call RandomWord  ; или как-то ещё
  pop di
  pop cx
  stosw
  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
Похожие ответы