学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

[求助]帮忙解释下这个程序

[求助]帮忙解释下这个程序

***********************************************************************

      #include    pl16f84a.inc

LSD          equ        10

MSD         equ         11

BinBCD     clrf          MSD

                 movwf      LSD

gtenth      movlw       10

                subwf        LSD,W

                BTFSS     STATUS,C     ;ARRY

                goto         over

                movwf       LSD

                incf            MSD,1

                goto          gtenth

over         retlw          0

************************************************************************************************

main         movlw       63                     ; W reg=63 Hex

                 call           BinBCD             ; after conversion, MSD=9 & LSD=9

self           goto         self

                 org          1FF

                 goto         main

                 END


1、equ赋值后不是不能被重新赋值吗?为什么在程序中还能用clrf、movwf、incf 这些语句?

2、self   goto    self    没有判断条件不成死循环了吗?

3、org 应用到程序中具体有什么作用?

4、after conversion, MSD=9 & LSD=9。这个如果说的是运算结果的话(我英语很菜,翻词典理解的)

      我得的结果是 MSD=6   LSD=3,麻烦详细说明一下

谢谢

TOP

这个是那个CPU上面运行的,什么汇编?

TOP

这是单片机的汇编
很久没接触了不一定对
问题1:LCD是地址 LSD          equ        10就是那个地址上赋值10
2:单片机靠外部触发 死循环等触发中断
3:org定位在1ff地址
4:结果是 MSD=6   LSD=3 写着BinBCD就是bcd编码(猜的)
main         movlw       63  "63"

TOP

发新话题