關於組合語言基礎知識的總結與思考

2022-06-01 10:30:12 字數 1525 閱讀 9205

這是我第一次真正的接觸彙編,在此之前我對這門課的印象一直停留在《c++語言程式設計》的深度**裡把一串亂碼似的東西叫做組合語言中。當時我就想:這門語言真煩人,怎麼生的這麼亂?現在我不怪它了,因為我知道了它是為了另一種更煩人的語言而產生的——機器語言。

機器語言是機器指令的集合,電子計算機的機器指令是一列二進位制數,計算機執行時分別將0、1轉變為高、低電平,從而進行運算。機器語言是唯一能被計算機直接識別的語言,它佔據空間小、執行速度快、還有進行加密解密的功能。可縱然它千好萬好,它用起來煩啊,哪有人有耐性天天0101的往電腦裡輸?於是,組合語言應運而生。由於計算機只能識別機器語言,於是乙個名叫「編譯器」的東西充當起了翻譯官,程式設計師輸入彙編指令(組合語言的主體與核心)後,由編譯器將其編譯為機器碼並由計算機最終執行。

組合語言是直接在硬體上工作的程式語言,既要學習彙編,便少不了對一些計算機硬體的學習與認知。

首先要提的便是計算機最重要的組成部分——cpu。cpu控制著整個計算機的運作並進行運算。要讓乙個cpu工作,就必須向它提供存放在儲存器(記憶體)中的指令和資料,此處值得注意的是在記憶體或磁碟上指令和記憶體都是一串毫無區別的二進位製碼,只有聰明的cpu在工作時會對它們加以區分。

接著談到儲存單元。儲存器被劃分成若干個從0開始順序編號的儲存單元。乙個儲存單元的大小為乙個byte,即乙個位元組。以下是微機中常用的計量單位轉換:

1kb=1024b    1mb=1024kb    1gb=1024mb   1tb=1024gb    .

介紹完了cpu和儲存器,接下來便談談cpu對儲存器的讀寫。cpu在進行資料的讀寫操作時必須與外部器件進行一下三類的資訊互動:1、儲存單元的位址(位址資訊);2、器件的選擇,讀或寫的命令(控制資訊);3、讀或寫的資料(資料資訊)。三類互動分別會用到位址匯流排、控制匯流排和資料匯流排,這三種匯流排的寬度標誌了這個cpu不同方面的效能:

1、  位址匯流排的寬度決定了cpu的定址能力(能尋2^n個b);

2、  控制匯流排決定了cpu對其它器件的控制能力。邏輯上的記憶體位址空間的容量便受到cpu定址能力的限制。

3、  資料匯流排的寬度決定了cpu進行資料傳送時的一次資料傳送量(能傳n/8個b);

這裡單獨來寫一下第二步控制資訊。起初我對「器件的選擇」這一步驟很不理解,為什麼cpu在控制資訊時要選擇乙個儲存器晶元呢?於是我上網查閱了有關儲存器晶元的資料,網上是這麼說的——「儲存晶元,是嵌入式系統晶元的概念在儲存行業的具體應用……」半小時後,乙個字都沒看懂的我回來了。終於,我在課本第10頁關於各類儲存器晶元的介紹中找到了答案。原來,不同的儲存器晶元有不同的功能,它們從讀寫屬性上看分為兩類:隨機儲存器ram(可讀可寫)和唯讀儲存器rom(聽名字就知道功能了)。cpu按每次執行命令所需的不同的功能選擇相應的儲存器,由儲存器轉手將選定儲存單元中的資料交給資料線傳出。(課後我還就此點請教了老師,值得注意的是,讀資料時資料由儲存器通過資料線傳出,而寫入資料時資料由cpu通過資料線寫入。每個儲存器執行功能時只執行乙個功能,不能同時讀寫,故而寫入時不用ram。至於寫入資料時選儲存器晶元有什麼用,sorry啊老師我好像沒有聽懂【哭泣】。)

不知不覺寫了這麼多,不敢再羅嗦了,最後寫一下我學完這章的疑問吧:儲存單元中的資料被資料線傳回cpu後是怎麼到暫存器的呢?

組合語言 a 基礎知識

本專題是學習王爽的 組合語言 第三版 的學習筆記。這本書按照作者的意思是要教會讀者怎樣去循序漸進地學習組合語言。首先,什麼是組合語言呢?組合語言是人和計算機溝通的最直接方式,它描述了機器最終所要執行的指令序列。作為一門底層的語言,其可以直接與計算機進行互動。注意此書中如果沒有能夠完成檢測點的內容,則...

組合語言基礎知識

1.1機器語言 1.機器語言機器語言是機器指令的集合。2.cpu central processing unit,處理單元 cpu是一種微處理器,由於硬體設計和內部結構的不同,就需要不同的電平脈衝來控制使它工作,所以每一種微處理器都有自己的機器指令集,也就是機器語言。1.2組合語言的產生 1.例如,...

組合語言 基礎知識

組合語言是直接在硬體之上工作的程式語言,首先要了解硬體系統的結構,才能有效的應用組合語言對程式設計。機器語言就是機器指令的集合 機器指令展開來講就是一台機器可以正確執行的指令 主體是彙編的指令,機器指令便於記憶的書寫格式。彙編指令是機器指令的助記符 暫存器簡單的說是cpu中可以儲存資料的器件,乙個c...