计算机组成原理
文章平均质量分 91
CS61C 2020 计算机组成原理 20200816
chnyi6_ya
小菜鸟想变强
展开
-
CS61C 2020计算机组成原理Lecture 04
如果你从一个函数返回一个指向其局部变量的指针,那么当函数执行结束后,该指针将指向一个已经不再有效的内存区域。尝试访问通过这样的指针引用的数据是非常危险的,因为它可能导致未定义的行为,比如访问或修改其他变量的值,或者导致程序崩溃。在C语言中,从函数返回指向本地变量的指针是不安全的,原因在于局部变量(本地变量)的生命周期。//但在计算机内部一般都是小端序,与人类的阅读习惯相反,但更符合计算机读取内存的方式,因为CPU读取内存中的数据时,是从低地址向高地址方向进行读取的。寄存器是没有小端序 大端序的概念的。原创 2024-09-20 00:00:00 · 931 阅读 · 0 评论 -
CS61C 2020计算机组成原理Lab03
A: after “la t3, n” , t3这个地方变成了 268435464。gpt4的回答(更详细,举了例子,和我的答案是一样)完成factorial.s, 实现求阶乘的功能。Answer: s1 和 s2。Answer: 使用偏移。原创 2024-09-20 00:00:00 · 771 阅读 · 0 评论 -
CS61C 2020计算机组成原理Lecture03
指的是内存地址能够被4整除的情况。当数据存储在以4为间隔的地址上时,就说它位于4字节边界上。如果我们有一个内存地址序列,从0开始计数,则地址0, 4, 8, 12等都是4字节边界的地址。这意味着一个32位(或4字节)的数据块可以从这些地址开始存储,而不会跨越不同的4字节边界。对齐的边界:一个2字节对齐的边界意味着数据应该存储在内存地址是2的整数倍的位置上。例如,内存地址0, 2, 4, 6, 8等都是2字节边界的地址。与4字节边界类似,半字边界的对齐通常是为了优化内存访问的性能。原创 2024-09-19 00:00:00 · 628 阅读 · 0 评论 -
CS61C 2020计算机组成原理Lab02
Makefile是一个特殊的文件,用于控制构建(编译和链接)过程根据下面Makefile文件的内容,回答7个问题,先弄明白这个文件的意思变量定义:条件赋值::这两段代码是Makefile中的规则,用于指定如何构建特定的程序,第一个规则是这些规则的目的是告诉Make如何从对象文件创建可执行程序。当执行****命令时,Make会查找这些规则,根据依赖关系先编译必要的源文件生成对象文件,然后再链接这些对象文件生成最终的可执行文件。这四行是Makefile中的依赖性声明,它们指定了源代码文件(**文件)对原创 2024-09-18 00:00:00 · 659 阅读 · 0 评论 -
CS61C 2020计算机组成原理Lecture02
联合体与结构体之间的区别是:结构体的各个成员会占用不同的内存,相互之间无影响。而联合体的所有成员公用一段内存,修改一个成员会影响其余所有成员。结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),联合体占用的内存等于最长的成员占用的内存。联合体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。ps:C 程序是在CPU上加载并且执行的,所以速度很快。打印argv[3],结果是 null 或者 zero。特别注意,c中要自己手动管理内存。原创 2024-09-17 00:15:00 · 628 阅读 · 0 评论 -
CS61C 2020计算机组成原理Lab01-数字表示,溢出
lab推荐的是 Valgrind这个工具,是一个模拟你的GPU并且跟踪内存访问的程序。或者使用 display(我用display才能在打印台上看到)argc=1表示只有一个变量,这个变量就是这个程序名称本身。你应该观察到了一个段错误(segfault),命令继续执行函数之后的代码,或者使用 finish。当你完成函数内部的调试后,你可以使用 step。)选项,它告诉LLDB进入函数内部进行调试。命令退出函数调用并返回到调用函数的上下文。启动你的程序,可以使用。在macos上,可以使用。原创 2024-09-16 00:15:00 · 929 阅读 · 0 评论 -
CS61C 2020计算机组成原理Lecture01-数字表示,溢出
原码就是符号化的数值,其编码规则简单直观:正数符号位用0表示,负数符号位用1表示,数值位保持不变。但原码存在两个机器0,这会给数据运算带来麻烦。另外原码的加减法运算复杂,符号位不能直接参与运算。加法运算需要“同号求和,异号求差”,减法运算需要“一号求和,同好求差”,求差时还需要先比较大小,然后用大数减去小数,最后结果的符号选择也相对复杂。显然,利用原码作为机器数在实现加减法运算方面是不方便的,。原创 2024-09-16 00:00:00 · 1014 阅读 · 0 评论