摘要:
现代微处理器可以称得上是人类创造出的最复杂的系统之一。一块手指甲大小的硅片上,可以容纳一个完整的高性能处理器、大的高速缓存,以及用来连接到外部设备的逻辑电路。从性能上来说,今天在一块芯片上实现的处理器已经使20年前价值1000万美元、房间那么大的超级计算机相形见绌了。即使是在像手机、导航系统和可编程 阅读全文
posted @ 2023-05-25 10:01
进击的胖虎
阅读(47)
评论(0)
推荐(0)
摘要:
理解指针 每一个指针都对应一个类型。这个类型表明该指针指向哪一类对象。如果对象类型为T,那么指针类型为T*,特殊的void *类型代表通用指针。 每一个指针都有一个值。这个值时某个指定类型的对象的地址。 指针用‘&’运算符创建。这个运算符可以应用到任何lvalue类的C表达式上,lvalue意指可以 阅读全文
posted @ 2023-05-25 09:50
进击的胖虎
阅读(15)
评论(0)
推荐(0)
摘要:
结构 C语言的struct声明创建一个数据类型,将可能不同类型的对象聚合到一个对象中。用名字来引用结构的各个组成部分。类似于数组的实现,结构的所有组成部分都存放在内存中一段连续的区域内,而指向结构的指针就是结构第一个字节的地址。编译器维护关于每个结构类型的信息,指示每个字段(field)的字节偏移。 阅读全文
posted @ 2023-05-21 21:27
进击的胖虎
阅读(22)
评论(0)
推荐(0)
摘要:
基本原则 对于数据类型T和整型常数N,声明如下: T A[N]; 起始位置表示为xa。这个声明有两个效果。首先,它在内存中分配一个L·N字节的连续区域,这里L是数据类型T的大小(单位为字节)。其次,它引入了标识符A,可以用A来作为指向数组开头的指针,这个指针的值就是xa。可以用0~N-1的整数索引来 阅读全文
posted @ 2023-05-21 18:59
进击的胖虎
阅读(31)
评论(0)
推荐(0)
摘要:
过程是软件中的一种抽象,提供一种代码封装的方式,类似于函数。 要提供对过程的机器级支持,必须包含以下机制: 传递控制:在进入过程Q的时候,程序计数器必须被设置为Q的代码的起始地址,然后在返回时,要把程序计数器设置为P中调用Q后面那条指令的地址。 传递数据:P必须能够向Q提供一个或多个参数,Q必须能够 阅读全文
posted @ 2023-05-21 17:32
进击的胖虎
阅读(33)
评论(0)
推荐(0)
摘要:
条件码 前面我们在操作数指示符和数据传送指令中介绍了整数寄存器,在 32位 CPU 中包含一组 8 个存储 32 位值的寄存器,即整数寄存器。它可以存储一些地址或者整数的数据,有的用来记录某些重要的程序状态,有的则用来保存临时数据。而这里我们要介绍的是条件码(condition code)寄存器。它 阅读全文
posted @ 2023-05-15 20:40
进击的胖虎
阅读(111)
评论(0)
推荐(0)
摘要:
加载有效地址 leal 指令也称为加载有效地址(load effective address)指令,它实际上是 movl 指令的变形。它的指令形式是从存储器读数据到寄存器,但实际上它根本没有引用存储器。它的第一个操作数看上去是一个存储器引用,但该指令并不是从指定的位置读取数据,而是将有效地址写入到目 阅读全文
posted @ 2023-05-10 17:12
进击的胖虎
阅读(71)
评论(0)
推荐(0)
摘要:
本章将详细学习汇编语言,了解如何将c程序编译成这种形式的机器代码。 数据格式 各种数据类型大小如下 操作数指示符 大多数指令有一个或多个操作数,指示出执行一个操作中要使用的源数据值,以及放置结果的目的位置。各种操作数的可能性被分为三种,第一种是立即数,用来表示常数值,不同指令允许的立即数范围不同,汇 阅读全文
posted @ 2023-05-10 16:12
进击的胖虎
阅读(17)
评论(0)
推荐(0)
浙公网安备 33010602011771号