zoukankan      html  css  js  c++  java
  • 汇编系列1

    问题1:什么是机器语言?

      计算机能识别的语言,即010101...。想与计算机打交道要了解他的方式。举例如下表:

    0100 0000

    0100 1000

    1111 0111 1110 0000
    1111 0111 1111 0000

      机器语言对于人来说太陌生,不方便理解记忆和操作(要记大量的0和1)。 在机器语言的基础上进行一定的抽象,便于人们理解

    问题2:什么是汇编语言?

      在机器语言的基础上进行抽象,用指令表示我们要做的事情。 编译器 再将我们的指令转换成机器语言。

    加:INC EAX ---->经过编译器 0100 0000
    减:DEC EAX   0100 1000
    乘:MUL EAX   1111 0111 1110 0000
    除:DIV EAX   1111 0111 1111 0000

    3、C语言

      汇编语言虽然进行了一定抽象,但是仍然不符合我们人类的思维习惯,理解困难。于是发展出了高级语言

    加:A+B --->经过C语言的编译器 0100 0000
    减:A-B   0100 1000
    乘:A*B   1111 0111 1110 0000
    除:A/B   1111 0111 1111 0000

      高级语言的发展和强大,本质上是编译器的发展和强大。编译器替我们做了更多的事情。编译器越是强大,人写代码就越简单,越是符合人的思维习惯。

    4、C语言和C++语言的关系

      C和C++其实本质上没有什么区别,知识编译器做的事情越来越多越来越强大了。

      C语言是学好C++的基础!

      站在C编译器的角度上去理解语言。

    5、为什么学习汇编?

      程序员鄙视链。

     理解汇编的人掌握的才是真正的本质。一个不懂汇编的C程序员绝对称不上是高手,充其量就是熟练而已。随便几个问题就搞不定

    比如说,返回值,返回值存哪儿?返回值大于4个字节的值存哪儿?返回值大于4个字节不用指针存哪儿?

    但是懂汇编的人知道。

    一个不懂汇编的C C++程序员,是不会懂暴破的。如果想从事外挂反外挂,病毒反病毒或安全相关的工作,汇编是基础,也是必须要掌握的。

    正向开发工程师,懂汇编的话可以比同事做的更好。别人搞不定的问题你能搞定,别人调试不了的程序你能调试。

    6、学习环境

    VC6,为什么VC6,因为越是新版的编辑器替我们做的事情越多,不利于我们学习细节。

    还一点,凡是搞底层的人,开发环境都是VC6。

  • 相关阅读:
    火眼金睛算法,教你海量短文本场景下去重
    CynosDB技术详解——架构设计
    CynosDB技术详解——存储集群管理
    解决 "Script Error" 的另类思路
    Go 语言实践(一)
    Vue.js的复用组件开发流程
    MYSQL中的COLLATE是什么?
    Blending
    AlphaTesting
    Culling & Depth Testing
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/13894554.html
Copyright © 2011-2022 走看看