2021-2022-1学期 20212320 《网络空间安全专业导论》第三周学习总结
第六章
6.1 计算机操作
计算机能够对数据执行的动作为存储,检索,处理
6.2机器语言
计算机真正执行的程序设计指令是用机器语言编写的指令(机器语言是由计算机直接使用的二进制编码指令构成的语言)。每条语言指令只能执行一个非常低级的任务。大多数程序是用高级语言写的,然后翻译成机器语言。
6.2.1 pep/9:一台虚拟机
1 基本特性
pep/9有七个寄存器。重点研究三个。
程序计数器:其中包含下一条即将被执行的指令的地址
指令寄存器:其中包含正在被执行的指令的一个副本
累加器:用来存储数据和运算结果。
关于二进制数和十六进制数的补充
一个字节能够表示最大十进制数是255,用二进制表示为11111111,用十六进制表示是FF,用二进制表示是1111111111111111
一个字能够表示的最大十进制数是65535。因此可以表示的十六进制值数的范围约为-7FFF到+7FFF,相当于十进制数的-32767到+32767
2指令格式
一条指令由两部分组成,即8位的指令说明符和16位操作数说明符。指令说明符说明了要执行什么操作和如何解释操作数的位置。操作数说明符存放的是操作数本身或者操作数的地址。有些指令没有操作数说明符。寻址模式说明符表示了怎样解析指令中的操作数部分。没有操作数的指令称为一元指令。
6.3一个程序实例
二进制和十六进制的列表示相同的值
6.4汇编语言
汇编语言给每条机器语言指令分配了一个助记指令码。汇编语言是一种低级语言,用助记码表示特定计算机的机器语言指令。
在pep/9汇编语言中,操作数用Ox和十六进制数表示。
汇编语言的源代码在可以执行前必须被翻译成机器码。
DECI指令代表十进制输入。DECO和STRO指令使得数据写入输出设备中。DECO指令输出特定的十进制数字。分支指令BR叫作无条件转移,它使得程序计数器的值为操作数中的存储器地址。
6.5表达算法
伪代码没有特定的语法规则,但必须表示出下面的概念。1变量 2 赋值 3输入/输出 4选择 5重复
如下是伪代码语句图
6.6测试
代码覆盖测试法。确保程序的每条语句都能被执行到。(明箱测试法)
数据覆盖测试法。它设计的测试用例会确保包括允许使用的数据的边界值(暗箱测试法)
第七章
7.2有简单变量的算法
1 带有选择的算法,主要使用的是if
2 带有循环的算法,计数控制和事件控制。
关于计数控制循环,三个不同的部分,第一是初始化,第二部分是测试,第三部分是增量。while循环被称为前测试循环
关于事件控制循环。循环中重复的次数是由循环体自身内发生的事件控制的循环被称为事件控制循环。当使用while语句控制时,三部分:事件必须初始化,事件必须被测试,事件必须更新。跳过或重复的语句中可以包含一个控制结构。选择语句可以嵌套在循环结构中,循环结构可以嵌套在选择语句中。控制结构嵌入另一个控制结构被称为嵌套结构。
3 平方根 calculate the square root是算法的核心。平方与原始值的差距在±0.001之间,则这个值就是足够好的,把这个差距称为epslion差异。测量差距的正负,运用绝对值计算abs
需要进一步拓展的步骤叫作抽象步骤(细节仍未明确的算法步骤),不需要拓展的步骤叫作具体步骤(细节完全明确的算法步骤)
7.3复杂变量
引用的字母叫作字符串。1 数组 数组是同构项目的有名结合,可以通过单个项目在集合中的位置访问它们。项目在集合中的位置叫作索引。2记录 记录是异构项目的有名集合,可以通过名字单独访问其中的项目,所谓异构就是集合中的元素可以不必相同。包含整数,实数,字符串或其他类型数据。
7.4搜索算法
顺序搜索 二分搜索
二分搜索采用的是分治法。二分搜索算法假设要检索的数组是有序的,其中每次比较操作可以找到的项目或把数组减少一半。二分检索不是从数组开头开始顺序前移,而是从数组中间开始。
7.5排序
选择排序 算法简单但有缺陷,它需要两个完整列表的空间。
冒泡排序 它从数组的最后一个元素开始,比较相邻的元素对,如果下面的元素小于上面的元素,就交换这两个元素的位置。
插入排序
7.6递归算法
当在一个算法中使用它自己时,这样的算法被称为递归算法。如果在某种程度上调用自己,则这个调用称为递归调用。这种算法使用一个选择语句来确定是否重复算法来调用一遍或停止这一过程,而不是使用一个循环语句执行一个算法。
子程序语句。子程序有两种形式,一种是只执行特定任务的命令代码,一种用作表达式,返回的值被用来评估表达式。
quicksort将对数组的左半边排序,(first,splitpoint-1).quicksort(splitpoint + 1)将对数组的右半边排序
7.7几个重要思想
信息屏蔽:隐蔽模块的细节以控制对这些细节的访问做法
数据抽象:把数据的逻辑视图和它的实现分离开
过程抽象:把动作的逻辑视图和它的实现分离开
控制.............控制.................
控制结构:用于改变正常的顺序控制流的语句
数据有两种形式:不可分割和复合的
问题:关于机器语言和汇编语言与之前接触到的Python语言完全不同,关于操作数,助记码等等概念过于陌生。自己生啃硬记难度较大。而且没有实际操作,对于这些实际的代码没有具体的印象
解决方法:关于第六章目前没有很好的方法,只能将相关名词看熟。对于第七章的算法,较为简单,符合英语语句的正常翻译,容易理解。