CMU 15-213 Introduction to Computer Systems学习笔记(4) Machine-Level Programming-Basic

这节课老师说不会让我们坐下来写汇编代码(那真的有点痛苦),而是我们会阅读大量代码,这些代码由GCC编译产生!

History of Intel processors and architectures 英特尔处理器架构的历史

这一部分老师讲的有点琐碎,blog中就不写了!

Assembly Basics: Registers, operands, move 汇编基础

Assembly Characteristics: Data Types 汇编语言特性

  • "Integer" data type of 1,2,4,or 8 bytes,不区分unsigned和signed
  • floating point 有4,8,10,bytes
  • 没有数组以及一些数据结构,只是内存中连续存储的单元

x86-64 Integer Registers

注意到 %r代表62位操作 %e代表了32位的操作,%e版本只是%r实体的低32位。

移动数据

移动数据格式

moveq  Source,Dest:

操作数类型

操作数组合

理解Swap()函数

使用x86-64的时候,函数参数总是出现在某些特定的寄存器中,今天要记住的是%rdi将是第一个参数寄存器,%rsi将是第二个参数寄存器

完整的内存地址模式

下面是内存完整模式的一个例子

地址计算

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值