天天看點

彙編語言學習筆記(四)

 1.一個彙編語言程式從寫出到最終執行的簡要過程?

    第一步:編寫彙編源程式

    第二步:對源程式進行編譯連接配接(結果是:産生了一個可在作業系統中運作的可執行檔案)

    第三步:執行可執行檔案中的程式

2.在彙編語言源程式中,包含兩種指令,一種是彙編指令,一種是僞指令。

         彙編指令是有對應的機器碼的指令,可以被編譯為機器指令,最終為CPU所執行。

         僞指令沒有對應的機器指令,最終不能被CPU所執行。僞指令是由編譯器來執行的指令,編譯器根據僞指令來進行相關的編譯工作。

3.僞指令的種類:

   ①.XXX segment     XXX ends

   ②.end

   ③.assume

4.程式的結構

   ①定義一個段,名稱為abc

       abc segment

              :

       abc end

    ②在這個段中寫入彙編指令,來實作我們的任務

       abc segment

           mov ax,2

           add  ax,ax

           add  ax,ax

       abc end

    ③然後,要指出程式在何處結束

        abc segment

           mov ax,2

           add  ax,ax

           add  ax,ax

       abc end

       end

     ④abc當作代碼段來用,是以,應該将abc和cs聯系起來

      assume  cs:abc

         abc segment

           mov ax,2

           add  ax,ax

           add  ax,ax

       abc end

       end

5.程式傳回

   mov ax,4c00H

   int 21H

   這兩條指令所實作的功能就是程式傳回,在目前階段,我們不必去了解int 21H的含義和mov ax,4c00H的含義。

6.編譯源程式和連接配接成可執行檔案

   用到的編譯器是:微軟的masm5.0   masm.exe

   用到的連接配接器是:微軟的Overlay Linker3.60  Link.exe

   編譯源程式.asm,生成的目标檔案.obj,中間會生成中間檔案.lst和.crf,可以不用生成這些檔案。

   連接配接目标檔案.obj,生成可以執行檔案.exe,中間會生成中間檔案.map和.lib,也可以不用生成這些檔案。

7.程式執行過程的跟蹤

   在dos下,執行指令:

   debug  檔案名稱.exe    在debug下運作,并跟蹤程式執行過程

   -r    可以檢視,把.exe程式加載進記憶體後,哥哥寄存器的設定情況

   -u   可以以彙編代碼的形式檢視,記憶體中各個位址中存放的機器碼

   -t    可以單步執行,并跟蹤程式的運作情況

 8. 程式被裝入記憶體的什麼地方?

    ①程式加載後,ds中存放着程式所在記憶體區的段位址,這個記憶體區的偏移位址為0,則程式所在的記憶體區的位址為ds:0

    ②這個記憶體區的前256個位元組中存放的是PSP,DOS用來和程式進行通信。從256位元組處向後的空間存放的是程式。

        從ds中可以得到PSP的段位址SA,PSP的偏移位址為0,則實體位址為SA*16+0。 

繼續閱讀