zoukankan      html  css  js  c++  java
  • 20145222《信息安全系统设计基础》第五周学习总结

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

    教材学习内容总结

    X86 寻址方式经历三代:

        -  1、DOS时代的平坦模式,不区分用户空间和内核空间,很不安全。  
        -  2、8086的分段模式。  
        -  3、IA32的带保护模式的平坦模式。
    

    程序编码

        -  ISA的定义:ISA是机器级程序的格式和行为,定义了处理器状态、指令的格式,以及每条指令对状态的影响  
        -  用gcc -S xxx.c -o xxx.s获得汇编代码,也可以用objdump -d xxx反汇编  
        -  64位机器上想要得到32代码:gcc -m32 -S xxx.c     
        -  MAC OS中没有objdump, 有个基本等价的命令otool  
        -  二进制文件可以用od 命令查看,也可以用gdb的x命令查看。  
           有些输出内容过多,我们可以使用 more或less命令结合管道查看,也可以使用输出重定向来查看od code.o | more和od code.o > code.txt
        -  gcc -S 产生的汇编中可以把 以”.“开始的语句都删除了再阅读  
        -  Linux和Windows的汇编格式的区别:ATT格式和Intel格式。  
    

    数据格式

    访问信息

        -  esi edi可以用来操纵数组,esp ebp用来操纵栈帧。   
        -  对于寄存器,特别是通用寄存器中的eax,ebx,ecx,edx,32位的eax,16位的ax,8位的ah,al都是独立的。例:  
                       假定当前是32位x86机器,eax寄存器的值为0x8226,执行完addw $0x8266, %ax指令后eax的值是多少?   
                       解析:0x8226+0x8226=0x1044c, ax是16位寄存器,出现溢出,最高位的1会丢掉,剩下0x44c,不要以为eax是32位的不会发生溢出。  
        -  操作数的三种类型:立即数、寄存器、存储器。  
        -  有效地址的计算方式```Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s```   
        -   MOV相当于C语言的赋值”=“,注意ATT格式中的方向, 另外注意不能从内存地址直接MOV到另一个内存地址,要用寄存器中转一下。能区分MOV,MOVS,MOVZ,掌握push,pop  
        -  栈帧与push pop; 注意栈顶元素的地址是所有栈中元素地址中最低的;  
        -  指针就是地址;
        -  局部变量保存在寄存器中。  
    

    算术和逻辑操作

        -  移位操作移位量可以是立即数或%cl中的数。  
        -  控制中最核心的是跳转语句:有条件跳转p128(实现if,switch,while,for),无条件跳转jmp(实现goto)。 
    

    控制

        -  有条件跳转的条件看状态寄存器;  
        -  leal不改变条件码寄存器。
    

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

    • CMP和SUB用在什么地方?
    • 查资料得这个例子:SUB D,S 是D-S结果送回D中,即目的操作数中
      而CMP D,S也是相减但结果不送回目的操作数中,一般用作比较数大小时用。

    本周代码托管截图

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 4000行 30篇 400小时
    第一周 0/0 2/3 10/20 掌握了几个命令
    第二周 0/0 1/4 8/28 熟练了vim编辑器的操作
    第三周 40/40 1/5 12/40 开始敲代码了
    第四周 36/76 2/7 15/55 慢慢熟悉了汇编语言

    参考资料

  • 相关阅读:
    POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
    LCA 最近公共祖先 (模板)
    线段树,最大值查询位置
    带权并查集
    转负二进制
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
  • 原文地址:https://www.cnblogs.com/huangyaqi/p/5967483.html
Copyright © 2011-2022 走看看