1×1到9×9运算一遍?
ORG 00H
SJMP START
ORG 30H
START:
MOV R0,#32H ;从32H开始存放相乘结果
MOV R1,#1 ;R1存放第二个乘数
LOOP1:
MOV 30H, R1 ;将第二个乘数,准备比较
MOV R2,#1 ;第一个乘数从1开始
LOOP2:
MOV A, R1 ;将乘数放入A,B
MOV B, R2
MUL AB ;相乘
MOV @R0,A ;保存结果,结果小于255不需保存B
;INC R0
;MOV @R0,B ;结果小于255不需保存B
INC R0 ;保存数据的地址加1
MOV A, R2 ;准备比较两个乘数是否相等,
INC R2 ;第一个乘数加1
CJNE A,30H,LOOP2;乘数不等继续下一轮相乘
INC R1 ;乘数相等了,第二个乘数加1
CJNE R1,#0AH,LOOP1;到9结束,因为R1先加1,所以与10比较
AJMP $ ;RET ;停止或函数返回,
END
不会吧?这个也需要流程图,很清楚了。
补个图。为什么刚才图上不去,百度啊!
就是写一个用al作为入口的乘法子程序就行了。然后循环执行这个子程序1-9。框图就是这样。