打印

单片机内的数据类型

[复制链接]
1521|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
542764435|  楼主 | 2010-1-21 18:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近遇到条加法程序是
MOV A,#049H
MOV R0,#07AH
ADD A,R0
判断程序的溢出标志位 OV
我仿真的结果是OV=1
那这个数到底是有符号数还是无符号数呢?
单片机寄存器赋立即数到底是 有符号还是无符号数呢?
哪位朋友可以解决一下
                               谢谢!

相关帖子

沙发
HWM| | 2010-1-21 18:27 | 只看该作者
按补码算,自然是有符号数。OV 为 1 的条件是最高和次高位都发生进位——意味着溢出。

使用特权

评论回复
板凳
Mindor| | 2010-1-22 07:54 | 只看该作者
在计算机中存放的是二进制数,计算机是不会自己识别是有符号数还是无符号数,但是它提供两个标志位来标识该数的情况:
OF是相对于有符号数来说的,比如说有个8位寄存器,只要内存中的二进制数可以表示的有符号数超过了-128~127,那么标志位OF置1,即OV,否则为NV。其对无符号数无意义。
CF是相对于无符号数来说的,比如说有个8位寄存器,只要该寄存器的最高位有进位,CF便置1,为CY,否则为NC.其对有符号数无意义。
也就是说,看你要把那个二进制数当成是有符号数还是无符号数,这主要取决于你。然后根据你的决定选择相应的标志位观察它的状态。

使用特权

评论回复
地板
542764435|  楼主 | 2010-1-27 09:40 | 只看该作者
谢谢,受教!~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

粉丝