吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4051|回复: 72

[汇编] 1.2数据宽度、字节序和ASCII码

  [复制链接]
大飞哥自习室 发表于 2022-3-21 20:40 | 显示全部楼层 |阅读模式

前面介绍了计算机中常用的进制表示方法和转换,现在读者知道了计算机存储的都是二进制的数据,那么接下来要讨论的是在计算机中数据存储的单位以及数据是如何存储在存储空间的。
1.2.1数据的宽度数据的宽度是指数据在存储器中存储的尺寸。在计算机中,所有数据的基本存储单位都是字节(byte),每个字节占8个位(位是计算机存储的最小单位,而不是基本单位,因为在存储数据时几乎没有按位进行存储的)。其他的存储单位还有字(word)、双字(dword)和八字节(qword)。图1-3给出各个存储单位所包含的位数。
微信截图_20220321203613.png

在计算机编程中,常用的几个重要数据存储单位分别就是byte、word和dword,这几个存储单位稍后我们会使用到。
1.2.2数值的表示范围
在计算机中存储数值时,也是要依据前面介绍过的数据宽度进行存储的,那么在存储数据时由于存储数据的宽度限制,数值的表示也是有范围限制的。那么byte、word和dword能存储多少数据呢?我们先来计算一下,如果按位存储的话,能存储多少个数据,再分别来计算以上三种单位能够存储的数值的范围。
计算机使用二进制进行数据存储时,一位二进制最多能表示几个数呢?因为是二进制数,只存在0和1两个数,所以一位二进制数最多能表示两个数,分别是0和1。那么,两位二进制最多能表示几个数呢?因为一位二进制数能表示两个数,所以两位二进制数则能表示2的2次方个数,即4个数,分别是0、1、10、11。进一步地,三位二进制数能表示的就是2的3次方个数,即8个数,分别是0、1、10、11、100、101、110、111。
上面的过程可以整理成表1-3。
表1-3N位二进制位能够表示的数

微信截图_20220321203701.png
33.png
2的8次方是256,为什么数值只有0~255个呢?因为计算机计数是从0开始,从0到255同样是256个数,这里的2的8次方表示能够表示数值的个数,而不是能够表示数值的最大的数。
这里只给出了无符号整数的表示范围,那么什么是无符号呢?数值分为有符号数和无符号数,有符号数是分整数和负数的,而无符号数值有整数没有负数。负数在计算机中的表示有符号数时借助了最高位来进行,如果最高位是0,那么就是整数,如果最高位是1则是负数。关于有符号数和无符号数不必过多地纠结,因为计算机表示数据是不区分有符号还是无符号的,有符号还是无符号是人在进行区分。这里就不做过多地解释了。
1.2.3字节序
字节序也称为字节顺序,在计算机中对数值的存储有一定的标准,而该标准随着系统架构的不同而不同。了解字节存储顺序对于逆向工程是一项基础知识,在动态分析程序的时候,往往需要观察内存数据的变化情况,这就需要我们在掌握数据的存储宽度、范围之后,进一步了解字节顺序。
通常情况下,数值在内存中存储的方式有两种,一种是大尾方式,另一种是小尾方式。关于字节序的知识,通过一个简单的例子就可以掌握。
比如有0x01020304(C语言中对十六进制数的表示方式)这样一个数值,如果用大尾方式存储,其存储方式为01 02 03 04,而用小尾方式进行存储则是04 03 02 01,用更直观的方式展示其区别,如表1-5所列。

4444.png
从两个地址列可以看出,地址的值都是一定的,没有变化,而数据的存储顺序却是不相同的。从表中可以得到如下结论。
大尾存储方式:内存高位地址存放数据低位字节数据,内存低位地址存放数据高位字节数据;小尾存储方式:内存高位地址存放数据高位字节数据,内存低位地址存放数据低位字节数据。
通常情况下,Windows操作系统兼容的CPU为小尾存储方式,而Unix操作系统兼容的CPU多为大尾存储方式。在网络中传输的数据的字节顺序使用的是大尾存储方式。
1.2.4  ASCII码
计算机智能存储二进制数据,那么计算机是如何存储字符的呢?为了存储字符,计算机必须支持特定的字符集,字符集的作用是将字符映射为整数。早期字符集仅仅使用8个二进制数据位进行存储,即ASCII码。后来,由于全世界语言的种类繁多,又产生了新的字符集Unicode字符编码。
ASCII码是美国标准信息交换码的字母缩写,在ASCII字符集中,每个字符由唯一的7位整数表示。ASCII码仅使用了每个字节的低7位,最高位被不同计算机用来创建私有字符集。由于标准ASCII码仅使用7位,因此十进制表示范围是0~127共128个字符。
在编程与逆向中都会用到ASCII码,因此有必要记住常用的ASCII字符对应的十六进制和十进制数。常用的ASCII字符如表1-6所列。

6666.png
表1-6是经常使用到的ASCII字符,这些字符是经常会见到和用到的,希望读者能将其保存,以便使用之时可以快速查阅。
Unicode编码是为了使字符编码更进一步符合国际化而进行的扩展,Unicode使用一个字(也就是两个字节,即16位)来表示一个字符。这里不做过多的介绍。

评分

参与人数 13HB +13 THX +5 收起 理由
花盗睡鼠 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
消逝的过去 + 1
后学真 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
风里去 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
凌夏随缘 + 1
louhaihua + 2 + 1
agan8888 + 1
sherry5566 + 1 <span class="text2Link">[吾爱汇编论坛<a target="_blank">52HB.COM</a>]-学破解防破解,知进攻懂防守!</span>.
ldljlzw + 1
一蓑烟雨 + 1 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
河图 + 1 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
AjI9634 发表于 2022-3-21 20:40 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
KhnfGoBV 发表于 2022-3-21 20:49 | 显示全部楼层

楼主的帖子不错,多发点~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
eklSC40 发表于 2022-3-21 20:50 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
oQP27 发表于 2022-3-21 20:50 | 显示全部楼层

大佬牛批!顶!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
IPGVh84539 发表于 2022-3-21 20:51 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
SuCRI 发表于 2022-3-21 21:03 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
XeTI3 发表于 2022-3-21 21:08 | 显示全部楼层

谢谢  前来学习 一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
JbV140 发表于 2022-3-21 21:26 | 显示全部楼层

顶帖,不仅谢谢楼主,也能赚HB
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ALNHRvIO6270 发表于 2022-3-21 22:32 | 显示全部楼层

前来向大佬学习
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表