;要求将 1~36 的数字顺序保存在一个 6*6 矩陣中然后输出这个矩阵的左下三角部分
;做而论道编写的程序如下。
------------
N = 9 时执行结果如下:
做而论道编写的程序,具有通用性矩阵维数在 2 至 9,都是可用的
如果把显示部分扩充为三位,那就可以在 2 至 255 范围内使用
有人说 6*6 的矩阵处理比较难,应该先編写 3*3 的
呵呵,其实他这就不懂了,矩阵不论大小处理起来的难度,都是相同的
至少在 3 维和 6 维之间,没有任何区别
确认一键查看最优答案?
本功能为VIP专享开通VIP获取答案速率将提升10倍哦!
;要求将 1~36 的数字顺序保存在一个 6*6 矩陣中然后输出这个矩阵的左下三角部分
;做而论道编写的程序如下。
------------
N = 9 时执行结果如下:
做而论道编写的程序,具有通用性矩阵维数在 2 至 9,都是可用的
如果把显示部分扩充为三位,那就可以在 2 至 255 范围内使用
有人说 6*6 的矩阵处理比较难,应该先編写 3*3 的
呵呵,其实他这就不懂了,矩阵不论大小处理起来的难度,都是相同的
至少在 3 维和 6 维之间,没有任何区别
;mov si,seg source;取首地址给附加段因为串操作需要在附加段的基础上操作
;配置一个标记,如果bx=1,那就是排序任务没完成;如果bx=0那就是排序任务完成了
mov bx,0 ;此外在这里预设排序任务已完成
mov cx,count-1;内循環计数,(内循环比较次数要比数组元素少1才对)
;你用lea si,result做也行,但是没有下面使用数组的形式直观
;你的result数组元素是一字节的所以用选用al(偠注意数据类型匹配问题)。
;cmp [di],ax;第一个数字与第二个数字开始比较
jge cont;根据带符号数的比较结果转移如果是大于或等于,两个数不做交换
mov bx,1 ;走到這里说明排序任务还没有完成,所以要做标记BX为1
inc si ;不管有没有交换数据
;每次小循环结束前都要调整一下数组元素指针,为进入下一循环配置好参数
loop next;判断cx是否为0若为0,说明内循环的一次比较已经结束
;cmp bx,0;若bx不为0说明未引起交换,就是已经全部排好序了