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

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

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

匯編語言基礎(chǔ)知識(shí):基本概念

CHANBAEK ? 來源:上下求索電子er ? 作者:上下求索電子er ? 2023-10-26 14:29 ? 次閱讀

匯編語言:基本概念

1 機(jī)器語言和匯編語言

1.1 機(jī)器語言

機(jī)器指令展開來講就是一臺(tái)機(jī)器可以正確執(zhí)行的命令。電子計(jì)算機(jī)的機(jī)器指令是一列二進(jìn)制數(shù)字。計(jì)算機(jī)將之轉(zhuǎn)變?yōu)橐涣懈叩碗娖?,以使?jì)算機(jī)的電子器件受到驅(qū)動(dòng),進(jìn)行運(yùn)算。早期的程序設(shè)計(jì)均使用機(jī)器語言。程序員們將用0、1 數(shù)字編成的程序代碼打在紙帶或卡片上,1打孔,0 不打孔,再將程序通過紙帶機(jī)或卡片機(jī)輸入計(jì)算機(jī),進(jìn)行運(yùn)算。

機(jī)器語言難于辨別和記憶, 給整個(gè)產(chǎn)業(yè)的發(fā)展帶來了障礙。于是匯編語言產(chǎn)生了。

1.2 匯編語言

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

例如:機(jī)器指令1000100111011000表示把寄存器BX的內(nèi)容送到AX 中。匯編指令則寫成mov ax,bx。這樣的寫法與人類語言接近,便于閱讀和記憶。

「編譯器」 是能夠?qū)R編指令轉(zhuǎn)換成機(jī)器指令的翻譯程序,程序員用匯編語言寫出源程序,再用匯編編譯器將其編譯為機(jī)器碼,由計(jì)算機(jī)最終執(zhí)行。

2 CPU對(duì)存儲(chǔ)器的讀寫

2.1 概述

CPU要從內(nèi)存中讀數(shù)據(jù),首先要指定 「存儲(chǔ)單元的地址」 。另外還要指明它要對(duì) 「哪一個(gè)器件」 進(jìn)行操作,進(jìn)行 「哪種操作」 ,是從中讀出數(shù)據(jù),還是向里面寫入數(shù)據(jù)。

即CPU要想進(jìn)行數(shù)據(jù)的讀寫,必須和外部器件(標(biāo)準(zhǔn)的說法是芯片)進(jìn)行下面3類信息的交互。

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

在計(jì)算機(jī)中專門有為CPU和其他部件之間提供信息(地址信息、控制信息、數(shù)據(jù)信息)的傳輸通道,通常稱為總線??偩€從物理上來講,就是一根根導(dǎo)線的集合。根據(jù)傳送信息的不同,總線從邏輯上又分為3類,地址總線、控制總線和數(shù)據(jù)總線。8086CPU有20條地址總線、16條控制總線和16條數(shù)據(jù)總線。

要讓一個(gè)計(jì)算機(jī)或微處理器工作,應(yīng)向它輸入能夠驅(qū)動(dòng)它進(jìn)行工作的電平信息(機(jī)器碼)。例如:傳送3 號(hào)單元的內(nèi)容入AX

  • 機(jī)器碼:10100001 00000011 00000000
  • 對(duì)應(yīng)的匯編指令:MOV AX,[3]

2.2 地址總線

「地址總線(AB)」 用來傳遞地址信息。因地址總是從CPU送出去的,所以地址總線通常是單向的。假設(shè),一個(gè)CPU有10根地址總線,如圖所示,它發(fā)出地址信息11時(shí)10根地址線上傳送的高低電平信號(hào)的二進(jìn)制信息就為11對(duì)應(yīng)的二進(jìn)制數(shù)00 0000 1011。

圖片

一 個(gè) CPU有 N 根地址線,則可以說這個(gè)CPU的地址總線的寬度為N這樣的CPU最多可以尋找次方個(gè)內(nèi)存單元。8086CPU的20根地址線(A19A16,A15A0)可以全部用來給外部存儲(chǔ)器提供地址,所以8086可尋址的外部存儲(chǔ)器地址空間達(dá)字節(jié)即1MB。

2.3 數(shù)據(jù)總線

「數(shù)據(jù)總線(DB)」 用來傳輸數(shù)據(jù)。數(shù)據(jù)總線是雙向的,即數(shù)據(jù)既可以從CPU送到其他部件,也可以從其他部件送到CPU。

數(shù)據(jù)總線的寬度 決定了CPU和外界的數(shù)據(jù)傳送速度。8根數(shù)據(jù)總線一次可傳送一個(gè)8位二進(jìn)制數(shù)據(jù)(即一個(gè)字節(jié)),16根數(shù)據(jù)總線一次可傳送兩個(gè)字節(jié)。

例如,8086有16根數(shù)據(jù)線,可一次傳送16位數(shù)據(jù),所以可一次傳送數(shù)據(jù)89D8H;而 8088只有 8 根數(shù)據(jù)線,一次只能傳8 位數(shù)據(jù),所以向內(nèi)存寫入數(shù)據(jù)89D8H時(shí)需要進(jìn)行兩次數(shù)據(jù)傳送。

圖片

圖片

2.4 控制總線

「控制總線(CB)」 用來傳輸控制信號(hào)。其中包括CPU送往存儲(chǔ)器和輸入/輸出接口的控制信號(hào),還包括其他部件送到CPU的信號(hào)。有多少根控制總線,就意味著CPU提供了對(duì)外部器件的多少種控制。所以,控制總線的寬度決定了CPU對(duì)外部器件的控制能力。

3 各類存儲(chǔ)器芯片

3.1 隨機(jī)存儲(chǔ)器和只讀存儲(chǔ)器。

一臺(tái)PC機(jī)中,裝有多個(gè)存儲(chǔ)器芯片,這些存儲(chǔ)器芯片從物理連接上看是獨(dú)立的、不同的器件。從讀寫屬性上看分為兩類:隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)。

「隨機(jī)存儲(chǔ)器」 可讀可寫,但必須帶電存儲(chǔ),關(guān)機(jī)后存儲(chǔ)的內(nèi)容丟失; 「只讀存儲(chǔ)器」 只能讀取不能寫入, 關(guān)機(jī)后其中的內(nèi)容不丟失。下展示了 PC系統(tǒng)中各類存儲(chǔ)器的邏輯連接情況。

圖片

3.2 內(nèi)存地址空間

CPU在操控存儲(chǔ)器的時(shí)候,把它們都當(dāng)作內(nèi)存來對(duì)待,把它們總的看作一個(gè)由若干存儲(chǔ)單元組成的一個(gè)邏輯存儲(chǔ)器,這個(gè)邏輯存儲(chǔ)器就是我們所說的內(nèi)存地址空間。每個(gè)物理存儲(chǔ)器在這個(gè)邏輯存儲(chǔ)器中占有一個(gè)地址段,即一段地址空間。CPU在這段地址空間中讀寫數(shù)據(jù),實(shí)際上就是在相對(duì)應(yīng)的物理存儲(chǔ)器中讀寫數(shù)據(jù)。下圖展示了CPU將系統(tǒng)中各類存儲(chǔ)器看作一個(gè)邏輯存儲(chǔ)器的情況

圖片

內(nèi)存地址空間的大小受CPU地址總線寬度的限制。8086CPU的地址總線寬度為20, 可以傳送 個(gè)不同的地址信息,即可以定位個(gè)內(nèi)存單元,則8086PC的內(nèi)存地址空間大小為1MB。下圖展示了 8086PC機(jī)內(nèi)存地址空間分配的基本情況。

圖片

從地址0?9FFFF的內(nèi)存單元中讀取數(shù)據(jù),實(shí)際上就是在讀取主隨機(jī)存儲(chǔ)器中的數(shù)據(jù);向地址AOOOO-BFFFF的內(nèi)存單元中寫數(shù)據(jù),就是向顯存中寫入數(shù)據(jù), 這些數(shù)據(jù)會(huì)被顯示卡輸出到顯示器上;我們向地址C0000? FFFFF的內(nèi)存單元中寫入數(shù)據(jù)的操作是無效的,因?yàn)檫@等于改寫只讀存儲(chǔ)器中的內(nèi)容。

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

    關(guān)注

    38

    文章

    7366

    瀏覽量

    163101
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209422
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7174

    瀏覽量

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

    關(guān)注

    14

    文章

    406

    瀏覽量

    35574
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48896
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    《微機(jī)原理與匯編語言匯編語言程序設(shè)計(jì)知識(shí)

    `《微機(jī)原理與匯編語言匯編語言程序設(shè)計(jì)知識(shí)[hide][/hide]`
    發(fā)表于 03-19 10:15

    《微機(jī)原理與匯編語言》微機(jī)基礎(chǔ)知識(shí)

    `《微機(jī)原理與匯編語言》微機(jī)基礎(chǔ)知識(shí)[hide][/hide]`
    發(fā)表于 04-05 13:00

    什么是匯編語言

    文章目錄前言一、 匯編語言簡(jiǎn)介1.1 什么是匯編語言1.2機(jī)器語言簡(jiǎn)介1.3 匯編語言的演變史1.4 匯編語言的廣義組成二、硬件與軟件2.1
    發(fā)表于 02-24 07:01

    ARM匯編語言入門

    本指南介紹了使用A64指令集的Arm匯編語言基本概念,向您展示了如何使用Arm Development Studio創(chuàng)建和運(yùn)行匯編代碼,并提供了匯編代碼示例供您進(jìn)行實(shí)驗(yàn)。
    發(fā)表于 08-08 07:28

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

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

    匯編語言編程藝術(shù)(PDF)

    匯編語言編程藝術(shù)從簡(jiǎn)單的Hello程序開始,系統(tǒng)而詳細(xì)地闡述了X86微機(jī)匯編語言編程的行種基礎(chǔ)知識(shí)和編程技巧,內(nèi)容涉及到數(shù)據(jù)表示、存儲(chǔ)器管理、各種數(shù)據(jù)類型、過程、與匯編
    發(fā)表于 10-21 18:04 ?0次下載
    <b class='flag-5'>匯編語言</b>編程藝術(shù)(PDF)

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

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

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

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

    Linux中的匯編語言

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

    匯編語言

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

    匯編語言學(xué)習(xí)課件_微處理器基礎(chǔ)知識(shí)

    匯編語言學(xué)習(xí)課件 第二章 微處理器基礎(chǔ)知識(shí) 2.1 Intel公司80x86系列微處理器簡(jiǎn)介 2.2 程序可見寄存器組 2.3 存儲(chǔ)器 2.4 PC機(jī)操作系統(tǒng)的發(fā)展 2.5 DOS內(nèi)存布局 2.6 外部設(shè)備及I/O地址空間 2.7
    發(fā)表于 12-31 10:39 ?0次下載

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

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

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

    電子專業(yè)單片機(jī)相關(guān)知識(shí)學(xué)習(xí)教材資料——匯編語言程序設(shè)計(jì)
    發(fā)表于 09-01 16:40 ?0次下載

    《微機(jī)原理與匯編語言》微機(jī)基礎(chǔ)知識(shí)

    《微機(jī)原理與匯編語言》微機(jī)基礎(chǔ)知識(shí)
    發(fā)表于 12-14 15:07 ?0次下載

    單片機(jī)基礎(chǔ)教程之匯編語言程序設(shè)計(jì)知識(shí)的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)基礎(chǔ)教程之匯編語言程序設(shè)計(jì)知識(shí)的詳細(xì)資料說明包括了:1 編程的步驟、方法和技巧,2 匯編語言源程序的編輯和匯編
    發(fā)表于 01-28 16:47 ?10次下載
    單片機(jī)基礎(chǔ)教程之<b class='flag-5'>匯編語言</b>程序設(shè)計(jì)<b class='flag-5'>知識(shí)</b>的詳細(xì)資料說明