Заполнить массив случайными значениями - 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
Объяснение кода листинга программы
- Объявляется переменная
MSize
со значением 3*4, то есть 12. - В сегменте
.data
объявляется массивMatrix
размеромMSize
с элементами типаdw
, то естьdword
, инициализированными значением?
. - В сегменте
.code
устанавливается регистрcx
в значениеMSize
. - В регистр
di
записывается смещениеoffset Matrix
, то есть адрес первого элемента массиваMatrix
. - Начинается цикл, который будет выполняться до тех пор, пока не будут выполнены все условия.
- В стеке сохраняются значения регистра
cx
иdi
. - Вызывается функция
RandomWord
, которая будет генерировать случайное слово и сохранять его в регистреax
. - Сохраняемое в стеке значение регистра
di
восстанавливается после вызова функции. - Восстанавливаемое из стека значение регистра
cx
используется для продолжения цикла. - В каждом цикле выполняется операция
stosw
, которая записывает в массивMatrix
слово, сохранённое в регистреax
. - Цикл продолжается до тех пор, пока не будут выполнены все условия.
- Код, который должен выполняться в случае прерывания, помещён в сегмент
.interrupt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д