51单片机的问题,关于进位与溢出

1、一个存储单元只有8位,0-255,但是我要存的数超这个范围了怎么办?比如MOVR1,#1000002、溢出是超过-128—127,这个是符号数,但是我就想算64+10... 1、一个存储单元只有8位,0-255,但是我要存的数超这个范围了怎么办?比如 MOV R1,#100000
2、溢出是超过-128—127,这个是符号数,但是我就想算64+100,(01000000+01100100)他会溢出吗?我存进去的不是符号数啊?
3、150+150=300,超过了255,单片机是怎么实现的,(有道题是10个数相加,肯定超255啊)
谢谢~
展开
 我来答
zhang_yi_cheng
推荐于2018-03-19 · TA获得超过353个赞
知道小有建树答主
回答量:186
采纳率:100%
帮助的人:133万
展开全部
1、呵呵,MOV R1,#100000,硬件里只有8位的存储空间,硬塞个16位的数据下去是不可能的,因此这个指令在汇编时汇编器(软件)会报错的……当然也不排除某些汇编器不报错,直接忽略高于8位的值;
2、OV位只是提供了一个带符号数溢出的参考依据而已,用不用它取决于需求。
溢出位值的判断依据是:最高位的进位状况(有:1,无:0)和 次高位的进位状况(有:1,无:0)取异或的结果。 也就是次高位进位状况与最高位进位状况不一致时OV被置1。 164的结果对8位带符号数而言显然是属于溢出范围的(俩正数相加变成了负数),对无符号数计算而言,可以在程序设计时忽略OV的值。
3、实现的方法是进行两次8位的加法运算,最低8位用ADD指令,其余用ADDC指令(即16位加法运算,参考代码百度应该会出来一大堆),用两个8位的寄存器(或RAM单元)来保存运算结果(16位运算结果);同理可推至32位运算、64位运算……
做而论道
高能答主

2013-12-23 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
1、一个存储单元只有8位,0-255,但是我要存的数超这个范围了怎么办?比如 MOV R1,#100000
--能存进去吗?
--你可以试试看。

2、溢出是超过-128—127,这个是符号数,但是我就想算64+100,(01000000+01100100)他会溢出吗?我存进去的不是符号数啊?
--无论是无符号数,还是带符号数,
--计算机,它只是按照二进制数字进行计算。
--计算出来的结果,人,爱怎么理解,就怎么理解。

3、150+150=300,超过了255,单片机是怎么实现的,(有道题是10个数相加,肯定超255啊)
--会产生进位。
--八位机,加减运算的结果,其实是九位。
--第九位,就存放在进位里面。
--150+150=300=(1) 44
--C=1,就代表 256。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式