第四章(筆記總結)

2021-06-13 17:15:46 字數 1929 閱讀 1884

簡單的組合語言源程式基本語法:

assume cs:code

code segment

mov ax , 0001h

add ax , ax

mov ax , 4c00h

int 21h

code ends

end

在組合語言源程式中,包含兩種指令分別是,彙編指令和偽指令:

彙編指令:

1)(mov ax , 0001h ·······int  21h)這些指令有對應的機器碼,可以編譯成機器指令,最終為cpu所執行。

2)mov ax , 4c00h

int 21h

這兩行指令時作為乙個程式的返回(程式返回就是當乙個程式結束後,將cpu的控制權交給使它得以執行的程式)

偽指令:

1)assume 的作用是將有特定用途的段和相關的暫存器關聯起來。

2)*** segment ··········· *** ends 用於定義乙個段,segment為段的起始,ends是段的結束。而每個段都有乙個標識,***就是這段的識別符號。

3)end 標誌著程式的結束。

匯程式設計序從寫出到執行的過程:

程式設計 -> 源程式(.asm)-> 目標程式(.obj) -> 連線 -> 執行程式(.exe)-> 載入 -> 執行

練習:

assume cs:code

code segment

mov ax , 2000h

mov ss , ax ; 棧空間所在的段位址

mov sp , 0

add sp , 10 ;偏移位址

pop ax ;將記憶體中的棧空間的資料讀取到暫存器中

pop bx

push ax ;將暫存器中的資料傳送到記憶體中的棧空間

push bx

pop ax ;將記憶體中的棧空間的資料讀取到暫存器中

利用debug把程式載入到記憶體,同時給出記憶體中2000:0000 起的16個位元組

是定義棧空間所在的段位址

是定義棧空間的偏移位址(在debug中貌似把mov sp , 0 的指令執行隱式進行了)

把棧空間裡的資料進行讀取

把暫存器中的資料壓進棧空間

由於棧空間的操作時以字為單位,所以由圖可見:

棧空間操作之前:

棧空間操作之後:

2000:000a和2000:000c的以字型別的資料發生了互換

再次進行

pop ax 

pop bx

把棧空間裡的資料進行讀取

暫存器ax和bx的資料發生了互換

第四章總結

1.對貪心演算法的認識 貪心演算法在求解問題時,不從整體上考慮,而是得到某種意義上的區域性最優解,做出當前看來是最好的選擇。每次的選擇都會依賴之前作出的選擇,而對後面的選擇不會產生影響。它具有最優子結構的性質,即問題的最優解包含其子問題的最優解。但貪心演算法不是對於所有的問題都能得到整體最優解,最重...

第四章筆記

一.引入樣式 1.行內樣式表 2.內部樣式表 在head標籤裡面,title標籤下面 優點方便在同頁面中修改樣式 缺點不利於在多頁面間共享復用 及維護,對內容與樣式的分離也不夠徹底 3.外部樣式表 嵌入式匯入式 嵌入式和匯入式的區別 1.標籤屬於xhtml,import是屬於css2.1 2.使用鏈...

第四章筆記

氣泡排序 從大到小 基本思想 兩層迴圈來完成,每一輪比較之後,把最小數沉到陣列的末尾,之後進行下一輪的比較,比較的次數減少一次,因為最後的數字已經是最小 外層迴圈控制比較的輪數,陣列的長度減一次 內層迴圈進行比較。int testarr for int i 1 i testarr.length 1 ...