51单片机的 pc值怎么算?

作者&投稿:言波 (若有异议请与网页底部的电邮联系)
51单片机的pc值怎么算~

没问题我提供。

在51单片机里面,pc永远指向下一条指令的首地址,计算方法就是:当前执行的指令的首地址+本指令所占的字节长度。

A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h )

pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:

(A)=50H;

sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次,即地址出栈,故最终结果是50h。

(51h)=30h;

(52h)=50h;

因为ret指令返回时,出栈的结果是高地址=(52h)=50h;而低地址=(51h)=30h;故最终结果pc值是5030h;

扩展资料:

51单片机功能特性

1、可以仿真63K程序空间,接近64K 的16位地址空间;

2、可以仿真64Kxdata 空间,全部64K 的16位地址空间;

3、可以真实仿真全部32 条IO脚;

4、完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作;

5、可以使用C51语言或者ASM汇编语言进行调试 ;

6、可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;

7、可选 使用用户晶振,支持0-40MHZ晶振频率;

8、片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;

9、可以仿真双DPTR 指针;

10、可以仿真去除ALE 信号输出. ;

11、自适应300-38400bps 的所有波特率通讯;

12、体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;

13、仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ;

14、仿真时监控和用户代码分离,不可能产生不能仿真的软故障;

15、RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。

参考资料:百度百科-51单片机



你51软件器仿真一下,就知道结果了....我能做的也是这样,只有写代码的人才去看代码,测试的人只用最简单的方法验证!
PC值是当前代码的运行位置,直接读PC寄存器就是了

用伟福软件试了试,运行到ret那步跑飞到disassembly,但是算出答案,A=80H,SP=05H,51H=FFH,52H=FFH(都没变,纳闷),pc=4000h
本人才疏学浅,错了别见笑。

A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h )。

A=50H,SP=50H,51H=30H,52H=50H,PC=5030H


广灵县13237634106: 51单片机 pc怎么算 -
钊泼磷酸: 在51单片机里面,pc永远指向下一条指令的首地址,计算方法就是:当前执行的指令的首地址+本指令所占的字节长度.

广灵县13237634106: 51单片机的 pc值怎么算? -
钊泼磷酸: A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h ) pc总是指向下一条指令的首地址的.但是在返回的时候得看堆栈中的数了.上面程序执行完之后: (A)=50H; sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后...

广灵县13237634106: 51单片机的 pc值怎么算?如:已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH.下述程序执行后:POP DPHPOP DPLMOV DPTR,#4000HRL ... -
钊泼磷酸:[答案] 那你得通过串口通讯,再将串口读出的数据保存,这要编PC机的应用程序的,只给你一个思路

广灵县13237634106: 单片机里面的pc值是什么意思 -
钊泼磷酸: PC就是程序计数器,就是指挥程序从哪里执行.如果是8 位机,每个存储单元存放一个字节,指令有单字节、双字节和3 字节.单片机复位时,PC=0000H ,而后每执行一条指令,PC 根据指令的字节数 增加. 如图:最前面的就是PC值

广灵县13237634106: 51单片机中如何进行相对寻址?pc值怎么计算?rel又怎么给 -
钊泼磷酸: 什么叫相对,是当给出一个地址后,计算偏移量,而且还跟语句所占字节数有关,好好查找汇编语言的指令表,你能找到的

广灵县13237634106: MCS - 51单片机的PC是多少bit的?它意味着什么?复位后PC=?又意味着什么? -
钊泼磷酸: MCS-51单片机的PC是16bit的?它意味着当前程序执行的地址是PC的值;复位后PC=0000H;又意味着程序从头开始执行.

广灵县13237634106: 51单片机指令中,如何给rel赋值 -
钊泼磷酸: JC rel 若转移操作指令操作码存放在1000H,偏移量存放在1001H,则该指令执行后PC已为1002H.这个PC值是怎么算出来的? 回答:这是个条件转移指令当进位标志CY=0 不满足条件 时, (PC)=1002H 不转移 顺序执行下一条指令当进位标志CY=1 满足条件时, (PC)=1002H+rel 程序跳转到目标地址上 呵呵 满意 就选满意回答

广灵县13237634106: 51单片机响应中断后,PC的值为多少 -
钊泼磷酸: 进入中断:PC = 000BH,中断返回后,PC=中断发生前执行指令的下一个地址.

广灵县13237634106: 单片机的PC值存在哪里? -
钊泼磷酸: PC程序计数器(也称为指令地址计数器),是存在CPU中的寄存器里一个名为程序地址寄存器的单元里.在程序开始执行前,必须将其起始地址,即程序第一条指令所在的内存单元地址送入PC,当执行指令时,CPU将自动修改PC中的内容,使之总是指示出将要执行的下一条指令的地址.如果要知道PC的值,可以在keil 中看到的(在keil 的仿真功能中,可以到看下软件说明就清楚怎么用仿真功能了).也可以自己去算,当然必须知道第一条指令的地址.

广灵县13237634106: 单片机中pc的值是指当前正在执行的指令的地址,还是当前正在执行指令的下一条指令的地址? -
钊泼磷酸: 在没有流水线的单片机中,是指向当前正在执行的指令地址.引入流水线后,PC是正在取指的指令地址,但从习惯考虑,一般认为PC是指向当前正在执行的地址,编程时需要注意这一点.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网