无符号数和有符号数在汇编程序里如何区分?

RT... RT 展开
 我来答
爱教育爱学习
高粉答主

2019-11-19 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112726

向TA提问 私信TA
展开全部

在汇编程序里是没有无符号数和有符号数区分的。

加减运算指令是不区分有符号和无符号的,在计算机对有符号整数的表示只采取一种编码方式,不存在正数用原码,负数用补码的问题。

汇编语言里声明变量的时候,没有signed和unsignde之分,汇编器全部将输入的整数字面量当作有符号数处理成补码存入到计算机中,只有这一个标准,并且全部汇编成补码。也就是说,db-20汇编后为:EC,而db236汇编后也为EC。

db是分配一个字节,一个字节能表示的有符号整数范围是:-128~+127,那么db236超过了这一范围,+236的补码的确超出了一个字节的表示范围,那么拿两个字节是可以装下的,应为:00EC,也就是说+236的补码应该是00EC,一个字节装不下。00EC是两个字节,被截断成EC,当把236当作无符号数时,它汇编后的结果正好也是EC。

扩展资料

无符号数和有符号数的使用

#include<stdio.h>

#include<string.h>

intmain()

{

intx=2;

char*str="abcd";

inty=(x-strlen(str))/2;

printf("%d\n",y);

}

参考资料来源:百度百科—有符号数处理

参考资料来源:百度百科—无符号数

仁昌爱娱乐
高粉答主

2019-11-20 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459801

向TA提问 私信TA
展开全部

无符号数和有符号数在汇编程序里区别为:标识符不同、二进制不同、范围不同。

一、标识符不同

1、无符号数:无符号数在声明变量的时候,带unsigned标识符。

2、有符号数:有符号数在声明变量的时候,带signded标识符。

二、二进制不同

1、无符号数:无符号数在编译时,转为二进制,所有数位用作数值位,代表数值。

2、有符号数:有符号数在编译时,转为二进制,用最高位作为符号位,“0”代表“+”,“1”代表“-” ;其余数位用作数值位,代表数值。

三、范围不同

1、无符号数:若机器字长为n+1位,无符号数的范围为0~2^(n+1)。

2、有符号数:若机器字长为n+1位,有符号数的范围为-2^n+1~2^n。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-09-27
展开全部
  在汇编语言层面,声明变量的时候,没有 signed 和 unsignde 之分,汇编器统统,将输入的整数字面量当作有符号数处理成补码存入到计算机中,只有这一个标准,汇编器不会区分有符号还是无符号然后用两个标准来处理,它统统当作有符号的,并且统统汇编成补码。
  举例来说:
  内存里有 一个字节x 为:0x EC ,一个字节 y 为:0x 02 。当把x,y当作有符号数来看时,x = -20 ,y = +2 。当作无符号数看时,x = 236 ,y = 2 。
  下面进行加运算,用 add 指令,得到的结果为:0x EE ,那么这个 0x EE 当作有符号数就是:-18 ,无符号数就是 238 。所以,add 一个指令可以适用有符号和无符号两种情况。
  乘法运算就不行了,必须用两套指令,有符号的情况下用imul 得到的结果是:0x FF D8 就是 -40 。无符号的情况下用 mul ,得到:0x 01 D8 就是 472 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-01
展开全部
加减运算指令是不区分有符号和无符号的,编程人员自己要心理有数。计算机对有符号整数的表示只采取一套编码方式,不存在正数用原码,负数用补码这用两套编码之说,大多数计算机内部的有符号整数都是用补码,就是说无论正负,这个计算机内部只用补码来编码!!!只不过正数和0的补码跟他原码在形式上相同,负数的补码在形式上与其绝对值的原码取反加一相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-01
展开全部
加减运算指令是不区分有符号和无符号的,编程人员自己要心理有数。计算机对有符号整数的表示只采取一套编码方式,不存在正数用原码,负数用补码这用两套编码之说,大多数计算机内部的有符号整数都是用补码,就是说无论正负,这个计算机内部只用补码来编码!!!只不过正数和0的补码跟他原码在形式上相同,负数的补码在形式上与其绝对值的原码取反加一相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式