深入理解计算机读书笔记第三章

深入理解计算机系统

第三章

这章内容有多表,规定了各种表示方式,很重要。需要的时候要去查询。

这章习题很重要,能够加深对于汇编概念的理解,根据参考答案和题目进行思考。

1.数据表示


2.寄存器介绍和地址移动


这章表表示了寄存器的名称和功能,非常重要,后面的汇编寄存器基本都需要查看这章表。


寻址方式计算表,汇编指令中地址的技术根据此表。

数据移动指令,mov后面的字母表示移动的大小。指令里第一个数为源数据,第二个为目标地址,表示把源数据移动到目标地址。


movz表示剩余位补0,movs表示剩余位符号填充(把源数据的最高位进行填充扩展)

3.栈


红色部分说明,push先移动栈指针再赋值,pop先把数据弹出再进行栈指针移动。移动方向根据栈的方向而定,push往原理栈底方向移动8个字节,pop往靠近栈底方向移动8个字节。移动8个字节是因为64位机器,8个字节就是64位,能表示全部地址内容。

4.算数运算指令


要想好的理解指令含义做对应的练习题,根据答案进行分析理解。

5.逻辑控制



逻辑的控制都是根据条件码进行的,运算会指令会设置条件码,进行判断的时候需要读取,然后进行判断。比如大于还是小于,正还是负,要想好的理解还是做练习题跟书中内容细读。这个地方不是很好理解,个人的简单理解就是计算机在进行逻辑判断时就会根据条件码来判断出结果,具体通过哪些条件码的组合,比较复杂。

cmp  s  r  比较指令等于 r - s ,结果需要查看条件码才能知道是大于,小于,还是等于。本身无法知道结果

6.跳转


条件跳转就是根据运算后设置的条件码进行判断是否需要跳转。

直接跳转不进行计算直接跳转。


跳转会生成对应的跳转标记,再转换成后标记被变成相对地址或者绝对地址,图中是常用的相对地址。

红色标记为标记转换后生成的相对地址。地址计算为跳转指令后面的数字,跳转指令为1个字节,所以都是2个16进制后面的数字为需要计算的值。

比如03,表示跳转相对于下一个指令的地址加3,所以为8(5+3)。f8为补码,表示负数,转换后为负8,所以跳转地址为下一个指令地址减8,为5(d -8)

练习题3.15,能帮助理解跳转地址的转换

7.循环

循环转成汇编后还是以跳转的方式实现,从汇编反编译活动代码里循环是通过gotto语句来实现的,这个跟生成的汇编形式很像。每种循环都是类似的方式实现,具体语句不太一样。



8.栈上的数据局部存储和递归调用

参数一般都是通过寄存器直接进行保存,方便直接使用,但是在参数过多超过寄存器数量时,就会保存在栈上。

每个过程调 用在栈 中都有 它自己 的私有 空间, 因此多 个未完 成调用 的局部 变量不 会相互 影响。此外 ,栈的 原则很 自然地 就提供 了适当 的策略 ,当 过程被调用时 分配局 部存储 ,当 返回时释放 存储。

9数组分配和结构体

数组本身是一组连续是数据,所以在内存中也是通过连续的地址进行保存的。嵌套数组依然是一组连续的数据进行保存,比如二维数组就是两个一维数组连续内存地址保存。

变长数组:

历史上 , C 语言 只支持 大小在 编译时 就能确 定的多 维数组 (对 第一维 可能有 些例外 h程序 员需要 变长数 组时不 得不用 malloc 或 calbc 这 样的函 数为这 些数组 分配存 储空间 ,而且不得 不显式 地编码 ,用 行优先 索引将 多维数 组映射 到一维 数组, 如公式 (3.1) 所示。 ISOC 时引 人了一 种功能 ,允许 数组的 维度是 表达式 ,在 数组 被分配 的时候 才计算 出来。

结构体这样的数据结构在内存中也是像数组一样通过连续的内存地址进行保存。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 180,161评论 5 436
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 75,785评论 2 342
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 128,551评论 0 297
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 48,708评论 1 254
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 57,479评论 4 337
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 43,558评论 1 250
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 34,544评论 3 364
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 33,100评论 0 237
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 37,231评论 1 278
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 32,788评论 2 285
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 34,457评论 1 300
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 30,484评论 3 294
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 35,750评论 3 287
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 27,507评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 28,714评论 1 240
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 38,993评论 2 318
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 38,555评论 2 318