zoukankan      html  css  js  c++  java
  • 2019-2020-1学期 20202416《网络空间安全专业导论》第三周学习总结

    第六章 低级程序设计语言和伪代码

    6.1 计算机操作

    计算机是能够对数据进行储存检索处理数据的可编程电子设备,用指令实现输入设别和CPU及CPU和输出设备的交互

    6.2 机器语言

    机器语言 由计算机直接使用的二进制编码指令构成的语言,每条机器语言只能执行一个低级任务

    虚拟机

    1. 基本特性 Pep/9的内存单元是65536字节的储存空间组成,其字长是2字节,向ALU流如/出的数据在长度上是16位
      寄存器

      使用虚拟机时,可使用进制的位数决定了我们使用内存的大小
    2. 指令格式
      一条指令由两部分组成,即8位的指令说明符(说明指令)和16位的操作数说明符(存放操作数或其地址),因此Pep/9的指令长度为1或3字节
    3. 示例指令
      | 操作码 | 指令的意义 |
      | --- | --- |
      | 0000 | 停止执行 |
      | 1100 | 将字载入寄存器A中 |
      | 1101 | 将字节载入寄存器A中 |
      | 1110 | 存储寄存器A中的字 |
      | 1111 | 存储寄存器A的字节 |
    • 0110将操作数加到寄存器A中

    Pep/9的输入/输出

    (I/O)遵循内存映射I/O原则,与主存中特定、固定的地址相联系。使用ASCII码表示字符

    6.3.1 虚拟机模拟器

    1. 载入机器语言 构建>装入菜单选项
    2. 将16进制的程序代码输入到由目标代码标签的窗口
    3. 遵循读取-执行周期

    另一种机器语言 读入两个字符作为输入

    行为 二进制指令 十六进制指令
    读第一个字符到累加器 1101 0001 1111 1100 0001 0101 D1 FC 15
    存储字符到储存器 1111 0001 0000 0000 0001 0011 F1 00 13
    读第二个字符 1101 0001 1111 1100 0001 0101 D1 FC 15
    打印第二个字符 1111 0001 1111 1100 0001 0110 F1 FC 16
    储存器载入第一个字符 1101 0001 0000 0000 0001 0011 D1 00 13
    打印第一个字符 1111 0001 1111 1100 0001 0110 F1 FC 16
    停止 0000 0000 00

    6.4 汇编语言

    汇编语言(一种低级语言,用助记码表示特定计算机的机器语言指令)——汇编器(把汇编语言程序翻译成机器代码的程序)——机器码程序
    汇编器指令 翻译程序使用的指令,也被称伪操作
    注释 为程序读者提供的解释性文字

    6.4.2 数字数据、分支、标签

    Pep/9机器语言的输出值被定义为单个字符,使用Pep/9汇编语言,可以使用额外的用来展示I/O和整个字符串的指令
    分支 支出执行下一条指令的指令
    标签 对内存位置起的名字,该名字可当做操作数

    6.4.3 汇编语言中的循环

    使用AddNums程序 读取数字,每次循环都会读入一个数字加到sum里,每次循环计数器都加1并使用BREQ指令检查它是否到达极限,如是,则循环终止

    6.5 表达算法

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

    1. 变量
    2. 赋值
    3. 输入/输出
    4. 选择
    5. 重复
      写完代码进行桌面检查
      翻译伪代码算法 将算法写成交互式程序,使用ASCII伪操作设置消息,创建代码将消息写出来。通过伪操作将读取的数字设置为0,将数字读入寄存器,建立循环并比较该数字和要读取的数字。进入循环。

    6.6 测试

    测试计划 说明如何测试程序的文档
    代码覆盖(明箱)测试法 通过执行代码中的所有语句测试程序或子程序的测试方法
    数据覆盖(暗箱)测试法 把代码作为一个暗箱,基于所有可能的输入测试程序或子程序的测试方法。
    测试计划实现 用测试计划中规定的测试用例验证程序是否输出了预期的结果。


    第七章 问题求解与程序设计

    7.1 解决问题

    1. 提出问题
    2. 寻找熟悉的情况
    3. 分治法 (子任务)
    4. 算法 (有限的时间内用有限的数据解决问题或子问题的明确指令集合)
    5. 计算机问题求解过程(分析和说明阶段、算法开发阶段、实现阶段和维护阶段)
    6. 方法总结(分析问题,列出主要任务,编写其余的模块,根据需要进行重组和改写)
    7. 测试算法(在编码算法的各种条件下运算程序,然后分析结果)

    7.2 有简单变量的算法

    选择
    循环(计数控制循环,事件控制循环,平方根)
    嵌套结构 控制结构嵌入另一个控制结构的结构
    抽象步骤 细节仍未明确的算法步骤。
    具体步骤 细节完全明确的算法步骤。

    7.3 复杂变量

    数组(搜索 排序 处理)
    记录(异构项目的有名集合)

    7.4 搜索算法

    顺序,有序,二分检索

    7.5 排序

    选择排序
    冒泡排序(一种选择排序法,但在查找最小值时采用不同方法)
    插入排序(将某个元素插入数组)

    7.6 递归算法

    递归算法 一个算法使用它自己
    递归 算法调用他本身的能力,至少有两种情况:基本情况和一般情况
    衡量问题大小,确定尺寸系数
    子程序出现的地方被称为调用单元。

    7.7 几个重要思想

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

  • 相关阅读:
    mysql索引创建和使用细节(二)
    mysql索引创建和使用细节(一)
    PHP7.2.6安装sodium扩展
    passwd修改密码失败,报鉴定令牌操作错误
    centos6升级python版本至python3.5
    centos6升级gcc版本
    elasticsearch中文手册
    MySQL主从仅同步指定库
    适用于Centos6/7,vsftp自动安装脚本
    Redis内存模型
  • 原文地址:https://www.cnblogs.com/besti2416/p/13874989.html
Copyright © 2011-2022 走看看