Заполнить массив случайными значениями - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д