Матрица с ячейкой в 2 байт - Assembler
Формулировка задачи:
Здравствуйте. Как мне сделать трех мерную матрицу с ячейкой 2 байта. Ячейка 4 байта, ясно.
mov edx,[eax+4*(1*9+2*3+0)] // b[1,2,0] 1-строка, 2-столбец, 0-глубина.
А 2 байта
mov edx,[eax+2*(1*9+2*3+0)] // b[1,2,0] 1-строка, 2-столбец, 0-глубина.
Покажите пример, пожалуйста. Заранее благодарю.
Решение задачи: «Матрица с ячейкой в 2 байт»
textual
Листинг программы
lea ebx,b xor edx, edx mov dx, [ebx+2*(1*9+2*3+0)] mov r,edx
Объяснение кода листинга программы
lea ebx,b
- это команда, которая загружает в регистр ebx адрес переменной b.xor edx, edx
- это команда, которая устанавливает значение регистра edx в 0.mov dx, [ebx+2*(1*9+2*3+0)]
- это команда, которая загружает в регистр dx значение ячейки памяти, адрес которой находится в регистре ebx. Значение в ячейке памяти вычисляется как 2(19+23+0), то есть как 2(18+6+0), что равно 2*24, что равно 48.mov r,edx
- это команда, которая загружает значение регистра edx в переменную r.