• 汇编系列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。

  • 相关阅读:
    Ubuntu升级后apache所有的失败,以解决虚拟文件夹的设置
    UVA315- Network(无向图割点)
    技术新领导人张小龙:一些成功不能复制
    mac在查看jre通路
    ubuntu14.04(64位置) ADB Not Responding
    【SSH三框架】Hibernate基金会七:许多附属业务
    HDU1796-How many integers can you find
    再次递归思想-路劲跨越多个阵列
    基于ORACLE建表和循环回路来创建数据库存储过程SQL语句来实现
    Android4.3 蓝牙BLE初步
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/13894554.html
Copyright © 2020-2023  润新知