我想获取 n 并定义两个 n*n 矩阵,然后将它们作为输入,然后将它们相乘,但我不知道如何获取两个矩阵作为输入。
section .data
input_format: db "%d", 0
n: dd 1
array: times n dd 0.0
我尝试定义一个大小为 n 的数组,但它会导致一些错误。
您要查找的关键字是行和列主序。 矩阵本质上是一个
array[rowMinimum..rowMaximum, columnMinimum..columnMaximum] of baseType
按照行优先顺序,您将属于同一行的元素彼此相邻存储。 换句话说,
array
(根据上面的声明)的最右边的尺寸首先增加。
要将其放入不必要冗长的代码中,一个 2×2 矩阵:
matrix_a:
.left_column_top_row: db 42 ; In mathematical notation:
.right_column_top_row: db 3 ; ⎡ 42, 3 ⎤
.left_column_bottom_row: db -9 ; A ≔ ⎢ ⎥
.right_column_bottom_row: db 99 ; ⎣ −9, 99 ⎦
首先使用静态数据完成任务。 如果工作正常,您可以转换为动态数据。 查询 n,预留足够的内存空间,并提示输入 n² 元素,最好按行优先顺序,因为它在从左到右的书写系统中最自然,并将数据传递给函数。