单片机程序存储基本问题

有几个问题我实在是找不到答案。。。如凌阳61板。。16位的也就是说一次只能处理16个2进制数,那么就是说明它每次只能执行一个16位指令,寄存器PC(程序计数器)里面是开机... 有几个问题我实在是找不到答案。。。如凌阳61板。。16位的也就是说一次只能处理16个2进制数,那么就是说明它每次只能执行一个16位指令,寄存器PC(程序计数器)里面是开机后执行的第一条指令的地址吗?(如果是,每次完成1条指令加1,那要是突然掉电了呢?再次开机还接着上条指令运行?不是吧!!)还有它的指令超过16位了啊(如我要执行一条R1=0x0001或者CMP R1,R2指令)写入那?奇怪了指令都超过16位了寄存器的没有办法存储 !奇怪明明就超过16位了处理器好奇怪!>..<....! 展开
 我来答
ATF144X
推荐于2016-05-18 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4572万
展开全部
  1. 不是16个2进制数,而是16bit,2字节宽度的数据。

  2. 一般在开机或复位之后,PC=0,然后根据执行了的指令指令宽度增加1、2甚至4。

  3. 突然掉电了,等于复位,所以PC=0,不会继以前的PC值往下执行,因为寄存器、RAM等情况都改变了,继续执行没有意义。

  4. 如果PC=FFFF,继续执行发生溢出的话,又变成PC=0了,这也相当于复位。

  5. 指令宽度可以是16位,如果指令含有16位的立即数,那就变成32位的了,指令的前16bit是操作码,后16bit是操作数。

  6. 要说典型的话,AVR单片机是个例子,单片机是8位的,但指令是16bit甚至32bit的,32bit的指令就把16bit的立即数包含在其中了,比如LDS指令。

追问
请问1开机后处理器怎么查找程序(第一条指令)?需要我向PC写入第一条指令的地址吗?
2如16位处理器指令宽度都会是16位的吗?(如0x0007=0x0001)看上去就超过16位了。。这条指令要分开存储?(寄存器16位)
追答
  1. 不需要,CPU的的硬件设计就是复位后PC=0。

  2. 指令宽度可能是16或32bit,或者说是16bit的整倍数。

迪凯特科技(北京)有限公司
2023-07-28 广告
RS232串行通讯的数据格式包括以下组成部分:1. 起始位:一位,用于表示数据的开始。2. 数据位:通常为8位,但也可以是7位或9位。3. 校验位:可以选择奇偶校验或无校验。4. 停止位:一位,用于表示数据的结束,也可以选择使用1.5个或2... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
bigbatcn
2013-08-14 · TA获得超过402个赞
知道小有建树答主
回答量:467
采纳率:60%
帮助的人:95.5万
展开全部
cpu就像一个计算器,里面也有少量的储存器(寄存器),几位机,一般说的是寄存器的位宽和总线的位宽,但是象乘法这样的指令通常会用两个寄存器。开机时PC一般是指向第一条要执行的指令。寄存器一般是RAM的掉电后数据就没了。会重新开始。如果一条指令的操作数多于1个,就用多个寄存器去做。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式