ABCDEFGHIJ是一串地址 LDSM0.0MOVD&AAC1‘ 将A的地址给AC1 MOVD&BAC2‘ 将B的地址给AC2 LDSM0.0FORVW01,9‘ 外圈的循环 LDSM0.0FORVW41,9‘ 内圈的循环 LDD>AC1,AC2‘ 用>=比较AC1和AC2的内容 JMP1‘ 若是大于则跳转到标号1,否则不跳 LDD<AC1,AC2’ 用<比较 MOVDAC1,X MOVDAC2,AC1 MOVDX,AC2‘ 若<,则交换 LBL1’ 不用比较的位置 LDSM0.0+D4,AC1+D4,AC2‘ 比较完成将AC1和AC2指向下一个位置 NEXT‘ 进行内部循环 LDSM0.0MOVD&A,AC1 MOVD&B,AC2’ 完成一次内部循环后从新给AC1和AC2赋值 NEXT‘ 进行外部循环
代码注释
- ABCDEFGHIJ是一串地址,代表了从A到J这10个变量的地址。
- LDSM0.0MOVD&AAC1‘将A的地址给AC1
- MOVD&BAC2‘将B的地址给AC2
- LDSM0.0FORVW01,9‘外圈的循环,循环次数为9
- LDSM0.0FORVW41,9‘内圈的循环,循环次数为9
- LDD>AC1,AC2‘用>=比较AC1和AC2的内容
- JMP1‘若是大于则跳转到标号1,否则不跳
- LDD<AC1,AC2’用<比较
- MOVDAC1,X
- MOVDAC2,AC1
- MOVDX,AC2‘若<,则交换
- LBL1‘不用比较的位置
- LDSM0.0+D4,AC1+D4,AC2‘比较完成将AC1和AC2指向下一个位置
- NEXT‘进行内部循环
- LDSM0.0MOVD&A,AC1
- MOVD&B,AC2’完成一次内部循环后从新给AC1和AC2赋值
- NEXT‘进行外部循环
代码功能
这段代码的功能是将ABCDEFGHIJ这10个变量按从小到大排序。 代码设置两个指针AC1和AC2,分别指向A和B的地址。代码进入两个循环。外圈循环遍历ABCDEFGHIJ这10个变量,内圈循环遍历每个变量的各个元素。 在内圈循环中,代码比较AC1和AC2所指的两个元素的大小。如果AC1所指的元素大于AC2所指的元素,则代码跳转到标号1。否则,代码继续执行。 在标号1处,代码交换AC1和AC2所指的两个元素。代码将AC1和AC2指向下一个位置,并继续执行内圈循环。 当内圈循环执行完毕后,代码将AC1和AC2指向下一个变量的地址,并继续执行外圈循环。 当外圈循环执行完毕后,ABCDEFGHIJ这10个变量就被按从小到大排序了。本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论