单片机,未变语言程序问题分析

start:mov A,R0
ANL A,#0F0H
SWAP A
MOV B,#10
MUL AB
MOV B,A
MOV A,RO
ANL #0FH
ADD A,B
分析该程序的功能,我得出的结论是计算A的两倍
可是我同学跟我得出的杰伦不一样,请问我的结论正确吗?
我初学单片机,还请高手说的易懂一些,谢谢了啊- -!

第1个回答  2009-04-16
这不是计算A的两倍,而是把R0里面的本来是用BCD表示的数变成二进制数,比如R0的内容是31H,这是BCD表示的,即高四位表示十位,低四位表示个位,即表示实际的31,但31用二进制数表示是1FH,所以先把十位3取出来乘以10,再加上个位1,结果就是1FH。
不知道我说清楚没有
第2个回答  2009-04-16
start:mov A,R0 ;把RO的值赋给A
ANL A,#0F0H ;A的高四位保持不变,低四位全部为0
SWAP A ;A的高四位与低四位交换
MOV B,#10 ;10赋给B
MUL AB ;A*B,结果是高位放入B中,低位放入A中
MOV B,A ;A的值赋给B
MOV A,RO
ANL #0FH ;这条语句好像有问题啊
ADD A,B ;A加B本回答被提问者采纳

单片机,未变语言程序问题分析
这不是计算A的两倍,而是把R0里面的本来是用BCD表示的数变成二进制数,比如R0的内容是31H,这是BCD表示的,即高四位表示十位,低四位表示个位,即表示实际的31,但31用二进制数表示是1FH,所以先把十位3取出来乘以10,再加上个位1,结果就是1FH。不知道我说清楚没有 ...

单片机程序,程序没问题,编译不出来怎么回事?
1. 编译环境配置问题:请确认是否已经正确配置了单片机的编译环境,在编译前需要正确安装并配置相应的开发工具和编译器。2. 语法错误:程序中可能存在语法错误,比如缺少分号、括号不匹配、变量命名错误等。请仔细检查所有语句和语法规则是否正确。3. 指令集不匹配:不同型号的单片机可能存在指令集的差异,程...

单片机的程序为什么老是死机?
软件bug:程序中存在逻辑错误或者未处理的异常情况,导致程序执行异常而死机。资源竞争:多个任务或中断同时竞争相同的资源,导致死锁或资源无法释放,从而导致死机。堆栈溢出:程序使用的堆栈空间不足以存储函数调用过程中的局部变量和返回地址,导致堆栈溢出而死机。外部干扰:单片机受到外部干扰或者噪声,导致程...

什么叫单片机的程序“跑飞”?
程序跑飞,指的是单片机程序在执行过程中,PC(程序计数器)指针没有按照预定的路径进行变更,而是指向了一个非预期的地址空间。这个地址可能是系统内存中未被分配给用户代码的区域,也可能是系统错误导致的随机地址。当程序跑飞时,PC指针可能会指向一个完全无效的内存位置,这导致程序执行的逻辑完全失控。...

单片机程序未正常运行
程序未正常运行,显示不正确,问题可能出现在Show_Shape函数的调用位置。正确的方法是在main函数的后面调用Show_Shape,而非前面。这可能是因为程序在执行过程中接收的某些数据在下次显示时仍然存在,导致显示不正确。为了解决这个问题,可以尝试清空接收缓冲区,或者将缓冲区的大小设置得更小,以减少接收数据...

单片机不能往里写程序了。
单片机中的未用空间中的指令未知,那么单片机的执行就会出错,也叫程序飞出!!!用C语言写也是一样的道理!MAIN{}就代表END 所以也需要加上死循环(如while(1);) 一般程序的未用空间会填上0XFFH(相当与 MOV R7,A指令),所以你程序执行起来没有出现异常现象!

未烧录程序的单片机上电后会有什么反应?
一般的单片机买回来之后都是没有烧写程序的,上电之后没有任何反应。如果有LED的话,你会看见LED微亮并且高速闪烁。

未烧录程序的单片机上电后会有什么反应?
如果是刚出厂的芯片,里面的程序是所有IO的流水灯设计;如果是旧的芯片,可以使用仿真器读取片内的ROM数据进行判断,这个需要你有识别机器码的能力,很是复杂,你可以利用仿真器看看是否为空白或ROM的使用量。如果没有仿真器的话你只你能用示波器和万用表测量了,看看有没有电平变化,或数据的输出。

下述单片机程序有个警告,该如何去掉,请教高手解释一下。
在编写单片机程序时,如果遇到警告提示函数没有返回值,这通常意味着所调用的函数在定义时并未指定返回类型。对于这个问题,解决方法较为直接,即在函数定义中添加返回类型。针对您提到的函数 changedata(uchar *song,uchar *diao,uchar *jie),只需修改为 void changedata(uchar *song,uchar *diao,uchar...

我是学计算机的,想以后学单片机,但我对这方面还了解甚少,有哪位师兄能...
原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,...

相似回答
大家正在搜