2021-2022第一学期20212423《网络空间安全专业导论》第三周学习总结
作者:互联网
- 一、计算机操作
- 二、计算机语言
- 三、一个程序实例
- 四、汇编语言
- 五、表达算法
- 六、测试
- 第七章 问题求解与算法设计
- 一.如何解决问题
- 二.测试算法---需要在开发过程的早期阶段进行
- 三.有简单变量的算法
- 四.搜索算法
- 五.排序
- 六.递归算法---算法调用它本身的能力
- 七.几个重要思想
==========
一、计算机操作
计算机对数据执行的操作:存储、检索、处理
操作特点:可编程的(操作数据的指令本质上也是一种存储的数据)
二、计算机语言
机器语言---编写了计算机真正执行的程序指令(指令固定在计算机的硬件中)由计算机直接使用的二进制编码指令构成的语言。
计算机指令的表示---每个处理器都有专用的机器指令集合,这是处理器唯一能够真正执行的指令。
指令清单:处理器设计者列出所有指令,并给每个指令分配一个二进制代码用来表示它们。(CPU实际上自身就能够识别专用命令的二进制,因此真实清单并不存在,该“清单”已经被嵌入CPU自身设计)
1.Pep/9虚拟机
定义:一种假象的机器,为了模仿真实机器的重要特征
基本指令:40条(所有该虚拟机程序皆由这40条指令所编写)
a.基本特征:存储空间65536字节 字长2字节
寄存器(在CPU的ALU中的一小块储存区域)
寄存器分类(共七类,重点研究三个)
程序计数器(PC):包含下一条即将被执行的指令的地址
指令寄存器(IR):其中包含正在被执行的指令的一个副本
累加器(A):用来储存数据和运算结果
回顾二进制数及十六进制数,注意可用的位数(是否需要有一位用于表示符号)这决定了可用内存的大小
b.指令格式
8位指令说明符+16位操作数说明符(可选的,不一定一定需要)
指令长度:1字节或3字节
指令说明符:说明了要执行的具体操作(一字节,八位是四位操作代码+一位寄存器说明符+三位寻址模式)
包含的寻址模式说明符:解析指令中的操作数部分
000表示立即寻址,说明符中储存的即为操作数(操作数说明符的第一个字节会被忽略,第二个字节会被载入寄存器A中)
001表示直接寻址,说明符中储存的即为操作数所在的内存地址名称(操作数说明符只有第一个字节会被载入)
一元指令没有操作数,仅为一字节
操作数说明符:操作数本身或操作数的地址(可以没有)(两字节)
c.一些示例指令
4位操作代码
0000停止执行(一元指令)
1100将字载入寄存器A中
1110储存寄存器A中的字:把寄存器A中的内容存储到操作数中指定的位置(一个字2字节)(不支持立即寻址)
1111存储寄存器A的字节(不支持立即寻址)
0110将操作数加到寄存器A中--
1000从寄存器A减操作数
2. Pep/9的输入、输出
设计原则:内存映射输入/输出(将输入输出设备与主存中特定的,固定的地址联系起来。
三、一个程序实例
1.Pep/9模拟器
为了运行Pep/9机器语言,输入十六进制的程序代码到目标代码的窗口中
装入程序:在程序执行之前,把它载入存储器
运营程序
特点:每次只运行一条程序命令
遵守读取-执行周期
2.另一个机器语言实例:逆序输出字符
第一个字符:输出设备—累加器—存储器—
第二个字符:输出设备—累加器
第二个字符输出
第一个字符:从存储器回到累加器—打印输出
四、汇编语言
设计目的:帮助程序员,用助记指令码代替二进制或十六进制数字,减少错误,提高效率。
汇编语言:一种低级语言,用助记码表示特定计算机的机器语言指令
汇编器:把汇编语言程序翻译成机器代码的程序
特点:不具有普适性,每种类型的机器都有自己的机器语言,因此会有多种汇编语言和翻译程序
1.Pep/9汇编语言
操作数用0x和十六进制+,+寻址模式(i表示立即寻址,d表示直接寻址)
几个基本助记码
a.常规指令
将值载入累加器(支持i和d两种模式):LDWA(载入字);LDBA(载入字节)
将累加器中的值储存到内存单元(不支持i模式):STWA(储存字);STBA(储存字节)
从累加器中进行加和减的操作(支持i和d模式,总运算在一个完整的字上)
b.汇编器指令(汇编器本身使用,被称为伪操作)
翻译程序使用的指令
c.关于指令的注释
Pep/9汇编器忽略分号后面的任何字符,因此允许作者为指令添加注释
注释:为程序读者提供的解释性文字
2.数字数据、分支、标签
分支:指出执行下一条指令的指令
DECI:十进制输入,从输入设备中读取十进制数,将它储存在操作数指定的位置上(可以将输入字符转化为数字,不支持立即寻址)
DECO/STRO:使数据写入输出设备中
BR:无条件转移
BRLT(要求满足特定情况):要求累加器小于零
BREQ(要求满足特定情况):要求累加器等于零
+一个例子:读取两个数字后相加
标签:对内存位置起的名字,可以将这个名字作为操作数
3.汇编语言中的循环
读取循环次数数值--使用计数器进行循环加法处理计数--使用BREQ检测是否需要终止
五、表达算法
算法:解决方案的计划或概要,或解决问题的逻辑步骤顺序
伪代码:一种表达算法的语言
1.伪代码的功能
伪代码:并非计算机语言,而是人们用来说明操作的便携语言
伪代码必须表示出:
(1)变量
(2)赋值(采用语句或使用反向箭头)
(3)输入(write)、输出(read)
字符串:双引号之间的字符
(4)选择(if)
(5)重复
2.执行伪代码算法
+一个例子:数字的进制转化
走查转换算法
3.写伪代码算法
4.翻译伪代码算法
六、测试
测试计划:一个说明了要全面测试程序需要运行的次数以及运行程序使用的数据(要列出选择原因和预期输出)
几个测试方法:代码覆盖测试法(明箱测试法):测试者能够直接看到代码
数据覆盖测试法(暗箱测试法):基于输出的数据
测试计划实现:运行所有测试用例,记录运行结果,纠正其中错误
第七章 问题求解与算法设计
一.如何解决问题
1.提出问题
2.寻找熟悉的情况
3.分治法---把大的问题分解成能够单独解决的小问题
4.算法---在有限的时间里用有限的数据解决问题或子问题的明确指令
5.计算机问题求解过程:
分析和说明阶段---算法开发阶段(开发算法、测试算法)---实现阶段(编码、测试)---维护阶段(使用、维护)
二.测试算法---需要在开发过程的早期阶段进行
三.有简单变量的算法
1.带有选择的算法 ELSE IF
2.带有循环的算法
(1)计数控制循环---指定过程重复的次数
(2)事件控制循环---由循环体自身内发生的事件控制的
3.嵌套结构---控制结构嵌入另一个控制结构的结构,又叫嵌套逻辑。
4.抽象步骤---细节仍未明确的算法步骤
具体步骤---细节完全明确的算法步骤
5.数组---同构项目的有名集合(搜索、排序、处理)
记录---异构项目的有名集合
集合---包含整数、实数、字符串等
四.搜索算法
1.有序数组中的顺序搜索
2.二分检索---在有序列表中查找项目的操作,通过比较操作排除大部分检索范围
五.排序
1.选择排序
2.冒泡排序
3.插入排序
六.递归算法---算法调用它本身的能力
七.几个重要思想
1.信息屏蔽---隐蔽模块的细节以控制对这些细节的访问的做法
2.抽象---复杂系统的一种模型,只包括对观察者来说必需的细节
(1)数据抽象---把数据的逻辑视图和它的实现分离开
(2)过程抽象---把动作逻辑视图和它的实现分离开
(3)控制抽象---把控制结构的逻辑视图和它的实现分离开
控制结构---用来改变正常的顺序控制流的语句
3.标识符---数据和过程的一个名字
标签:操作数,字节,代码,---,算法,指令,网络空间,2022,20212423 来源: https://www.cnblogs.com/lsy0119/p/15418100.html