《深度理解计算机系统》读书笔记3-汇编

使用的机器为Intel IA32位。

1、机器指令的设计方式是,从某个位置开始,可以将字节唯一地解释成机器指令;

2、数据传送指令的两个操作数不能都是存储器。

3、数据传送指令分为三类:

(1)movb,movw,movl:两个操作数的长度要一样

(2)movsbw,movsbl,movswl:源操作数段,目的操作数长,采用符号扩展
(3)movzbw,movzbl,movzwl:源操作数段,目的操作数长,采用零扩展

(4)pushl,popl:将操作数压栈或者弹出栈顶元素到操作数。栈中一个位置的长度是32位

4、二元算术运算的两个操作数不能都是存储器。

时间: 2024-10-28 17:24:57

《深度理解计算机系统》读书笔记3-汇编的相关文章

深入理解计算机系统读书笔记一 ---> 计算机基础漫游

一.程序编译的不同阶段. 通常我们是以高级程序开发易于阅读的代码,我们通过语法规则推断代码的具体含义.但是计算机执行代码的时候就需要把代码解析成既定的可执行问题,计算机是如何处理的呢?这里以C语言hello.c文件为例来说明中间过程. #include <stdio.h> int main() { printf("hello world!\n"); } 先上张图. C语言源程序----预处理解析头文件和函数  --- 编译器解析成汇编语言 ---   翻译机器语言指令,打包

深入理解计算机系统读书笔记之第一章:漫游

我是从豆瓣上看到好多人都在推荐这本书,于是就去借来读一读,昨天晚上用了好长时间来读这本书的第一章节,感觉这本书比较符合我(有些基础还不太明白,这本书详细的进行了讲解,很好). 下面写一下我的理解(顺便回顾一下知识) 第一节主要讲的是: A Tour of Computer Systems 以hello.c为例进行讲解,介绍这个程序如何从一个源程序变成可执行程序,再到执行,显示屏上出现“hello,world” ···········································

深入理解计算机系统-读书笔记

第一章:计算机系统漫游 编译过程: 预处理阶段:预处理器根据字符#开头的命令,修改原始的c程序: 编译阶段:编译器将ascii文本文件翻译成汇编语言程序: 汇编阶段:汇编器将汇编语言程序翻译成机器指令,分为32位和64位系统机器语言指令,将这些指令打包成可重定位目标程序: 连接阶段:将一些所需的单独编译好的目标文件合并到可重定位目标程序中,得到一个可执行目标文件. 总线:贯穿整个系统的一组电子管道,携带信息字节并负责在各个部件间传递,通常总线被设计成传送特定长的字节块,就是字,字中的字节数(字长

深入理解计算机系统读书笔记之第二章信息的表示和处理

这一章读完,嗯,感觉怎么说呢? 就是读完了而已,没有想第一章那样,有具体的一些收获什么的.可能是没有很认真的阅读.读的很匆忙,有的内容很晦涩难懂............ 不管怎样还是在写一写自己的收获吧 这一章讲的是信息的表示和处理, 信息在系统中是怎样表示的呢?就是以字节来进行存储.信息就是位+上下文(第一章里面讲的) 具体的信息是怎样表示的? 带符号整数,不带符号整数,浮点数,等等. 1位运算 移位,向右移位 x>>k 分为两种形式 (1)逻辑上,向右移位就是在左端添加k个零[an-1,a

java内存区域——深入理解JVM读书笔记

本内容由<深入理解java虚拟机>的部分读书笔记整理而成,本读者计划连载. 通过如下图和文字介绍来了解几个运行时数据区的概念. 方法区:它是各个线程共享的区域,用于内存已被VM加载的类信息.常量.静态变量.即时编译器编译的代码等数据.JVM规范对这个区域的限制很宽松,如同堆一样不需要连续的内存.可选择固定大小.可扩展的大小外,还可以选择不实现垃圾收集.因为在些区域的垃圾收集必要性不高且效果较差.如果回收也是常量池的回收和类型的卸载,但此操作异常困难.当方法区无法满足内存的分配时,抛OutOfM

4.2《深入理解计算机系统》笔记(五)并发、多进程和多线程【Final】

该书中第11章是写web服务器的搭建,无奈对web还比较陌生.还没有搞明白. 这些所谓的并发,其实都是操作系统做的事情,比如,多进程是操作系统fork函数实现的.I/O多路复用需要内核挂起进程.多线程需要内核创建和挂起线程.我么只是使用以下操作系统的这项并发技术.但是我们必须处理一些存在问题. ●进程.用这种方法,每个逻辑控制流都是一个进程,由内核来调度和维护.因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用进程间通信(IPC). ●I/O多路复用.这种形式的并发,应用程序在一个进

3.2《深入理解计算机系统》笔记(二)内存和高速缓存的原理【插图】

<深入计算机系统>笔记(一)主要是讲解程序的构成.执行和控制.接下来就是运行了.我跳过了"处理器体系结构"和"优化程序性能",这两章的笔记继续往后延迟! <深入计算机系统>的一个很大的用处是:给了我们很多定义式的解释,或者称之为科学的解释,这将成为我的理论依据:不再是网上一些自称老手的闲聊了.不愧是计算机最牛逼的大学卡内基-梅隆大学的教材. 该blog跳过第四章CPU的结构,第五章优化程序性能,也没有详细讨论高速缓存的机制. 六.存储器层次结

深入理解JVM读书笔记五: Java内存模型与Volatile关键字

12.2硬件的效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无须等待缓慢的内存读写了. 基于高速缓存的存储交互很好地理解了处理器与内存的速度矛盾,但是也为计算机系统带来了更高的复杂度,因为它引入了一个新的问题: 缓存一致性(Cache Coherenc

深入理解JVM读书笔记: Class类文件结构

Class文件是一组以8位字节为基础单位的二进制流.采用一种类似于C语言结构体的微结构来存储数据,只有两种数据类型:无符号数和表.其中无符号数数据基本的数据类型,以u1.u2.u4.u8表示1.2.4.8字节的无符号数,用于描述数字.索引引用.数量值或者UTF-8编码字符串:表则是由无符号树和其他表的复合数据类型,以_info后缀.整个Class文件本质上就是一张表: 解析Class文件各个数据项含义: 魔数 头4个字节为魔数Magic Number,唯一作用是识别文件是否能被虚拟机接受. 版本