- Vim经常使用命令总结
- 插入:
- 退出:
- :q:退出
- :wq!:强制保存并退出
- :wq:保存并退出
- :w <文件路径> :另存为
- 删除:
- 在vim中,查看printq!:强制退出,不保存f man pages(帮助文档)的命令是 :3K
- gdb
- 进入gdb:
- gcc -g xxx.c -o xxx
- gdb xxx
- 查看源码:
- (gdb) l:进行行号提示
- (gdb) b n:在第n行设置断点
- (gdb) r:运行代码,运行至断点处
- (gdb) n:单步运行
- (gdb) c:使程序继续往下运行,直到再次遇到断点或程序结束
- (gdb) q:退出GDB
- (gdb) watch n:在"n"设置了观察点,观察变量的变化状况
- gdb中使用命令(break main)设置main函数断点。
- gdb中使用命令(until)能够跳出循环语句。
- gdb中next和step均可以单步跟踪,根据自顶向下原则应该优先选用next
- GDB中以16进制形式打印%eax中内容的命令是(print /x $eax)
GCC编译过程算法
- 以hello.c为例
- 预处理:gcc –E hello.c –o hello.i ;gcc –E调用cpp 产生预处理过的C原始程序
- 编译:gcc –S hello.i –o hello.s ;gcc –S调用ccl 产生汇编语言原始程序
- 汇编:gcc –c hello.s –o hello.o ;gcc -c 调用as 产生目标文件
- 链 接:gcc hello.o –o hello ;gcc -o 调用ld 产生可执行文件
- 运行: ./hello
GCC中INFINITY表示(无穷大)。vim
CH01-07易错习题
- CH01
- CPU中的(PC或程序计数器)寄存器总指向主存中的某条机器语言指令。
- (进程)是操做系统对正在运行的程序的一种抽象。
- 存储层次结构的主要思想是一层上存储器做为低一层存储器的(高速缓存)
- CH07
- linux系统中,连接器程序是(ld)。
- (加载器)将可执行文件的内容映射到存储器,并运行这个程序。
- C语言中的全局变量能够一次声明,屡次定义。(X)
- CH02
- 练习2.6中整数换成12345,浮点数换成12345.0,最多时共(13)位匹配。
- a,b长度都是一个字节,a=6,b=15, a|b = ( 15 )
- a,b长度都是一个字节,a=6,b=15, a||b = ( 1,True,非零 均可以 )
- 计算机将信息按位编码,一般组织成(字节)序列。
- 计算机的(字长)指明整数和指针数所的标称大小。
- 文本数据比二进制数据具备更强的平台独立性。(ok)
- (香农)创建了布尔代数和数字逻辑之间的联系。
- 计算机执行的整数运算其实是模运算。(Ok)
- IEEE浮点数标准包含符号、尾数、(阶码)三部分。
- CH03
- (精通细节 )是理解更深和更基本概念的先决条件。
- (程序计数器或%eip) 指示将要执行的下一条指令在内存中的地址。
- 两个寄存器(%ebp和%esp)保存着指向程序栈中重要位置的指针。
- 把当即数0x4050复制到%eax的指令是( movl $0x4050 ,%eax )
- SET指令对有符号数和无符号数有不一样的处理方式。(X) 处理方式相同
- jz/jnz指令中跳转条件是由(ZF)决定的。
- C语言中的循环结构汇编中能够用(条件测试和跳转)组合起来实现。
- Linux汇编中,销毁栈帧的语句是(movl %ebp,%esp popl %ebp 或leave)
- Linux汇编中,须要调用者保存的寄存器有(%eax,%edx,%ecx )。
- GDB中以16进制形式打印%eax中内容的命令是(print /x $eax)
- CH04
- Y86中,有(8)个程序寄存器。
- Y86中,movl rA, rB 实现寄存器间的数据传送。( x )
- Y86中,状态码INS表示遇到非法地址。( X )
- (YIS或指令集模拟器 )但是模拟Y86机器代码的执行。
- HCL中,多路复用函数使用(状况表达式)来描述。
- ALU是一种时序电路。(X)
- 寄存器是一种时序电路。(X)
- CH06
这学期已是第二学期写博客了,相比于上学期刚刚接触的陌生与不适应,已经渐渐有了习惯的感受,对每周知识的梳理是对这几天学习成果的反馈。这学期最大的收获实际上是学习心态上的改变,上学期多少总以为学习量大每次都有点应付的小情绪,这学期每周都把知识化整为零天天学习一点,就没有那么大压力,并且以为的对知识的吸取也好了不少。经过这半学期的自我学习,我认为最重要的仍是对本身的从新认知与态度上的积极转变,别人再怎么强制督促也是外部条件,只有本身心态上的积极转变才会有动力与真正的收获。缓存
本身的不足
在自学方面我也只是算刚刚入门,要改进的地方也是路漫漫其修远兮。对书本的知识我到底每次自学完本身能消化多少,有些东西学过去由于没有理解到核心也只是似懂非懂,真正的原理并无掌握。我很明白本身的不足是对知识的理解不够深刻透彻,可是这个改进是日积月累的,对每个不懂的问题都要搞懂,不光会作题还要理解题目的用意与相关联知识,这样才能更好的自学。安全
课程建议和意见
我认为大学自学这个方法是很好的,锻炼自主学子能力与作事效率,对从此的学习工做也有很大帮助。可是自学毕竟能达到的层次仍是有限,若是老师在咱们自学后再将课程串讲一遍我想你们确定会理解的更加深入。bash