Blog

你感觉不到的那些事

Content #

你的皮肤上充满了接收器,会收集那些诸如你的右手在房间里的位置,或手指上戴戒指的感觉之类的信息。如果你不习惯戴戒指,你一开始会意识到有些什么平时没有的东西在你手上。新婚宴尔的人经常会坐在那儿转他们的戒指。当你逐渐习惯了戒指的存在,大脑就会把有关戒指的信息过滤掉。凡事都是如此。你穿的衣服、坐的椅子、刘海儿是怎么碰着前额的,还有手上捧着的书,大脑都会接收到从你的皮肤传来的相关信号。如果你的意识持续被这类信息充斥,你就不可能做到专心阅读这段文字。大脑会为你筛掉不必要的信息,这是一种对现实的审查制度。你应该为此感到高兴,因为这会让你专注于更为重要的事情。

From #

大脑帝国

酒后头痛是因脑膜受到拉扯

Content #

音乐会或夜店里的卫生间排长队,就是因为酒精会让你小便更为频繁。大脑中的垂体通常会释放出一种激素,能让你留住体内的水分而不会脱水。然而酒精会抑制这种激素的释放,水分也就留不住了。于是,你去厕所的次数就多了。脱水也是酒醉隔天头痛欲裂的部分原因。你是感觉不到大脑的疼痛的。酒后身体严重脱水,大脑体积缩小,脑膜受到牵拉。让人感到疼痛的是脑膜受到的拉扯,而不是大脑。

From #

大脑帝国

改变吸烟的习惯

Content #

人们所说的心理依赖其实也是一种生理依赖。吸烟的人饭后必来一支烟,或者香烟夹在指间的那一刻顿感压力消失,这也是依赖性的一个重要部分。许多戒断方法针对的正是这种习惯——而且事实证明是有效的。试着让每天早晨的“起床烟”一天比一天抽得晚吧,最好是把烟夹在你的其他手指之间或另一只手上。这是改变习惯的好方法。然而习惯也是生理性的。习惯就是那些一次又一次共同发送信号并由此变得强大而又稳定的神经细胞网络集合。每当你感到有压力时不要拿出烟来,实际体验一下如何在没有那白色小棍儿的帮助下应对压力,你就可以弱化这些神经细胞网络。

From #

大脑帝国

食品工业是怎么研究我们的

Content #

在所有的食品成分中,我们最为渴望的是糖、盐和脂肪。这已为食品工业所熟知,他们越来越多地将这三种成分满满地加入其产品中,好让我们大脑的奖励系统为之疯狂。这些东西会让你的大脑欢呼雀跃,并想要更多。我们对甜的、咸的和油腻的食物的渴望既是与生俱来的又是后天习得的。

事实上,如果同一样东西我们吃得太多,大脑就会告诉我们,我们已经饱了。不过这个问题已经被食品行业研究过了,也部分地解决了。他们发现,如果他们生产的食物没有那么重的口味,大脑就不会感到厌烦。我妈做的驼鹿肉排配上自制的调味酱汁,味道远比汉堡要好,可是我吃一个150克的汉堡很容易,却从来也吃不了那么多的驼鹿肉——即使那样更健康。吃汉堡时,脑部的停止信号或者说饱腹感来得没有那么快,因为汉堡的味道并不那么独特,也完全没有一点余味。大脑的目标是让我们的饮食多样化,食品行业的结论却是,单调乏味的食物会激起人的食欲。而认识到这一原理,可以帮助我们做出更为周全的食物选择。

汉堡至少感觉上还像食物,而其他一些食物,比如某些类型的薯片和冰激凌,仿佛可以无穷无尽地吃下去,尽管很容易就会摄入同样多的卡路里。也就是说大脑不光对总的热量摄入有反应,对其他一系列因素也有反应。如果你吃的东西入口即化,大脑会认为你吃的比你真实摄入的要少。碳酸饮料对我们造成的危害,主要不是它的卡路里含量,而是这些卡路里的存在形式。当卡路里以液态形式摄入时,大脑就会不太注意它们了。

而结果呢?你会摄入比所需更多的热量。此外,饮食习惯也不是单独形成的。酒精的摄入会增加选择高脂肪食物的可能,而高脂肪食物也会增加选择以酒配菜的概率。至少在大鼠身上是这样的。

From #

大脑帝国

干活时该不该听音乐

Content #

多篇研究报告显示,不管你喜欢的是哪种类型的音乐,只要你干活的时候听点儿什么,都会让你在干那些重复枯燥的工作时好过一些,此外还能更快地完成这些任务。不过,如果你要学的是新东西,你就该按下“暂停”键了。费脑力的任务需要精神高度集中,所以当你第一次学习一门新语言或尝试破解一道数独难题时,最好把音乐关掉。近年来多项研究表明,如果我们在解新难题的同时听着音乐,表现会更差一些。因此,如果你要学习新的东西,首要的原则是,你应该摘下耳机,全神贯注,心无旁骛。

我的外科护士同事告诉我,以前有个医生喜欢在手术室边听音乐边做脑外科手术。如果你擅长你做的工作,那么即使那是具有挑战性的工作,音乐的效用还是很好的。《美国医学会杂志》上刊载的一项研究表明,那些工作时听自选音乐的外科医生,比起全然无声的时候,手术做得更快更精细。还有其他几项研究也得到了类似的结果。如果你是你那一行的专家,音乐的魔力就会展现出来。

当你听着你最喜欢的音乐——无论你喜欢的是哪种类型的音乐——你都会不再那么紧张。我妹妹学习的时候会听重金属音乐。当然那是她才会这么干。如果你确实想要干点活儿,那么你至少该选以前听过的音乐。新的音乐会促使你的大脑释放大量的多巴胺,结果,你的注意力可能会更多地放在音乐上,而不是你想要干的活儿上。干活儿的时候放音乐,播放列表选定“我的最爱”就别换了。如果你想听听新的音乐,那就选歌词很少或者没有歌词的。纯音乐比带歌词的音乐更能提高你的脑力。而如果你要做的是创造性工作,那么来点儿背景音乐似乎是有益的。或许这能让你神思散逸,从而更快做决定,也更富有创意?

From #

大脑帝国

文化规范与前额皮层

Content #

文化规范约束我们、驾驭我们。规范润滑着我们的社会机器。我们每个人通过成长让那些规定了什么是合适的、什么是不合适的规则深深印到了我们内心。我们将学到的规则作为我们以后社会行为的准绳。在大脑额叶的最前部——前额皮层的帮助下,我们将这些规则变为自己的规则。前额皮层的成熟与否取决于来自脑干的多巴胺回路系统中的多巴胺是否达到了最佳含量。多巴胺是我们大脑中的奖励物质。当多巴胺含量偏离最佳值时,人们就会变得容易冲动、精神涣散。

大脑前额皮层受损的人,失去了依从社会文化所规定的那些规则行事的能力。他们往往变成了由刺激控制的人。一旦他们起了要掐某人屁股的念头,他们就会那么干。要是他们觉得果盘里的苹果看起来很诱人,他们就会拿起来吃。他们想到什么就会去做什么,无论他们采取的行动在特定的情况下是多么不恰当。多项研究表明,那些前额皮层没有完全发育成熟的人,可能会出现反社会人格障碍以及(或)从事犯罪活动。

From #

大脑帝国

大脑无法同时做两件类似的事

Content #

如果在做某件事时试图同时做别的事,你的大脑可能会瘫痪,因为前额皮层无法即时转移关注点。这将造成短暂的执行时间差。大脑无法同时做两件类似的事,因为两个任务会争夺同一批神经细胞网络。比方说,听人说话和阅读词语分别需要使用的大脑区域有部分是重叠的,因而同时做这两件事,比起看风景的同时听人说话要更困难。

一切都是专注力的事。即便任务是不同的,一个正在电话中谈重要事情的司机,比起没有打电话的司机,对驾驶的注意力还是要差一些。结果就是开车打电话的司机,驾驶时注意力的分散程度与血液酒精浓度达到0.8‰的酒驾司机相当,即便这里说的是使用非手持方式打电话。

From #

大脑帝国

nop函数的定义

Content #

GNU C语言提供了关键字asm来声明代码是内嵌的汇编语句,如下面这行代码:

  #define nop()     __asm__ __volatile__ ("nop     \n\t")

C语言使用关键字__asm__和__volatile__对汇编语句加以修饰。❏ “asm“关键字:用于声明这行代码是一个内嵌汇编表达式,它是关键字asm的宏定义(#define __asm__ asm)。故此,它是内嵌汇编语言必不可少的关键字,任何内嵌的汇编表达式都以此关键字作为开头;如果希望编写符合ANSI C标准的代码(即与ANSI C 标准相兼容),那么建议使用关键字_asm_

❏ __volatile__关键字:其作用是告诉编译器此行代码不能被编译器优化,编译时保持代码原状。由此看来,它也是内嵌汇编语言不可或缺的关键字,否则经过编译器优化后,汇编语句很可能被修改以至于无法达到预期的执行效果。如果期望编写处符合ANSI C标准的程序(即与ANSI C标准兼容),那么建议使用关键字_volatile_

From #

一个64位操作系统的设计与实现

cdecl调用约定

cdecl调用约定 #

■ cdecl调用约定的参数压栈顺序与stdcall相同,皆是按照从右向左的顺序将参数压入栈中。

■ 函数的栈平衡操作是由调用函数完成的,这点与stdcall恰恰相反。stdcall 调用约定使用代码retn x平衡栈,而cdecl调用约定则通常会借助代码leave、 pop或向上移动栈指针等方法来平衡栈。

■ 每个函数调用者都含有平衡栈的代码,因此编译生成的可执行文件会较 stdcall调用约定生成的文件大。

cdecl是GNU C编译器的默认调用约定。但GNU C在64位系统环境下,却使用寄存器作为函数参数的传递方式。函数调用者按照从左向右的顺序依次将前6个整型参数放在通用寄存器RDI、RSI、RDX、RCX、R8和R9中;同时,寄存器XMM0~XMM7 用来保存浮点变量,而RAX寄存器则用于保存函数的返回值,函数调用者负责平衡栈。

From #

一个64位操作系统的设计与实现

stdcall调用约定

stdcall调用约定

stdcall调用约定 #

■ 在调用函数时,参数将按照从右向左的顺序依次压入栈中,例如下面的 function函数,其参数入栈顺序依次是second、first:

  int function(int first, int second)

■ 函数的栈平衡操作(参数出栈操作)是由被调用函数完成的。通过代码retn x可在函数返回时从栈中弹出x字节的数据。当CPU执行RET指令时,处理器会自动将栈指针寄存器ESP向上移动x个字节,来模拟栈的弹出操作。例如上面的function函数,当function函数返回时,它会执行该指令把参数 second和first从栈中弹出来,再到返回地址处继续执行。

■ 在函数的编译过程中,编译器会在函数名前用下划线修饰,其后用符号@修饰,并加上入栈的字节数,因此函数function最终会被编译为_function@8。

From #

一个64位操作系统的设计与实现

cdecl调用约定