计算机组成原理
全幼儿园最聪明
计算机专业硕士在读
展开
-
linux查看C程序的汇编代码(可读懂)
以C程序文件名为test.c为例写出gcc命令如下。可替换成自己的文件名。若不指定生成文件的文件名,默认为a.out。方法一:生成.s文件gcc -S -o test.s test.c //注意大写Svim test.s方法二:先生成.o文件,再反汇编gcc -c -o test.o -test.cobjdump -d test.ogcc -g -c -o test.o -tes...原创 2020-04-26 18:03:00 · 4300 阅读 · 1 评论 -
如何判断OF溢出标志位的值?
在做位运算实现函数功能的相关题目时,我遇到了一个很重要的问题,两个有符号整数做加/减法时,用来判断是否溢出的OF位该如何判断?最后整理出3个方法,整理并分享出来,希望对您有帮助。1.根据计算机组成原理课上学习的知识OF = Cn ⊕ Cn-1注意这里的Cn和Cn-1并不是指x+y或x-y结果补码的最高有效位的左边的进位以及最高有效位的数值,而是指x+y或x-y结果补码的最高有效位以及次...原创 2020-04-12 22:04:52 · 22728 阅读 · 2 评论 -
Makefile中的‘$’字符异常?
我在将统计代码行数(滤去空行)的命令写进Makefile时出现错误,发现其中的$|字符出现异常,颜色与其他字符的颜色不同。在运行时并没有识别出这两个字符,主要原因是Makefile中的‘ $ ’是一个特殊字符。解决方案**用 $ $ 代替 $ **Makefile中变量在声明时需要赋初值,在使用时,需要在使用的变量前加" $ “符号,但是最好使用” ()“或者”{}“将变量包括起来。$ $ 在...原创 2020-04-05 22:20:57 · 367 阅读 · 0 评论 -
git checkout命令报错Your local changes to the following files would be overwritten by checkout
在linux下使用命令git checkout master出现错误error:Your local changes to the following files would be overwritten by checkoutPlease commit your changes or stash them before you switch branches.错误原因:根据提示信...原创 2020-04-05 22:12:29 · 9804 阅读 · 1 评论 -
为什么要用移码(而非补码)来表示浮点数的阶?
阶码可以用补码编码吗?既然移码是为了避免负阶而加的偏置常数,那为什么不直接用补码来表示阶呢?虽然有正负阶,但是我们补码一样可以方便地进行加减乘除运算,为什么用移码而不用补码呢?阶码可以用补码来编码。但是补码,阶码两者相较,阶码更好。1. 便于浮点数加减运算时的对阶操作(比较大小)比较大小时,用移码编码将其转化为正数比较,从数字电路实现的角度,可以简化比较。比如:1.01 * 2^(-...原创 2020-03-27 16:48:53 · 3113 阅读 · 0 评论 -
C程序判断数据的存储方式/数据按字节顺序打印
判断数据在机器中的存储方式是大端还是小端,只要将数据按字节顺序输出即可判断,因此这实际上是同一个问题。实现思路先取数据地址,转换成单字节长度的类型(unsigned char)的指针,然后按照十六进制逐字节打印即可。我采用的输出格式为“%02x”,这种格式输出能够向右对齐,不足位补齐,补齐位为0#include <stdio.h>int main(){ int x = 1...原创 2020-03-27 16:18:25 · 559 阅读 · 0 评论