zoukankan      html  css  js  c++  java
  • 信息安全系统设计基础 第5周学习笔记

    第三章 程序的机器级表示

    一、处理器历史——摩尔定律

    摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出来的。

    其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24

    个月翻一倍以上。这一定律揭示了信息技术进步的速度。

    二、程序编码

    linux默认编译器——gcc c编译器

    过程:

    后缀名解释:

     gcc常用选项:

    三、数据格式

    char—字节—b

    short—字—w

    int—双字—l

    long int—双字—l

    long long int—/—/

    char*—双字—l

    float—单精度—s

    double—双精度—l

    long double—扩展精度—t

    四、寻址方式

    立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间间接寻址、寄存器相对寻址方式(或称直接变址寻址方式)、基址变址寻址方式、相对基址变址寻址方

    式、比例变址寻址方式、基址比例变址寻址方式、相对基址比例变址寻址方式

    五、指令

    mov —— 传送数据

    add —— 加

    sub —— 减

    imul —— 乘(有符号)

    xor —— 异或

    or —— 或

    and —— 与

    leal —— 传送地址

    inc —— 加一

    dec —— 减一

    neg —— 取负 ?

    not —— 取补 ?

    sal (shl)—— 左移

    sar —— 算术右移

    shr —— 逻辑右移

    loop —— 循环

    跳转指令:略

    六、标志位

    常见的条件标志位:

    CF:进位标志

    ZF:零标志

    SF:符号标志

    OF:溢出标志

    标志位相应的位置:

    七、使用

    call —— 调用

    ret —— 返回(相当于c语言的return)

    八、实验

    实验代码:

    汇编原代码:

    去掉带.代码行的汇编代码:

    *参考资料:

    1.嵌入式Linux应用程序开发标准教程.pdf

    2.https://www.shiyanlou.com/courses/413

    遇到的问题:

    1.汇编指令与上学期学的有些出入……

    例如:书上neg是取负指令,not是取补指令,但是汇编书上neg是取补指令,not是取反指令。

    2.使用gdb的bt/frame/up/down 指令时,不知为何总是显示“no stack”。

  • 相关阅读:
    POJ-1189 钉子和小球(动态规划)
    POJ-1191-棋盘分割(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
  • 原文地址:https://www.cnblogs.com/whyfarrell/p/4869995.html
Copyright © 2011-2022 走看看