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...