V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
b15
V2EX  ›  问与答

每种高级语言程序在连接为可执行程序之前,都必须被编译为汇编语言程序。 这句话对么?

  •  
  •   b15 · 2019-03-08 14:42:46 +08:00 · 1457 次点击
    这是一个创建于 2089 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主买了一本《汇编语言程序设计》

    英文名《 professional assembly language 》

    不懂英文,就买了个汉化版。

    开篇第一句,就产生了一点疑问。

    不是编译成机器语言么,和汇编有啥关系?

    (楼主还有一本《 C HOW TO PROGRAM 》(C 程序设计教程),只看到第 3 章。

    想看汇编,是看到有人用汇编做的操作系统只有 1mb 大小,好神奇。c 语言弄的 bsd linux 都好巨大。)

    第 1 条附言  ·  2019-03-08 15:22:20 +08:00
    噢!

    看来,这本书可以接着看。

    我有个妄想,未来所有的操作系统和应用软件,越来越小。代码能一句,就不用 2 句;能一个字就不用 2 个字。

    一个人就能轻松的阅读,修改。

    “为了明天,请你不要再犹豫, 勇敢的少年啊,快去创造奇迹!”
    8 条回复    2019-03-08 16:52:52 +08:00
    zhangchioulin
        1
    zhangchioulin  
       2019-03-08 15:02:58 +08:00   ❤️ 1
    才疏学浅,标题的答案不能回答,但是关于“不是编译成机器语言么,和汇编有啥关系?”可以解答一下。

    按照 Objc 来说大体编译步骤如下:
    $clang -ccc-print-phases main.m

    0: input, "main.m", objective-c
    1: preprocessor, {0}, objective-c-cpp-output
    2: compiler, {1}, ir
    3: backend, {2}, assembler
    4: assembler, {3}, object
    5: linker, {4}, image
    6: bind-arch, "x86_64", {5}, image

    可以看到第 4 部就是汇编。
    具体的楼下补充;]
    misaka19000
        2
    misaka19000  
       2019-03-08 15:10:12 +08:00   ❤️ 1
    我的理解是作者在这里写的不严谨

    至于操作系统内核本身都是非常小的,如果是简陋的内核也可以远小于 1M
    coderluan
        3
    coderluan  
       2019-03-08 15:12:19 +08:00   ❤️ 1
    是的,但是找个汇编和你上课学的汇编是不同的,不同平台不同硬件的汇编严格来说都是不一样的。
    tabris17
        4
    tabris17  
       2019-03-08 15:12:53 +08:00   ❤️ 1
    不对。

    举个栗子:VBscript
    wevsty
        5
    wevsty  
       2019-03-08 15:15:24 +08:00   ❤️ 1
    这话本身显然是有瑕疵的,但也不是完全没道理。
    因为汇编语言其实就是机器码(机器语言)的人类可读形式。
    boris1993
        6
    boris1993  
       2019-03-08 15:16:12 +08:00 via Android   ❤️ 1
    个人理解

    有虚拟机的,比如 JVM 系的,是源码编译成字节码,然后在编译时或运行时再通过虚拟机执行机器码

    没有虚拟机的,比如 C,就是源码编译成目标的机器码

    汇编语言不是“机器码的助记符”么
    iceheart
        7
    iceheart  
       2019-03-08 16:44:36 +08:00 via Android   ❤️ 1
    教材过时了
    senghoo
        8
    senghoo  
       2019-03-08 16:52:52 +08:00   ❤️ 2
    这本书写的挺好。就是要注意的是这本用的是 AT&T 格式的。
    和国内大部分时候说的汇编不一样。

    但是就内容来说是很好的一本书。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2038 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:15 · PVG 00:15 · LAX 08:15 · JFK 11:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.