• 20145314郑凯杰《信息安全系统设计基础》第5周学习总结 part B


    20145314郑凯杰《信息安全系统设计基础》第5周学习总结 part B

    在前四天的学习中,我主要对课本知识进行了总结,在本周后三天的学习过程中,我进行实践并截图。

    http://www.cnblogs.com/5314zkj/p/5958665.html

    教材学习内容总结

    教材第三章

    上一次的博客中已经涵盖了很多知识了,今天主要做到补充及实践:

    ①操作数的三种类型:

    立即数,也就是常数值。
    在ATT格式的汇编代码中,立即数的书写方式是“”后跟一个用标准C表示法表示的整数。任何一个能放进32 位字中的数值都可以用做立即数,不过汇编器在可能时会使用一个或两个字节的编码。

    寄存器,表示某个寄存器的内容

    存储器,根据计算出来的地址(有效地址)访问某个存储器的位置。
    有效地址的计算方式: Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s

    • 栈是一个数据结构,可以添加或者删除数据,总是遵循“先进后出”原则。
    • 栈顶:总是从栈的这端插入和删除元素。
    • 栈顶元素的地址是所有栈中元素地址中最低的。

    控制

    • 条件码:描述最近的算数或者逻辑操作的属性,可以检测这些寄存器来执行条件分支指令。
    • CF:进位标志,最近操作使高位产生进位,用来检测无符号操作数的溢出
    • ZF:零标志,最近操作得出的结果为0
    • SF:符号标志,最近操作得到的结果为负数
    • OF:溢出标志,最近操作导致一个补码溢出-正溢出或负溢出。
    • leal不改变任何条件码
    • CMP和SUB指令行为一样,只是CMP只设置条件码而不更新目标寄存器。
    • 访问条件码的方式:根据条件码的某个组合,将一个字节设置成0或1;可以条件跳转到程序某个其他的部分;有条件的传送数据。
    • SET指令根据计算t=a-b的设置条件码
    • jmp指令是无条件跳转,可以是直接跳转,即跳转目标是作为指令的一部分编码;也可以是间接跳转,即跳转目标从寄存器或存储器位置中读出的,写法是‘*’后面跟一个操作数指示符。
    • 条件跳转只能是直接跳转的。
    • 当执行PC相关的寻址时,程序计数器的值是跳转指令后面那条指令的地址,而不是跳转指令本身的地址。

    转移控制(稍后也会着重对此进行实践)

    call

    call指令和转移指令相似,同样分直接和间接,直接调用的目标是标号,间接调用的目标是*后面跟一个操作数指示符,和JMP一样。

    CALL指令的效果是将返回地址入栈,并跳转到被调用过程的起始处。返回地址是还在程序中紧跟在call后面的那条指令的地址。

    ret

    ret指从栈中弹出地址,并跳转到这个位置。
    在上学期的汇编语言学习中,call和ret常被用来进行子函数、子模块的调用。

    实践步骤

    P107 用简单C语言程序汇编与反汇编:

    图2:

    汇编之后:

    图3:

    用 objdump -d zkj5314.o 反汇编之后:

    图4:

    接下来用实验楼的实验四:

    代码如下:

    图5:

    接下来进行汇编:

    图6:

    图7:

    汇编完成,进行反汇编:

    图8:

    两个代码成功:

    接下来附上GIT链接和截图:

    图9:

    http://git.oschina.net/qiaokeli26/Linux/tree/master

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/50 1/2 20/20
    第二周 176/600 2/4 38/38
    第三周 /1100 /7 /60
    第四周 /1350 /9 /90
  • 相关阅读:
    springboot2.0整合es的异常总结
    redis的主从模式搭建及注意事项
    一个可配置的爬虫采集系统的方案实现
    初识 go 语言:方法,接口及并发
    初识 go 语言:数据类型
    Science论文"Clustering by fast search and find of density peaks"学习笔记
    OpenCV和Matplotlib色彩空间模式不一致的问题
    Using OpenCV Java with Eclipse
    KMeans聚类算法Hadoop实现
    Ubuntu环境变量——添加与删除
  • 原文地址:https://www.cnblogs.com/5314zkj/p/5968039.html
Copyright © 2020-2023  润新知