- 教孩子學(xué)編程(信息學(xué)奧賽C語言版)
- 黨松年 方澤波
- 874字
- 2020-05-22 15:22:47
2.1 機(jī)器語言
在第1章中我們知道了計(jì)算機(jī)做任何工作都是由存儲(chǔ)在其中的程序來控制的,而程序(Program)是由一條條的指令和各種數(shù)據(jù)組成的,而且這些指令和數(shù)據(jù)都是由只有0和1兩種符號(hào)的二進(jìn)制數(shù)來表示的(代碼清單2.1)。在計(jì)算機(jī)世界中我們把這種用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的指令和數(shù)據(jù)的集合(程序)稱為“機(jī)器語言”(面向機(jī)器的語言)。就如同我們?nèi)祟愂澜缰邪延胊~z這26個(gè)英文字母組成的語言稱為英語一樣。在人類世界中,除了英語之外還有漢語、日語、法語等等各種不同的語言,它們的組成符號(hào)都各不相同。在計(jì)算機(jī)世界中也有多種類型的語言。除了用二進(jìn)制代碼表示的機(jī)器語言之外,還有匯編語言、BASIC語言、Pascal語言、C語言、Java語言、Visual Basic語言、PHP語言、HTML語言等,這些我們都統(tǒng)稱為計(jì)算機(jī)的程序設(shè)計(jì)語言。
代碼清單2.1 機(jī)器語言代碼片段
機(jī)器語言是最底層的計(jì)算機(jī)語言。用機(jī)器語言編寫的程序都是由8bit二進(jìn)制數(shù)構(gòu)成的,每個(gè)8bit的二進(jìn)制數(shù)都是有特定含義的指令或數(shù)據(jù)??墒菍?duì)人來說,我們看到的都是0和1的組合,是很難判斷各個(gè)組合都表示什么的。于是就有人發(fā)明了另一種編程方法,根據(jù)表示指令功能的英語單詞給每一種指令起一個(gè)相似的昵稱,并用這個(gè)昵稱來代替表示指令的0和1的二進(jìn)制數(shù)組合,而數(shù)據(jù)則用我們更容易接受的十六進(jìn)制數(shù)或十進(jìn)制數(shù)來表示(代碼清單2.2)。這種類似英語單詞的昵稱叫作“助記符”,我們把這種使用“助記符”的編程語言稱為“匯編語言”。
知識(shí)點(diǎn)總結(jié)
機(jī)器語言是唯一一種CPU能直接理解并執(zhí)行的編程語言。
用匯編語言編寫的程序計(jì)算機(jī)是不能直接運(yùn)行的,必須先轉(zhuǎn)換成機(jī)器語言。
代碼清單2.2 匯編語言程序示例(輸出“Hello,world!”)
用匯編語言編寫的程序計(jì)算機(jī)是不能直接運(yùn)行的,必須先轉(zhuǎn)換成機(jī)器語言。機(jī)器語言是唯一一種CPU能直接理解并執(zhí)行的編程語言。
匯編語言的助記符以及數(shù)據(jù)和機(jī)器語言的二進(jìn)制代碼都是一一對(duì)應(yīng)的,都是針對(duì)計(jì)算機(jī)硬件的,也就是說都是面向機(jī)器的語言。不同的計(jì)算機(jī)硬件(CPU)所用的助記符和二進(jìn)制代碼是不一樣的,所以這樣的程序其通用性不好,如果把它移植到其他的計(jì)算機(jī)上就無法正常運(yùn)行了。我們通常把機(jī)器語言和匯編語言稱為低級(jí)語言。
- DevOps:軟件架構(gòu)師行動(dòng)指南
- iOS面試一戰(zhàn)到底
- C語言程序設(shè)計(jì)實(shí)踐教程(第2版)
- Learning Selenium Testing Tools with Python
- 微服務(wù)設(shè)計(jì)原理與架構(gòu)
- 用戶體驗(yàn)增長:數(shù)字化·智能化·綠色化
- Kotlin編程實(shí)戰(zhàn):創(chuàng)建優(yōu)雅、富于表現(xiàn)力和高性能的JVM與Android應(yīng)用程序
- RabbitMQ Essentials
- 劍指大數(shù)據(jù):企業(yè)級(jí)數(shù)據(jù)倉庫項(xiàng)目實(shí)戰(zhàn)(在線教育版)
- Java Fundamentals
- Arduino計(jì)算機(jī)視覺編程
- SciPy Recipes
- R Data Science Essentials
- 一步一步跟我學(xué)Scratch3.0案例
- R的極客理想:量化投資篇