• 第五周学习总结


    学号20145332 《信息安全系统设计基础》第五周学习总结

    教材学习内容总结

    · X86 寻址方式经历三代:
    ①DOS时代的平坦模式,不区分用户空间和内核空间,很不安全
    ②8086的分段模式
    ③IA32的带保护模式的平坦模式
    ·ISA:定义了处理器状态,指令的格式,以及每条指令对状态的影响。
    ·二进制文件用od命令查看
    ·ATT与Intel汇编代码格式区别:
    Intel代码省略了指示大小的后缀
    Intel代码省略了寄存器前面的‘%’符号
    Intel代码用不同的方式来描述存储器中位置
    在带有多个操作数的指令情况下,列出操作数的顺序相反
    ·栈:遵循“后进先出”的原则

    教材学习中的问题和解决过程

    ·教材P118,习题3.5,在看完后面的解析后仍然不能理解为什么第4、5、6行代表的是C语言中的Get x/y/z
    ·从教材P119,习题3.6中知道,在指令值要写为16进制数,但结果用十进制数表示,比如倒数第二行答案写为4y+10,而不是4y+OxA
    ·教材P121,汇编语言中算数右移写为C语言是不用写作除法,而是写作>>。
    ·教材P126,习题3.14不是很理解习题中的意思,看了答案解析也不是很明白
    ·教材P129,习题3.15,在计算B时本来是按照无符号数计算的,看了答案之后认为有关加减的地址偏移量是默认的有符号数。也确认了有符号数的正负数是按最高位是0还是1来确认的(因为忘记了这个知识点)

    代码调试中的问题和解决过程

    ·P107的代码,在输完c语言代码code.c后,编译为code.s本以为会得到下面的汇编代码,但是得到的不一样,不知道操作有什么问题。截图如下:

    ·代码生成目标代码文件code.o是二进制文件,直接查看出现:

    应该使用od code.o命令查看,结果为:

    ·使用反汇编器时,输入objdump -d code.o没有得到书上的代码,结果如图:

    课后作业中的问题和解决过程

    ·首先想先写一个上周的问题,这周在看书时在课本P106页下面看到IA32机器代码和原始的C语言代码差别很大,一些通常对C语言程序员隐藏的处理器状态是可见的。其中有程序计数器,用%eip表示,指示将要执行的下条指令的地址,以及P107的汇编代码。想起上周P44页练习题2.18中的代码和这个表示方法很像,我认为题中的应该也是表示某种地址。上网查了一下%esp、%ebp,发现在查找出的代码中其意义为栈顶存与栈基址,所以我认为题中这些表示的意义应该是在栈中的位置。

    本周代码托管截图

    http://git.oschina.net/20145332/linux/tree/master

    其他(感悟、思考等,可选)

    感觉这章的内容需要多做书上的习题,通过做题来理解书上讲解的内容。所以这章的学习主要是通过做书上的重点习题来理解。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第二周 100/200 1/1 20/20
    第三周 100/500 1/1 25/30
    第四周 0/0 0/1 5 /20
    第五周 200/300 1/1 30/30

    参考资料

  • 相关阅读:
    Spring_3.1
    handler发消息的形式
    css元素排列
    利用Socket远程发送文件
    jtree添加节点
    url传参中文乱码
    struts action和jsp之间的传值
    Struts 404 The requested resource is not available
    tomcat server需要重启的时刻
    c++获取系统时间(引用别人的博文)
  • 原文地址:https://www.cnblogs.com/lx20145332/p/5960706.html
Copyright © 2020-2023  润新知