官术网_书友最值得收藏!

1.1 我們如何與計算機對話

如果我們一上來就要求你讀懂下面這段代碼,你能接受嗎?

section .text
global _start
_start:
    mov ecx, 10
    mov eax, '0'
    l1:
    mov [num], eax
    mov eax, 4
    mov ebx, 1
    push ecx
    mov ecx, num
    mov edx, 1
    int 0x80
    mov eax, [num]
    inc eax
    pop ecx
    loop l1
    mov eax, 1
    int 0x80
section .bss
    num resb 1

這段“天書”會打印0~9的數字。它是用一種低級編程語言——匯編語言編寫的。如你所見,低級編程語言與人們日常讀寫的語言相去甚遠。它們主要是為計算機而設計的,并非面向人類。

沒人愿意編寫這種程序,但在早期,這也是不得已而為之。程序員通過這種手段細致地定義他們希望計算機執行的具體操作,細致到每一條指令。為了從性能不足的計算機中盡可能地榨取性能,這種精細的控制是必需的。20世紀90年代那些對速度要求極高的計算機游戲,例如《毀滅戰士》(Doom)和《雷神之錘》(Quake),都是采用上面那種匯編語言編寫的。如果不這樣做,這些游戲根本開發不出來。

主站蜘蛛池模板: 邻水| 托克托县| 新巴尔虎右旗| 施甸县| 资中县| 丰县| 永州市| 天镇县| 汶川县| 娄烦县| 多伦县| 南汇区| 绥化市| 始兴县| 彝良县| 鄂尔多斯市| 云阳县| 贵定县| 正蓝旗| 巴彦淖尔市| 霍山县| 麻城市| 巴东县| 永福县| 揭阳市| 离岛区| 大连市| 德令哈市| 高尔夫| 同仁县| 彭山县| 禹州市| 钟祥市| 张家港市| 镶黄旗| 忻城县| 义乌市| 怀安县| 兴仁县| 深圳市| 扶余县|