2019-2020-1学期 20202046《网络空间安全专业导论》第三周学习总结

2019-2020-1学期 20202046《网络空间安全专业导论》第三周学习总结

第六章 低级程序设计与伪代码

学习目标

· 区分机器语言与汇编语言
· 描述虚拟机Pep/9的重要特性
· 区分立即寻址模式和直接寻址模式
· 编写一个简单的汇编语言程序
· 区分给汇编器的指令和要翻译的指令
· 区分执行一个算法和开发一种算法· 描述表达算法时使用的伪代码结构
· 使用伪代码来描述算法
· 描述两种测试方式
· 为简单的汇编语言程序设计和实现测试方案

学习重点内容

· 计算机操作
· 机器语言

机器语言:由计算机直接使用二进制编码指令构成的语言。

· Pep/9:一台虚拟机

虚拟机:为了模拟真实机器的重要特征而设计的假想机器。

· pep/9的基本特性:pep/9的内存单元由65536字节的储存空间构成。
· 程序计数器(PC),其中包含下一条即将被执行的指令的地址
· 指令寄存器(IR),其中包含正在被执行的指令的一个副本。
· 累加器(A),用来储存数据和运算的结果
· pep/9一些指令

操作码 指令的意义
0000 停止执行
1100 将字载入寄存器A中
1101 将字节载入寄存器A中
1110 储存寄存器A中的字
1111 储存寄存器A中的字节
0110 将操作数加到寄存器A中
0111 从寄存器A减操作数
· 程序实例
接下来是使用二进制和十六进制写的程序语句:
行为 二进制指令
--- ---
将H载入累加器中 110100000000000001001000
储存累加器中的字节到输出设备中 111100011111110000010110
将i载入累加器中 110100000000000001101001
储存累加器中的字节到输出设备中 111100011111110000010110
停止 00000000
另一个机器语言实例:
行为 二进制指令
--- ---
从输入设备中读入第一个字符到累加器中 110100011111110000010101
储存累加器中的字符到储存器中 111100010000000000010011
从输入设备中读入第二个字符到累加器中 110100011111110000010101
从储存器中载入第一个字符 110100010000000000010011
在输出设备中打印第一个字符 111100011111110000010110
停止 00000000
· 汇编语言

汇编语言:一种低级语言,用助记码表示特定的计算机的机器语言指令。
汇编器:把汇编语言程序翻译成机器代码的程序。

· pep/9汇编语言

助记码 操作数,模式 含义
STOP 停止执行
LDWA 0x008B,i 将字008B载入累加器
LDWA 0X008B,d 将位于008B的字载入累加器
LDBA 0x008B,i 将字节008B载入累加器
除了常规的指令,汇编语言编程还支持汇编器指令。接下来是pep/9的汇编器指令。
伪操作 操作数 含义
--- --- ---
.END 表示汇编语言的终点
.ASCII "banana\x00" 表示一个ASCII字节的字符串
.WORD 0x008B 在内存中保留一个字,并存值进去
.BLOCK 字节数 在内存中保留一些特定的字节

汇编器指令:翻译程序使用的指令。
注释:为程序读者提供的解释性文字。

· 数字数据,分支,标签

分支:指出执行下一条指令的指令。
标签:对内存位置起的名字,可以将这个名字当作操作数。

·表达算法
从一个文字叙述问题的形式变为代码并不总是一个明确的过程。伪代码是一种语言,可以更加清晰地表达算法

算法:解决方案的计划或概要,或解决问题的逻辑步骤顺序。
伪代码:一种表达算法的语言。

·伪代码的功能
1.变量
2.赋值
3.输入/输出
4.选择
5.重复

布尔表达式:评价为真或假的表达式。

本章小结

· 计算机能够存储,检索和处理数据。用户可以把数据输入计算机,计算机能够显示数据,使用户看到它们。
· 计算机的机器语言是一套机器的硬件能够识别并执行的指令。
· pep/9汇编语言是一种使用助记码而不是二进制数表示的指令。
· 伪代码是人们为了表示算法而使用的一种便捷形式的语言,允许用户命名变量,把数值输入变量以及输出存储在变量中的值。
· 与算法一样,程序也需要测试

本章内容图示

屏幕截图_23_.png

第七章 问题求解与算法设计

学习目标

· 结合Polya提出的如何解决问题的列表,描述计算机问题求解的过程。
· 区分简单类型与复合类型
· 描述三种复合数据结构
· 认识递归问题,编写一个递归算法解决该问题
· 区分无序数组与有序数组
· 区分选择排序与插入顺序
· 描述快速排序算法
· 亲自对一个数组中的值进行选择排序,冒泡排序,插入排序与快速排序
· 使用二分检索算法
· 通过对一些列数值进行手工模拟来证明你对本章中算法的理解

学习重点

·在计算机领域,解决方案被称为算法

算法:在有限时间内用有限的数据解决问题或子问题的明确指令集合

· 方法总结
自顶向下的方法可以主要分解为四个主要的步骤:

  1. 分析问题
  2. 列出主要任务
  3. 编写其余的模块
  4. 根据需要进行重组和改写
    · 带循环的的算法
    有两种基本的循环,分别为技术控制事件控制
    · 控制结构嵌入另一个控制结构被称为嵌套结构

嵌套结构:控制结构嵌入另一个控制结构的结构,又称为嵌套逻辑

· 需要进一步扩展的步骤叫做抽象步骤,不需要扩展的步骤叫做具体步骤

抽象步骤:细节仍未明确的算法步骤
具体步骤:细节完全明确的算法步骤

· 二分检索

二分检索:在有序列表中查找项目的操作,通过比较操作排除大部分检索范围

· 递归算法
当在一个算法中使用它自己时,这样的算法被称为递归算法。递归就是算法调用它本身的能力,是另一种重复的控制结构。

递归:算法调用它本身的能力

· 几种重要的思想

  1. 信息隐蔽

信息隐蔽:隐蔽模块的细节以控制对这些细节的访问的做法

· 抽象

抽象:复杂系统的一种模型,只包括对观察者来说必需的细节
数据抽象:把数据的逻辑视图和它的实现分离开
过程抽象:把动作的逻辑视图和他的实现分离开
控制抽象:把控制结构的的逻辑视图和它的实现分离开
控制结构:用于改变正常的顺序控制流的语句

本章小结

· 循环有两种,分为技术控制循环和事件控制循环。
· 数据有两种形式:不可分割的和复合的。
· 搜索是指在数组中寻找一个特定值的行为。
· 递归算法是指可以在子程序自身中出现子程序名的算法。阶乘和二分检索实际上就是递归算法。

本章内容图示

屏幕截图_24_.png

posted @ 2020-10-28 20:55  20202406-郭子钰  阅读(90)  评论(0编辑  收藏  举报