[问题] 8051组合语言有些小问题

楼主: poboroy (阿扬扬)   2014-06-02 15:20:47
我想让他从99一直减到1
我的程式部分:
DOWN1:
DEC SEC_ONE
MOV A,SEC_ONE
ANL A,#0FH (保留最高四位元存于A暂存器)
CJNE A,#0FH,DOWN_ONE (判断A是否为0F(00001111)←这行不懂用意)
MOV A,SEC_ONE (将SEC_ONE内容存于A暂存器)
ANL A,#0FH (保留最高四位元存于A暂存器)
ADD A,#09H
MOV SEC_ONE,A
SWAP A (将A暂存器较高四位元与较低四位元交换(十位数
换个位数))
DOWN_ONE:
MOV A,SEC_ONE
SWAP A
不太懂的地方是否为什么要判断A是否为0F?
还有就是他较高四位元与较低四位元交换是怎么执行的?
例如我现在是50,我十位数扣1变成40,然后个位数+9变成49
那他高位元跟低位元是怎么交换的,不是很懂交换是换哪边?
第一次再PTT发文,如果表达不是很清楚请见谅
以上程式是在课本内看到的
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2014-06-03 00:10:00
高位元是 0F0H
楼主: poboroy (阿扬扬)   2014-06-03 00:44:00
程式的问题我懂了,另外想问一下他最后传给七段的数字是反的,这是为什么?因为是使用7448静态控制吗?还是8051本身要传给七段就是要相反的数字?
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2014-06-03 14:08:00
共阳

Links booklink

Contact Us: admin [ a t ] ucptt.com