引言:要想成为一名合格的开发者,掌握计算机系统工作原理是必须的,而在学这些之前应具有一门编程语言(汇编最好)的基础和一些计算机底层基础。本篇,我将从零开始一步步地探究高级语言底层逻辑和实现原理,希望对喜欢钻研的小伙伴们有所帮助。
注意,C语法在底层的具体实现并不是这样,很多较为复杂的机制细节以后逐步介绍。
所有字符型数据的存储大小为1个字节,例如,用C语法定义一个字符变量
char c1=‘A’;
在内存中定义一个字符变量可用以下汇编语法实现
c2 BYTE ‘a’
通常这一类型数据的存储大小与系统CPU操作位数有关,64位系统中,一般short型占2字节;int型占4字节;long型占8字节,在该环境下
short val1; int val2=1024; long val3=999999;
而在底层,可以这样建立这些变量
val1 WORD ? val2 DWORD 1024 val3 QWORD 999999
什么,这里就到指针了?先不要慌,指针在底层中没那么复杂,这里只要知道它是数据的内存地址就行了。在同一个系统中,数据的内存地址存储大小是固定的,32位系统中为4字节,64位系统实际为6字节但编译器一般默认8字节。定义指针
int *p; //C语言定义一个整型指针
pr1 DWORD ? ;指定一个可存放32位地址的变量(内存地址空间)
pr2 QWORD ? ;指定一个可存放64位地址的变量(内存地址空间)