· 区分机器语言与汇编语言
· 描述虚拟机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 | D00048 |
储存累加器中的字节到输出设备中 | 111100011111110000010110 | F1FC16 |
将i载入累加器中 | 110100000000000001101001 | D0069 |
储存累加器中的字节到输出设备中 | 111100011111110000010110 | F1FC16 |
停止 | 00000000 | 00 |
另一个机器语言实例:
行为 | 二进制指令 | 十六进制指令 |
---|---|---|
从输入设备中读入第一个字符到累加器中 | 110100011111110000010101 | D1FC15 |
储存累加器中的字符到储存器中 | 111100010000000000010011 | F10013 |
从输入设备中读入第二个字符到累加器中 | 110100011111110000010101 | F1FC16 |
从储存器中载入第一个字符 | 110100010000000000010011 | D10013 |
在输出设备中打印第一个字符 | 111100011111110000010110 | F1FC16 |
停止 | 00000000 | 00 |
· 汇编语言
汇编语言:一种低级语言,用助记码表示特定的计算机的机器语言指令。
汇编器:把汇编语言程序翻译成机器代码的程序。
· 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汇编语言是一种使用助记码而不是二进制数表示的指令。
· 伪代码是人们为了表示算法而使用的一种便捷形式的语言,允许用户命名变量,把数值输入变量以及输出存储在变量中的值。
· 与算法一样,程序也需要测试
· 结合Polya提出的如何解决问题的列表,描述计算机问题求解的过程。
· 区分简单类型与复合类型
· 描述三种复合数据结构
· 认识递归问题,编写一个递归算法解决该问题
· 区分无序数组与有序数组
· 区分选择排序与插入顺序
· 描述快速排序算法
· 亲自对一个数组中的值进行选择排序,冒泡排序,插入排序与快速排序
· 使用二分检索算法
· 通过对一些列数值进行手工模拟来证明你对本章中算法的理解
·在计算机领域,解决方案被称为算法
算法:在有限时间内用有限的数据解决问题或子问题的明确指令集合
· 方法总结
自顶向下的方法可以主要分解为四个主要的步骤:
嵌套结构:控制结构嵌入另一个控制结构的结构,又称为嵌套逻辑
· 需要进一步扩展的步骤叫做抽象步骤,不需要扩展的步骤叫做具体步骤
抽象步骤:细节仍未明确的算法步骤
具体步骤:细节完全明确的算法步骤
· 二分检索
二分检索:在有序列表中查找项目的操作,通过比较操作排除大部分检索范围
· 递归算法
当在一个算法中使用它自己时,这样的算法被称为递归算法。递归就是算法调用它本身的能力,是另一种重复的控制结构。
递归:算法调用它本身的能力
· 几种重要的思想
信息隐蔽:隐蔽模块的细节以控制对这些细节的访问的做法
· 抽象
抽象:复杂系统的一种模型,只包括对观察者来说必需的细节
数据抽象:把数据的逻辑视图和它的实现分离开
过程抽象:把动作的逻辑视图和他的实现分离开
控制抽象:把控制结构的的逻辑视图和它的实现分离开
控制结构:用于改变正常的顺序控制流的语句
· 循环有两种,分为技术控制循环和事件控制循环。
· 数据有两种形式:不可分割的和复合的。
· 搜索是指在数组中寻找一个特定值的行为。
· 递归算法是指可以在子程序自身中出现子程序名的算法。阶乘和二分检索实际上就是递归算法。
2019-2020-1学期 20202046《网络空间安全专业导论》第三周学习总结
原文:https://www.cnblogs.com/u2163431/p/13893175.html