組合語言 源程式1 沙窩李的王

2021-09-21 18:43:12 字數 1136 閱讀 4166

1.乙個源程式從寫出到執行的過程

第一步:編寫彙編源程式。

使用文字編譯器(如 edit.記事本等)用組合語言編寫彙編源程式,產生乙個儲存源程式的文字檔案。

第二步:對源程式進行編譯連線。

對源程式進行編譯,產生目標檔案:再用連線程式對目標檔案進行連線,生成在系統中可直接執行的可執行檔案。

其中可執行檔案包括兩部分:

(1).程式(彙編指令翻譯過來的機器碼)和資料(源程式中定義的資料)

(2)程式相關描述資訊(比如程式有多大,占多大記憶體空間等)

編譯連線的結果是產生乙個可執行檔案。

第三步:在作業系統中執行可執行檔案中的程式。

作業系統會自動依照描述資訊,進行加載入記憶體(比如設定cs:ip指向第一條要執行的指令),在由cpu執行。

2.源程式

在彙編源程式中有兩種指令:一種是彙編指令,一種是偽指令。彙編指令可編譯為機器碼,最終為cpu執行,而偽指令就不能。偽指令的執行者是編譯器,編譯器是根據偽指令進行彙編工作的。

程式**現了3種偽指令:

(1):*** segment

*** ends

segment與ends是一對成對使用的偽指令,其作用是說明乙個段,切是必須使用的。segment表示乙個段的開始,ends表示乙個段的結束。其格式:

段名 segment

段名 ends。

乙個源程式是由多個段組合而成,而乙個程式中所有將被計算機處理的資訊:指令.資料.棧,被劃分到不同的段中。

(2)end

end表示乙個匯程式設計序的結束標記。編譯器在執行到end偽指令時才知道程式結束。

(3)assume

assume 暫存器名:段名

程式返回:

程式是如何執行的呢?

在dos作業系統上,乙個程式a2在可執行檔案中,必須要有乙個正在執行的程式a1,a1將a2從可執行檔案中加載入記憶體後,將cpu控制權交給程式a2,a2才能執行,此時a1暫停。

在a2執行完畢以後,cpu控制權交還a1,a1繼續執行。這個交還控制權的過程叫做:程式返回。

程式返回指令需要編寫程式時自行加在程式末尾:

mov ax,4c00h

int 21h

就是上面兩條指令了。

nmap的使用 沙窩李的王

nmap本身是乙個網路對映器,或者說linux下的網路流量計算器,後來才發展為乙個埠掃瞄器,可以用來掃瞄主機,服務,埠,計算機系統。nmap功能怎麼在linux安裝nmap 如今大多數的linux發行版,像 red hat,centos,fedoro,debian 和 ubuntu 已經在預設安裝包...

python基礎 列表 沙窩李的王

1 python列表的概述 列表是乙個有序的,可修改的,元素以逗號分割,以中括號包圍的序列。列表的索引和字串的索引類似,但不完全相同,因為列表可以修改,所以我們可以通過列表的索引來修改列表。定義列 式 變數名 元素1,元素2,元素3,列表的作用 儲存多個資料。1.2 python列表的定義以及檢視列...

組合語言的源程式執行

end 不是ends assume 假設 debug寫入 單獨編成原始檔在編譯成可執行檔案 執行命令 g go 乙個記憶體單元描述 記憶體單元長度 型別 表示乙個記憶體單元或暫存器中的內容 學習方便的約定 描述物件 描述方法 描述物件 描述方法 ax中內容0010h ax 0010h 2000 10...