組合語言 前言

2021-07-02 05:43:12 字數 1245 閱讀 6624

1,組合語言:早期程式設計師發現使用機器語言(二進位制)來操作計算機很麻煩,難以看懂。於是組合語言就產生了,簡單點說它其實就是用一些助記符來標示對應的機器語言,便於閱讀和記憶。例如:機器指令1000100111011000表示把暫存器bx的內容送到ax中,而對應的彙編**就是 mov ax, bx。

2,匯程式設計序的工作過程一般是如下圖:

由3類指令組成:(1)彙編指令,機器碼的助記符,有對應的機器碼。(2)偽指令,沒有對應的機器碼,由編譯器執行,計算機不執行。(3)其它符號,如+,-,*,/等,也是由編譯器識別,沒有對應的機器碼。後面兩個部分就是由編譯器去工作,算出結果給計算機直接用。

3,計算機總的工作原理:首先計算機的所有操作計算都是由cpu控制,它裡面有很多暫存器和計算器(早期有:加法器,乘法器,一般減法通過加法算,除法慢慢算…),這是計算機大腦,而它要操作的資料**是從記憶體中獲取,計算機對記憶體進行了編號,以乙個位元組為儲存單元,從零開始編號,計算機就是通過這個編號來查詢對應的資料的。然後cpu和記憶體之間傳遞資料的通道就是我們所說的匯流排,即一些導線,能傳遞低電平或高電平,以此來標識二進位制資料0或1,一根導線即對應乙個二進位制位。匯流排包括:位址匯流排,資料匯流排,控制匯流排三種。位址匯流排:傳遞記憶體位址資料的通道,條數越多,定址範圍越大。資料匯流排:傳遞資料的通道,條數越多,一次傳遞的資料位越多,如32根,一次就可以傳遞4位元組的資料。控制匯流排:cpu對外部器件的控制就是通過控制匯流排來進行的,條數越多,提供的控制種類就越多。示例:將記憶體位址為3的單元內資料傳遞到cpu暫存器ax中,彙編指令為:mov ax, [3],對應的計算機內部執行示例圖如下:

注釋:最終儲存到記憶體中的資料都是二進位制位了,沒有操作指令與資料的區別。

4,儲存大小進製換算

1byte = 8bit,

1kb = 1024b,

1mb = 1024kb,

1gb = 1024mb,

1t = 1024gb.

5,bois(「basic input output system」):本質就是乙個軟體(程式),寫死到了主機板上的rom晶元中。它儲存著計算機最重要的基本輸入輸出的程式、系統設定資訊、開機後自檢程式和系統自啟動程式。 其主要功能是為計算機提供最底層的、最直接的硬體設定和控制。當今,此系統已成為一些病毒木馬的目標。一旦此系統被破壞,其後果不堪設想。

組合語言 AT T組合語言

這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...

組合語言 彙編指令

功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...

組合語言 《組合語言》王爽 實驗一

從 1000 0 開始寫入命令 a 1000 0 mov ax,4e20 add ax,1416 mov bx,2000 add ax,bx mov bx,ax add ax,bx mov ax,001a mov bx,0026 add al,bl add ah,bl add bh,al mov a...