1. 单片机里面的pc值是什么意思
pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:
例如:
(A)=50H;
sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次,即地址出栈,故最终结果是50h。
(51h)=30h;
(52h)=50h;
因为ret指令返回时,出栈的结果是高地址=(52h)=50h;而低地址=(51h)=30h;故最终结果pc值是5030h;
(1)单片机52h是什么意思扩展阅读
单片机在电子技术中的开发,主要包括CPU开发、程序开发、 存储器开发、计算机开发及C语言程序开发,同时得到开发能够保证单片机在十分复杂的计算机与控制环境中可以正常有序的进行,这就需要相关人员采取一定的措施,下文是笔者的一些简单介绍:
(1)CPU开发。开发单片机中的CPU总线宽度,能够有效完善单片机信息处理功能缓慢的问题,提高信息处理效率与速度,开发改进中央处理器的实际结构,能够做到同时运行2-3个CPU,从而大大提高单片机的整体性能。
(2)程序开发。嵌入式系统的合理应用得到了大力推广,对程序进行开发时要求能够自动执行各种指令,这样可以快速准确地采集外部数据,提高单片机的应用效率。
(3)存储器开发。单片机的发展应着眼于内存,加强对基于传统内存读写功能的新内存的探索,使其既能实现静态读写又能实现动态读写,从而显着提高存储性能。
(4)计算机开发。进一步优化和开发单机片应激即分析,并应用计算机系统,通过连接通信数据,实现数据传递。
(5)C语言程序开发。优化开发C语言能够保证单片机在十分复杂的计算机与控制环境中,可以正常有序的进行,促使其实现广泛全面的应用。
2. 单片机编程将累加器A中的二进制数变成BCD码,并将百、十、个位数分别写入内部RAM中的50H、51H、52H中。
这程序也写的太复杂了!既然51单片机有div指令,并且只是把a中的数字转变为bcd,那就用div直接运算:
mov
a,#0fdh
mov
b,#100
div
ab
mov
50h,a
mov
a,b
mob
b,#10
div
ab
mov
51h,a
mov
52h,b
计算完成,这样50h就是百位数,51h是十位数,52h是个位数
3. 单片机程序语句解释:下面每条语句是什么意思啊,大概说说让我可以理解这段程序。
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:
POP DPH ;DPH出栈,SP=SP-1
POP DPL ;DPL出栈,SP=SP-1
MOV DPTR,#4000H ;(DPTR)= 4000H
RL A ;(A)循环左移1位,(A)= 04H
MOV B,A ;(B)= 04H
MOVC A,@A+DPTR ;(A)= @04H+4000H=30H
PUSH Acc ;A入栈,SP=SP+1
MOV A,B ;(A)= 04H
INC A ;(A)= 05H
MOVC A,@A+DPTR ;(A)= @04H+4000H=50H
PUSH Acc ;A入栈,SP=SP+1
RET ;主程序返回
ORG 4000H ;定义地址开始处
DB 10H,80H,30H,50H,30H,50H;定义6字节数据
请问:A=( 50H ),SP=( 52H ),(51H)=( 30H ),(52H)=( 50H ),PC=(5030H )。