1. 程式人生 > >匯編語言程序設計第六章

匯編語言程序設計第六章

不同 star ostc cat 可執行 block 文件的 代碼 定義

6.1在代碼段中使用數據

dw,即“define word”。是定義字型數據。dw定義了8個字符數據,數據之間以逗號分隔。

因為cs前16個內存單元用來存放數據,所以程序應從這16個內存單元後開始執行。1.用start:放在程序開始處;2.在最後一個end處加上start(start只是標號,也可以自定字符)。

end start指明程序的入口,被轉化為入口地址,存儲在可執行文件的描述信息中,加載時程序從描述信息中讀到入口地址,設置CS:IP。

6.2在代碼段中使用棧

dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h;dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0(16個字型數據作為棧段)。將CS:10~CS:2F內存單做棧來用,SS:SP指向棧底CS:30。

6.3將數據、代碼、棧放入不同的段

問題:(1)把他們放到一個段中使程序顯得混亂;

(2)前面程序中處理的數據很少,用到棧的空間也少,加上沒有多長的代碼,放到一個段裏面沒有問題。但如果數據、代碼、棧需要的空間超過64KB,就不能放在一個段中。

註意:

(1)不同段要有不同段名

(2)段名相當於一個標號,代表了段地址,是數字形式而非寄存器形式,所以 mov ds,data錯誤

(3)assume是偽指令,cs:code,ds:data,ss:stack,不會將相應寄存器和段code、stack、data鏈接

匯編語言程序設計第六章