2021-2022-1 2021142 《信息安全专业导论》第五周学习总结
作者:互联网
2021-2022-1 2021142 《信息安全专业导论》第X周学习总结
作业所属课程:https://edu.cnblogs.com/campus/besti/2021-2022-1fois
作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05
作业目标:
- Pep/9虚拟机
- 机器语言与汇编语言
- 算法与伪代码
- 测试:黑盒,白盒
作业正文:https://www.cnblogs.com/weidaixdrx/p/15426193.html
教材学习内容总结
#Pep/9
它有40条机器语言指令。
6.2.1
1.基本特性
内存单元由65 536字节的存储空间构成,字长是2字节或者16位。
有七个寄存器(register),重点三个程序计数器(PC)、指令寄存器(IR)、累加器(A)。
2.指令格式
一条指令由八位的指令说明符(instruction specifier)和(可选的)十六位的操作数说明符(operand specifier)两部分组成。
指令说明符说明了要执行什么操作和如何解释操作数的位置。
操作数说明符存放的是操作数本身或操作数的地址。有些指令没有操作数说明符。
操作代码(operration code)(称为操作码(opcode))的长度是4到8位不等。
3位的寻址模式说明符(addressing mode specifier)表示了怎样解析指令中的操作数部分。
没有操作数的指令称为一元指令(unary instruction),长度为一字节。】
寻址模式000为立即寻址(i)(immediate(i)),说明指令的操作数说明符中存储的就是操作数。
001为直接寻址(d)(direct(d)),说明操作数说明符中存储的是操作数所在的内存地址名称。
3.一些实例指令
0000停止执行
1100将字载入寄存器A中
1101将字节载入寄存器A中
1110存储寄存器A中的字
1111存储寄存器A中的字节
0110将操作数加到寄存器A中
1000从寄存器A减操作数
6.2.2
pep/9系统模拟了从键盘读入字符输入并且将字符输出写到屏幕(终端窗口)中的能力。
对于输入和输出,遵循的设计原则是内存映射输入/输出(memory-mapped I/O),这种方式将输入和输出设备与主存中特定的、固定的地址联系起来。pep/9中输入地址在FC15,输出地址在FC16.
使用ASCII字符集(见第三章)来表示字符。
#机器语言
遵循读取-执行周期。
#汇编语言(assemble language)
它给每条机器语言分配了一个助记指令码。
汇编器(assemble)将读取每条指令的助记码,然后翻译成等价的机器语言,每种类型的计算机都有自己的机器语言,所以有多少种机器就有多少种汇编语言和翻译程序。
6.4.1pep/9汇编语言
操作数用0x和十六进制表示,接下来是逗号,最后是寻址模式(由字母i(立即寻址)或d(直接寻址)说明)。
还支持汇编器指令(assemble directive)是汇编器本身使用的指令,有时也被称作伪操作(pseudo-operation)。
pep/9汇编器忽略分号后面的任何字符,这就允许我们在指令旁边添加注释。
分支(branch)命令:让程序员决定下一步要执行的命令是什么。
标签(lable),放在每一行的开头,之后跟着一个冒号,该位置的数据或指令可以通过标签进行引用,而不是引用它具体的内存地址。
标签和它们对应的地址会在代码清单以后以符号表(symble table)的形式进行展示。
循环
重复写入AddNums程序来使用循环。
#算法(algorithm)与伪代码(pesudocode)
解决方案的计划称为算法,伪代码是一种语言,让我们以更清晰的形式表达算法。
6.5.1伪代码的功能
1.变量
2.赋值
把值放入变量
Set sum to O 或者用反箭头sum <—1
之后如何访问
Set sum to sum + num 或 sum <— sum +num
存入可以是单个值也可以是表达式(expression)
3.输入/输出
write语句输入
read语句输出
双引号之间的字符叫字符串(string)
4.选择
5.重复
#测试
白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。 黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。教材学习过程中的问题和解决过程
问题一:没有理解“存储器中的地址本身并不存储在存储器中,它们只是其中独立字节的名字。当涉及内存中某一个特定的字节时,实际是用它的地址指代的。”这句话。
解决过程:通过向同学请教理解了。
代码调试中的问题和解决过程
问题一:两个数字的和为负数并没有输出error
解决过程:可能版本更新了?
[代码托管](码云学习项目链接)
无
(statistics.sh脚本的运行结果截图)
学习进度条
代码 | 博客 | 学习时间 | 成长 | |
目标 | 5000 | 30 | 400 | |
第一周 | 0/0 | 2/2 | 5/5 | |
第二周 | 100/100 | 3/5 | 11/16 | |
第三周 | 200/300 | 1/6 | 8/24 | |
第四周 | 200/500 | 2/8 | 10/34 | |
第五周 | 300/800 | 3/11 | 15/49 |
计划学习时间:10小时
实际学习时间:15小时
标签:操作数,2021142,字节,指令,说明符,2021,2022,寄存器,寻址 来源: https://www.cnblogs.com/weidaixdrx/p/15426193.html