女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

計(jì)算機(jī)基礎(chǔ)知識(shí)之匯編語(yǔ)言1

jf_78858299 ? 來(lái)源:前端柒八九 ? 作者:前端柒八九 ? 2023-03-31 16:29 ? 次閱讀

匯編語(yǔ)言和本地代碼是一一對(duì)應(yīng)的

在前面的文章中我們多次提到,計(jì)算機(jī)CPU能直接解釋運(yùn)行的只有 「本地代碼」 (機(jī)器語(yǔ)言)程序。用C語(yǔ)言等編寫的源代碼,需要通過(guò)各自的 「編譯器」 編譯后,轉(zhuǎn)換成本地代碼。

通過(guò)調(diào)用本地代碼的內(nèi)容,可以了解程序最終是以何種形式來(lái)運(yùn)行的。但是,直接打開(kāi)本地代碼來(lái)看,只能看到數(shù)值的羅列。

我們可以采用另外一種方式,在各本地代碼中,附帶上表示其功能的英語(yǔ)單詞縮寫。例如,在加法運(yùn)算的本地代碼中加上add、在比較運(yùn)算的本地代碼中加上cmp等。這些縮寫被稱為 「助記符」 ,使用助記符的編程語(yǔ)言稱為**「匯編語(yǔ)言」**

不過(guò), 「即使是用匯編語(yǔ)言編寫的源代碼,最終也必須要轉(zhuǎn)換成本地代碼才能運(yùn)行」 。負(fù)責(zé)準(zhǔn)換工作的程序稱為 「匯編器」 ,轉(zhuǎn)換這個(gè)一處理本身稱為 「匯編」

?用匯編語(yǔ)言編寫的源代碼,和本地代碼是一一對(duì)應(yīng)的

?

本地代碼也可以反過(guò)來(lái)轉(zhuǎn)換成匯編語(yǔ)言的源代碼。持有該功能的 「逆變換」 程序稱為 「反匯編程序」 ,逆變換這一處理本身稱為 「反匯編」

圖片


不會(huì)轉(zhuǎn)換成本地代碼的偽指令

匯編語(yǔ)言的源代碼,是由轉(zhuǎn)換本地代碼的指令和針對(duì)匯編器的 「?jìng)沃噶睢?/strong> 構(gòu)成的。 「?jìng)沃噶钬?fù)責(zé)把程序的構(gòu)造及匯編的方法指示給匯編器(轉(zhuǎn)換程序)」 。不過(guò),偽指令是無(wú)法匯編轉(zhuǎn)換成本地代碼。

圖片

如上是一個(gè)匯編代碼片段。其中 「彩色」 部分是偽指令。

由偽指令segmentends圍起來(lái)的部分,是給構(gòu)成程序的命令和數(shù)據(jù)的集合體加上一個(gè)名字而得到的,稱為 「段定義」 。段定義的英文表達(dá)segment具有區(qū)域的意思。在程序中, 「段定義指的是命令和數(shù)據(jù)等程序的集合體的意思」

?一個(gè)程序由多個(gè)段定義構(gòu)成

?

如上圖所示。源代碼的開(kāi)始位置,定義了3個(gè)名稱分別為_TEXT_DATA_BSS的段定義。

  • _TEXT是指令的段定義
  • _DATA是被初始化(有初始值)的數(shù)據(jù)的段定義
  • _BSS是尚未初始化的數(shù)據(jù)的段定義

而這些段定義的名稱及劃分方法,不同的編譯器都有自己的一套規(guī)則。

偽指令procendp圍起來(lái)的部分,表示的是過(guò)程Proceduce的范圍。在匯編語(yǔ)言中,這種相當(dāng)于C語(yǔ)言的函數(shù)的形式稱為過(guò)程。


匯編語(yǔ)言的語(yǔ)法是**「操作碼 + 操作數(shù)」**

「在匯編語(yǔ)言中,1行表示對(duì)CPU的一個(gè)指令」 。匯編語(yǔ)言指令的語(yǔ)法結(jié)構(gòu)是 「操作碼」 + 「操作數(shù)」

  • 「操作碼」 表示的是指令動(dòng)作
  • 「操作數(shù)」 表示的是指令對(duì)象

操作碼和操作數(shù)羅列在一起的語(yǔ)法,就是一個(gè)英文的指令文本。操作碼是動(dòng)詞,操作數(shù)相當(dāng)于賓語(yǔ)。

能夠使用何種形式的操作碼,是由CPU的種類決定的。

圖片

常用操作碼的功能

本地代碼加載到內(nèi)存后才能運(yùn)行。內(nèi)存中存儲(chǔ)著構(gòu)成本地代碼的指令和數(shù)據(jù)。程序運(yùn)行時(shí),CPU會(huì)從內(nèi)存中把指令和數(shù)據(jù)讀出,然后再將存儲(chǔ)在CPU內(nèi)部的寄存器中進(jìn)行處理。

圖片「寄存器是CPU中的存儲(chǔ)區(qū)域」 。不過(guò),寄存器并不僅僅具有存儲(chǔ)指令和數(shù)據(jù)的功能,也有運(yùn)算功能。寄存器的名稱會(huì)通過(guò)匯編語(yǔ)言的源代碼指定給操作數(shù)。內(nèi)存中的存儲(chǔ)區(qū)域是用 「地址編號(hào)」 來(lái)區(qū)分的。CPU內(nèi)的寄存器是用eaxebx這些名稱開(kāi)區(qū)分的。

下圖是CPU的寄存器的主要種類和角色圖片


mov指令

mov指令的兩個(gè)操作數(shù),分別是用來(lái)指定數(shù)據(jù)的 「存儲(chǔ)地」「讀出源」

操作數(shù)可以指定寄存器、常數(shù)、標(biāo)簽(附近在地址前)以及用方括號(hào)([])圍起來(lái)的這些內(nèi)容。

  • 如果指定了 「沒(méi)有用方括號(hào)圍起來(lái)」 的內(nèi)容,就表示對(duì)該值進(jìn)行處理
  • 如果指定了 「用方括號(hào)圍起來(lái)」 的內(nèi)容,方括號(hào)中的值則會(huì)被解釋為 「內(nèi)存地址」 ,然后就會(huì)對(duì)該內(nèi)存地址對(duì)應(yīng)的值進(jìn)行讀寫操作
mov ebp,esp;
mov eax,dword ptr [ebp+8];

mov ebp,esp中,esp寄存器中的值被直接存儲(chǔ)在ebp寄存器中。esp寄存器的值是100時(shí)ebp寄存器的值也是100

mov eax,dword ptr [ebp+8];中,ebp寄存器的值加8后得到的值會(huì)被解釋為內(nèi)存地址。如果ebp寄存器的值是100的話,那么eax寄存器中存儲(chǔ)的就是100 + 8 = 108地址的數(shù)據(jù)。


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

    關(guān)注

    68

    文章

    11031

    瀏覽量

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

    關(guān)注

    19

    文章

    7626

    瀏覽量

    90147
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

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

    關(guān)注

    1

    文章

    1654

    瀏覽量

    49881
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    匯編語(yǔ)言是什么?怎樣去學(xué)習(xí)匯編語(yǔ)言

    匯編語(yǔ)言是什么?怎樣去學(xué)習(xí)匯編語(yǔ)言呢?計(jì)算機(jī)怎么識(shí)別你寫的代碼呢?
    發(fā)表于 11-29 06:03

    計(jì)算機(jī)基礎(chǔ)知識(shí)

    前言《MSP430單片機(jī)應(yīng)用基礎(chǔ)與實(shí)踐》(華中科技大學(xué)出版社)------第0章------計(jì)算機(jī)基礎(chǔ)知識(shí)(本文章作備忘錄使用)1.進(jìn)制轉(zhuǎn)換2.數(shù)值數(shù)據(jù)的表示3.計(jì)算機(jī)的碼制
    發(fā)表于 11-29 06:03

    什么是匯編語(yǔ)言

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

    計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)

    計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)是為中央電大計(jì)算機(jī)組成原理與匯編語(yǔ)言程序設(shè)計(jì)課程編寫的教材。在開(kāi)始學(xué)習(xí)本書(shū)之前,請(qǐng)大家務(wù)必先認(rèn)真閱讀這篇前言,它將告訴你本課
    發(fā)表于 10-21 17:56 ?0次下載
    <b class='flag-5'>計(jì)算機(jī)</b>組成原理與<b class='flag-5'>匯編語(yǔ)言</b>程序設(shè)計(jì)

    微機(jī)原理與匯編語(yǔ)言程序設(shè)計(jì)課件

    微機(jī)原理與匯編語(yǔ)言程序設(shè)計(jì)課件為PPT文件,內(nèi)容有:第1基礎(chǔ)知識(shí) 4第2章 微型計(jì)算機(jī)系統(tǒng)結(jié)構(gòu) 6第3章 程序加載并執(zhí)行 4第4章 微處理器一般指令&
    發(fā)表于 12-06 22:20 ?5次下載
    微機(jī)原理與<b class='flag-5'>匯編語(yǔ)言</b>程序設(shè)計(jì)課件

    計(jì)算機(jī)組成原理與匯編語(yǔ)言習(xí)題一

    計(jì)算機(jī)組成原理與匯編語(yǔ)言習(xí)題一   硬盤低格格式化是對(duì)硬盤最徹底的初始化方式,經(jīng)過(guò)低格后的硬盤,原來(lái)保護(hù)的數(shù)據(jù)將全部丟失
    發(fā)表于 04-15 16:16 ?570次閱讀

    計(jì)算機(jī)基礎(chǔ)知識(shí)介紹

    計(jì)算機(jī)基礎(chǔ)知識(shí)計(jì)算機(jī)基礎(chǔ)知識(shí)計(jì)算機(jī)基礎(chǔ)知識(shí)
    發(fā)表于 12-03 16:13 ?0次下載

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

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

    計(jì)算機(jī)學(xué)習(xí)教程之指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是計(jì)算機(jī)學(xué)習(xí)教程之指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)課件免費(fèi)下載包括了:1.匯編語(yǔ)言程序設(shè)計(jì),2.程序設(shè)計(jì)舉例,
    發(fā)表于 01-03 08:00 ?0次下載

    計(jì)算機(jī)的機(jī)器語(yǔ)言匯編語(yǔ)言與高級(jí)語(yǔ)言的詳細(xì)資料介紹

    計(jì)算機(jī)語(yǔ)言通常是一個(gè)能完整、準(zhǔn)確和規(guī)則地表達(dá)人們的意圖,并用以指揮或控制計(jì)算機(jī)工作的“符號(hào)系統(tǒng)”。計(jì)算機(jī)語(yǔ)言通常分為三類:即機(jī)器語(yǔ)言匯編語(yǔ)言
    的頭像 發(fā)表于 02-06 16:11 ?6125次閱讀

    [從零學(xué)習(xí)匯編語(yǔ)言] - 計(jì)算機(jī)中的硬件與軟件

    文章目錄前言一、 匯編語(yǔ)言簡(jiǎn)介1.1 什么是匯編語(yǔ)言1.2 機(jī)器語(yǔ)言簡(jiǎn)介1.3 匯編語(yǔ)言的演變史1.4 匯編語(yǔ)言的廣義組成二、硬件與軟件2
    發(fā)表于 12-31 19:55 ?10次下載
    [從零學(xué)習(xí)<b class='flag-5'>匯編語(yǔ)言</b>] - <b class='flag-5'>計(jì)算機(jī)</b>中的硬件與軟件

    構(gòu)建 4 位計(jì)算機(jī)匯編語(yǔ)言匯編器(第 2 部分)

    一旦我們構(gòu)建了一臺(tái)計(jì)算機(jī),下一步就是開(kāi)發(fā)一種匯編語(yǔ)言,然后是一個(gè)可以匯編我們程序的匯編器。 ? 在我 之前的專欄 中,我們介紹了在計(jì)算機(jī)內(nèi)存
    發(fā)表于 08-01 17:52 ?984次閱讀
    構(gòu)建 4 位<b class='flag-5'>計(jì)算機(jī)</b>:<b class='flag-5'>匯編語(yǔ)言</b>和<b class='flag-5'>匯編</b>器(第 2 部分)

    構(gòu)建 4 位計(jì)算機(jī)匯編語(yǔ)言匯編器(第 1 部分)

    我們已經(jīng)到了需要為 4 位 HRRG 計(jì)算機(jī)定義匯編語(yǔ)言的地步,但首先我們需要考慮某些概念。 如今,我們習(xí)慣于使用 C/C++、Java、Python 等高級(jí)語(yǔ)言對(duì)我們的計(jì)算機(jī)和微控制
    發(fā)表于 08-01 17:39 ?1185次閱讀
    構(gòu)建 4 位<b class='flag-5'>計(jì)算機(jī)</b>:<b class='flag-5'>匯編語(yǔ)言</b>和<b class='flag-5'>匯編</b>器(第 <b class='flag-5'>1</b> 部分)

    計(jì)算機(jī)基礎(chǔ)知識(shí)匯編語(yǔ)言2

    在前面的文章中我們多次提到,計(jì)算機(jī)CPU能直接解釋運(yùn)行的只有 「本地代碼」 (機(jī)器語(yǔ)言)程序。用C語(yǔ)言等編寫的源代碼,需要通過(guò)各自的 「編譯器」 編譯后,轉(zhuǎn)換成本地代碼。
    的頭像 發(fā)表于 03-31 16:30 ?1775次閱讀
    <b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>基礎(chǔ)知識(shí)</b><b class='flag-5'>之</b><b class='flag-5'>匯編語(yǔ)言</b>2