0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

匯編語言的產(chǎn)生 匯編語言的組成

冬至子 ? 來源:Forever Keep Loving ? 作者:邱立威 ? 2023-09-20 14:52 ? 次閱讀

1.機器語言

機器語言是機器指令的集合。機器指令展開來講就是一臺機器可以正確執(zhí)行的命令。電子計算機的機器指令是一列二進制數(shù)字,計算機將之轉(zhuǎn)變?yōu)橐涣懈叩碗娖?,以使計算機的電子器件受到驅(qū)動,進行運算。

2.匯編語言的產(chǎn)生

匯編語言的主體是匯編指令。匯編指令和機器指令的差別在于指令的表示方法上。匯編指令是機器指令便于記憶的書寫格式。

機器指令:1000100111011000

操作:寄存器 BX的內(nèi)容送到AX中

匯編指令:MOV AX,BX

寄存器CPU可以存儲數(shù)據(jù)的器件

圖片

3.匯編語言的組成

由3類指令組成

(1)匯編指令:機器碼的助記符,由對應(yīng)的機器碼

(2)偽指令:沒有對應(yīng)的機器碼,計算機并不執(zhí)行。

(3)其他符號:如+,-,*,/ 等,由編譯器識別,沒有對應(yīng)的機器碼

匯編語言的核心是匯編指令,他決定了匯編語言的特性

4.存儲器

  • CPU 是計算機的核心部件.它控制整個計算機的運作并進行運算,要想讓一個CPU 工作,就必須向它提供指令和數(shù)據(jù)。
  • 指令和數(shù)據(jù)在存儲器中存放,也就是平時所說的內(nèi)存
  • 在一臺PC機中內(nèi)存的作用僅次于CPU。
  • 離開了內(nèi)存,性能再好的CPU也無法工作。
  • 磁盤不同于內(nèi)存,磁盤上的數(shù)據(jù)或程序如果不讀到內(nèi)存中,就無法被CPU 使用。

5.指令和數(shù)據(jù)

指令和數(shù)據(jù)是應(yīng)用上的概念,在內(nèi)存或磁盤上,指令和數(shù)據(jù)沒有任何區(qū)別,都是二進制信息

6.存儲單元

存儲器被劃分為若干個存儲單元,每個存儲單元從0開始順序編號;

圖片

電子計算機的最小信息單元是bit(比特),就是一個二進制位,8bit組成一個Byte(字節(jié)),微型機存儲器的存儲單元可以存儲Byte,128個存儲單元,就可以存儲128個Byte

7.CPU對存儲器的讀寫

CPU想要進行數(shù)據(jù)的讀寫,必須和外部器件(芯片)進行3類信息的交互

  • 存儲單元的地址(地址信息);
  • 器件的選擇,讀或?qū)懙拿睿刂菩畔ⅲ?/li>
  • 讀或?qū)懙臄?shù)據(jù)(數(shù)據(jù)信息);

那么CPU是通過什么將地址、數(shù)據(jù)和控制信息傳到存儲芯片中的呢?

電子計算機能處理、傳輸?shù)男畔⒍际请娦盘?,電信號?dāng)然要用導(dǎo)線傳送。在計算機中專門有連接CPU和其他芯片的導(dǎo)線,通常稱為總線。

物理上:一根根導(dǎo)線的集合;

邏輯上劃分為

  • 地址總線
  • 數(shù)據(jù)總線
  • 控制總線

圖片

CPU從內(nèi)存中讀取數(shù)據(jù)過程

圖片

(1)CPU通過地址總線將地址信息3發(fā)出。

(2)CPU通過控制線發(fā)出內(nèi)存讀命令,選中存儲器芯片,并通知他,將要從中讀取數(shù)據(jù)。

(3)存儲器將3號單元中的數(shù)據(jù) 08 通過數(shù)據(jù)線送入CPU

對于8086CPU,下面的機器碼能夠完成從3號單元讀數(shù)據(jù):

機器碼:101000000000001100000000

    含義:從3號單元讀取數(shù)據(jù)送入寄存器AX
  • CPU接收這條機器碼后將完成上面所述的讀寫工作。
  • 匯編語言:MOV AX,[3]

8.地址總線

  • CPU是通過地址總線來指定存儲單元的。
  • 地址總線上能傳送多少個不同的信息,就可以對多少個存儲單元進行尋址
  • 一個CPU有N根地址總線,則可以說這個CPU的地址總線的寬度為N。
  • 這樣的CPU最多可以尋找2的N次方個內(nèi)存單元。
  • 32位計算機尋址能力 2^32= 2^10 * 2^10 * 2^10 *4 = 4GB

圖片

9.數(shù)據(jù)總線

  • CPU與內(nèi)存或其它器件之間的數(shù)據(jù)傳送是通過數(shù)據(jù)總線來進行的。
  • 數(shù)據(jù)總線的寬度決定了CPU和外界的數(shù)據(jù)傳送速度。

10.控制總線

  • 前面所講的內(nèi)存讀或?qū)懨钍怯蓭赘刂凭€綜合發(fā)出的:
    • 其中有一根名為讀信號輸出控制線負責(zé)由CPU 向外傳送讀信號,CPU 向該控制線上輸出低電平表示將要讀取數(shù)據(jù);
    • 有一根名為寫信號輸出控制線負責(zé)由CPU向外傳送寫信號。

11.內(nèi)存地址空間概述

什么是內(nèi)存地址空間呢?

一個CPU的地址線寬度為10,那么可以尋址1024個內(nèi)存單元,這1024個可尋到的內(nèi)存單元就構(gòu)成這個CPU的內(nèi)存地址空間。下面深入討論。

首先需要介紹兩部分基本知識,主板和接口卡。

12.主板

在每一臺PC機中,都有一個主板,主板上有核心器件和一些主要器件。

這些器件通過總線(地址總線、數(shù)據(jù)總線、控制總線)相連。

13.接口卡

計算機系統(tǒng)中,所有可用程序控制其工作的設(shè)備,必須受到CPU的控制。

CPU對外部設(shè)備不能直接控制,如顯示器、音箱、打印機等。直接控制這些設(shè)備進行工作的是插在擴展插槽上的接口卡。

14.各類存儲器芯片

從讀寫屬性上看分為兩類:

隨機存儲器(RAM)和只讀存儲器(ROM

從功能和連接上分類:

隨機存儲器RAM

裝有BIOS的ROM

接口卡上的RAM

PC機中各類存儲器的邏輯連接情況

裝有BIOS的ROM

    BIOS:Basic Input/Output System,基本輸入輸出系統(tǒng)。

    BIOS是由主板和各類接口卡(如:顯卡、網(wǎng)卡等)廠商提供的軟件系統(tǒng),可以通過它利用該硬件設(shè)備進行最基本的輸入輸出。在主板和某些接口卡上插有存儲相應(yīng)BIOS的ROM。

圖片

15.內(nèi)存地址空間

上述的那些存儲器在物理上是獨立的器件。

但是它們在以下兩點上相同:

  • 1、都和CPU的總線相連。
  • 2、CPU對它們進行讀或?qū)懙臅r候都通過控制線發(fā)出內(nèi)存讀寫命令。

將各類存儲器看作一個邏輯存儲器:

  • 所有的物理存儲器被看作一個由若干存儲單元組成的邏輯存儲器;
  • 每個物理存儲器在這個邏輯存儲器中占有一個地址段,即一段地址空間;

CPU在這段地址空間中讀寫數(shù)據(jù),實際上就是在相對應(yīng)的物理存儲器中讀寫數(shù)據(jù)。

圖片

  • 假設(shè),上圖中的內(nèi)存空間地址段分配如下:
    • 地址0~7FFFH的32KB空間為主隨機存儲器的地址空間;
    • 地址8000H~9FFFH的8KB空間為顯存地址空間;
    • 地址A000H~FFFFH的24KB空間為各個ROM的地址空間。

圖片

內(nèi)存地址空間

  • 最終運行程序的是CPU,我們用匯編編程的時候,必須要從CPU角度考慮問題。(我們學(xué)習(xí)這門課程的核心思維)
  • 對CPU來講,系統(tǒng)中的所有存儲器中的存儲單元都處于一個統(tǒng)一的邏輯存儲器中,它的容量受CPU尋址能力的限制。這個邏輯存儲器即是我們所說的內(nèi)存地址空間。

小結(jié):

(1)匯編指令是機器指令的助記符,同機器指令一一對應(yīng)。

(2)每一種CPU都有自己的匯編指令集。

(3)CPU可以直接使用的信息在存儲器中存放。

(4)在存儲器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進制信息。

(5)存儲單元從零開始順序編號。

(6)一個存儲單元可以存儲 8 個 bit (用作單位寫成“b”),即 8 位二進制數(shù)。

(7)1B = 8b 1KB = 1024B

1MB = 1024KB   1GB = 1024MB

(8)每一個CPU芯片都有許多管腳,這些管腳和總線相連。也可以說,這些管腳引出總線。一個CPU可以引出三種總線的寬度標志了這個CPU的不同方面的性能:

  • 地址總線的寬度決定了CPU的尋址能力;
  • 數(shù)據(jù)總線的寬度決定了CPU與其它器件進行數(shù)據(jù)傳送時的一次數(shù)據(jù)傳送量;
  • 控制總線寬度決定了CPU對系統(tǒng)中其它器件的控制能力。

檢測

**(1)**CPU的尋址能力為8KB,那么它的地址總線的寬度為 位。解:1KB=1024B,8KB=1024B*8=2^N,N=13。 則地址總線的寬度為13位

**(2)**1KB的存儲器有 *****個存儲單元,存儲單元的編號從 到 ***** 。解:回顧前面:一個存儲單元可以存儲 8 個 bit (用作單位寫成“b”),即 8 位二進制數(shù)。 即:1KB=1024B=1024*8bit 故有1024個存儲單元,存儲單元的編號從0開始到1023

**(3) 1KB的存儲器可以存儲 __ 個bit, _**個Byte。解:1KB=1024Byte=1024*8bit=8192bit

**(4)1GB是個Byte、1MB是 **_個Byte、1KB是 __ ___個Byte。解:1GB=1024 * 1024 * 1024=1073741824Byte 1MB=1024*1024=1048576Byte 1KB=1024Byte

**(5)**8080、8088、80296、80386的地址總線寬度分別為16根、20根、24根、32根,則它們的尋址能力分別為: (KB)、 (MB)、 (MB)、___(GB)。解:由第一題得知:2^N=尋址能力(N為地址總線的寬度即現(xiàn)在題目中的16、20....) 則:2^16=65536byte=64kb 2^20=1048576byte=1mb 2^24=16777216byte=16mb 2^32=4294967296byte=4GB

(6) 8080、8088、8086、80286、80386的數(shù)據(jù)總線寬度分別為8根、8根、16根、16根、32根。則它們一次可以傳送的數(shù)據(jù)為: (B)、 _(B)、 __ (B)、 (B)、 __ (B)。解:由前面的知識可知: (一)8根數(shù)據(jù)總線一次可以傳送8位二進制數(shù)據(jù)(即一個字節(jié))。 (二)一個存儲單元可以存儲 8 個 bit (用作單位寫成“b”),即 8 位二進制數(shù)。 (三)1Byte = 8bit 則:答案為:1 1 2 2 4

**(7) 從內(nèi)存中讀取1024字節(jié)的數(shù)據(jù),8086至少要讀 _ 次,80386至少要讀 __**次。解:由上題可知:8086為16根數(shù)據(jù)總線,一次可以傳送16位二進制數(shù)據(jù)(即兩個字節(jié))。 1024/2=512(次) 80386為32根數(shù)據(jù)總線,一次可以傳送32位二進制數(shù)據(jù)(即四個字節(jié))。 1024/4=256(次)

(8) 在存儲器中,數(shù)據(jù)和程序以 _ 形式存放。解:在存儲器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進制信息,所以以二進制形式存放。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7430

    瀏覽量

    163514
  • 匯編語言
    +關(guān)注

    關(guān)注

    14

    文章

    409

    瀏覽量

    35690
  • 邏輯控制器
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    9514
  • 機器語言
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    10740
收藏 人收藏

    評論

    相關(guān)推薦

    什么是匯編語言

    文章目錄前言一、 匯編語言簡介1.1 什么是匯編語言1.2機器語言簡介1.3 匯編語言的演變史1.4 匯編語言的廣義
    發(fā)表于 02-24 07:01

    匯編語言程序設(shè)計pdf

    匯編語言程序設(shè)計的內(nèi)容:每種高級語言程序在連接為可執(zhí)行程序之前,都必須被編譯為匯編語言程序,因此對于高級語言程序設(shè)計者來說,了解編譯器如何生成匯編語
    發(fā)表于 10-21 17:38 ?0次下載
    <b class='flag-5'>匯編語言</b>程序設(shè)計pdf

    匯編語言程序設(shè)計下載

    professional assembly language 匯編語言程序設(shè)計本書分為三部分。第一部分講解匯編語言程序設(shè)計環(huán)境基礎(chǔ),第二部分研究匯編語言程序設(shè)計,最后一部分講解高級匯編語言
    發(fā)表于 10-21 17:42 ?0次下載
    <b class='flag-5'>匯編語言</b>程序設(shè)計下載

    DSP匯編語言編程基礎(chǔ)

    DSP匯編語言編程基礎(chǔ) 一、  實驗?zāi)康?1、了解 DSP 的尋址方式; 2、了解 DSP 的匯編語言與 C語言混合編程。 二、  實驗器材 1、安裝有 CCS的 PC
    發(fā)表于 02-11 09:41 ?207次下載

    匯編語言自學(xué)教程

    匯編語言自學(xué)教程 匯編語言(AssemblyLanguage)是面向機器的程序設(shè)計語言。在匯編語合中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label
    發(fā)表于 03-15 14:24 ?511次下載

    匯編語言程序結(jié)構(gòu)

    實 驗   匯編語言程序結(jié)構(gòu) 一、實驗?zāi)康?nbsp;1.掌握匯編語言程序上機過程。    2.掌握匯編語言結(jié)構(gòu)。
    發(fā)表于 09-28 23:11 ?2840次閱讀

    匯編語言詳解

    匯編語言(Assembly Language)是面向機器的程序設(shè)計語言。   匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器
    發(fā)表于 06-30 10:28 ?4105次閱讀

    Linux中的匯編語言

    在閱讀Linux源代碼時,你可能碰到一些匯編語言片段,有些匯編語言出現(xiàn)在以.S為擴展名的匯編文件中,在這種文件中,整個程序全部由匯編語言組成
    發(fā)表于 04-07 20:43 ?55次下載

    Assemble匯編語言設(shè)計技術(shù)

    匯編語言 設(shè)計程序,是所有程序語言的基本資源。我們不管你使用除匯編語言或指令代碼以外的程序語言編程,僅僅是編程表達、編程規(guī)則和變成環(huán)境的變化,但是這些變化都是基于匯
    發(fā)表于 07-07 15:47 ?0次下載

    ARM匯編語言官方手冊(中文)

    ARM匯編語言官方手冊(中文)匯編語言ARM匯編語言官方手冊(中文)
    發(fā)表于 12-28 15:02 ?212次下載

    匯編語言

    匯編語言舉例,比如讀寄存器內(nèi)容的源代碼、匯編語言制作的光帶菜單及源程序、獲得操作系統(tǒng)版本的匯編源代碼等
    發(fā)表于 12-31 10:40 ?33次下載

    匯編語言學(xué)習(xí)課件_匯編語言程序組織

    第四章 匯編語言程序組織 4.1 匯編語言語句格式 4.2 匯編語言源程序結(jié)構(gòu) 4.3 常用偽指令 4.4 匯編語言操作符 4.5
    發(fā)表于 12-31 10:41 ?0次下載

    匯編語言學(xué)習(xí)課件_匯編語言高級編程技巧

    第八章 匯編語言高級編程技巧 8.1 模塊化程序設(shè)計 8.2 匯編語言程序與高級語言程序的連接 8.3 使用DOS EXEC功能執(zhí)行程序 8.4 TSR程序設(shè)計
    發(fā)表于 12-31 10:41 ?0次下載

    匯編語言程序設(shè)計自學(xué)教程

    匯編語言程序設(shè)計自學(xué)教程,幫助自學(xué)者掌握匯編語言的自行設(shè)計與編程。
    發(fā)表于 04-06 15:47 ?40次下載

    高級語言匯編語言_機器語言的區(qū)別

    本文首先介紹了高級語言的優(yōu)缺點、匯編語言的優(yōu)缺點及使用匯編語言的理由,其次介紹了機器語言的優(yōu)缺點,最后闡述了高級語言
    的頭像 發(fā)表于 04-16 10:28 ?3w次閱讀