第三章(1)

感觉这章前面基本上在讲汇编,学过汇编了,看起来还是比较轻松的。就记录一下比较感兴趣的吧。
在x86-64架构的CPU上,有16个寄存器,每个寄存器有64个bit。可以分为多个小寄存器使用。如rax可以(rax eax ax al)
8bit为一个字节,16bit为一个字(Word),32bit为双字,64bit位四字。
mov指令,mov a,b 将a的内容传送到b中。a和b不能同时为内存地址,所以要拷贝内存需要两条指令,先将源值加载到寄存器,再将寄存器的值传送到内存目的地址。

c语言的指针就是一个地址,通过地址的值去寻址,找到内存的实际值。局部变量时放在寄存器中,而不是内存中。
程序栈是内存中的一段区域,表现为后进先出。插入删除那一端称为栈顶,栈顶元素是所有栈中元素地址中最低的。
汇编指令:pushq %rax 会将rax寄存器的值push到栈顶。过程是rsp寄存器的值是栈顶的地址,所以rsp的值先减8,然后将rax的值存到rsp指向的地址。由于栈顶是低地址区域,栈低是高地址,若将pushq分成两部的话,一定是要先更新rsp寄存器的值,再move元素。
popq %rdx是将栈顶元素弹出到rdx寄存器中。rsp的值要对应加8。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 组件 计算机是一种数据处理设备,它由CPU和内存以及外部设备组成。CPU负责数据处理,内存负责存储,外部设备负责数...
    哆啦灬少A梦阅读 1,735评论 1 2
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,629评论 0 1
  • 编程语言的发展 机器语言由0和1组成 汇编语言(Assembly Language)用符号代替了0和1,比机器语言...
    阿凡提说AI阅读 4,533评论 0 15
  • 本文首发于我的博客 Bomb Lab 实验代码见GitHub 简介 BombLab是CS:APP中对应第三章内容:...
    viseator阅读 14,463评论 0 14
  • 年少时 期待的夜 闪烁霓虹 然而长大后我明白 这种夜不属于我 我躺在床上欣赏着闪烁的霓虹 守望者夜空的星星 期待着...
    星落凡尘007阅读 222评论 0 3

友情链接更多精彩内容