1.前面講到要使用一段安全的空間0:200~0:300,可這段空間的容量只有256個位元組,如果我們需要的空間超過256個位元組該怎麼辦呢?
將資料、**、棧放入不同的段中。
2.「dw」的含義是定義字型資料。dw即define word。
「db」的含義是定義位元組型資料。dw即define byte。
3.**end的作用:
end 除了通知編譯器程式結束外,還可以通知編譯器程式的入口在什麼地方。
start:
end start 這兩條語句決定了程式的入口在哪,即cs在哪。
4.如果資料、棧和**需要的空間超過64kb,就不能放在乙個段中(乙個段的容量不能大於64 kb,是我們在學習中所用的8086模式的限制,並不是所有的處理器都這樣)。
5.cpu到底如何處理我們定義的段中的內容,是當作指令執行,當作資料訪問,還是當作棧空間,完全是靠程式中具體的彙編指令,和彙編指令對cs:ip、ss:sp、ds等暫存器的設定來決定的。
組合語言學習筆記
學習參考資料 大灰狼 講彙編 資料匯流排,位址匯流排,控制匯流排。位址匯流排有多少條就決定了cpu最大的記憶體使用量。80386有32位位址匯流排,所以它的定址能力就是4g.暫存器 通用暫存器,段暫存器,ax暫存器 通用暫存器,存放資料。高位位元組ah,低位位元組al。實體地址表示方法 位址加法器,...
組合語言學習筆記
cs ip是指向程式執行的位置 code segment ds 儲存記憶體中取資料的位址,data segment ss sp是指向堆疊的位置 stack segment cx 裡儲存的是loop執行的標誌 loop執行時,cx cx 1,若此時cx裡值為0,則跳出loop,否則繼續loop 初始 ...
組合語言學習筆記
編譯下面的程式,生成列表檔案,觀察標號在機器碼中變成了什麼?小組中的同學都說一說,說出你看到了什麼,說出你的疑問,讓小夥伴們一起解決。下面是程式 這個程式的功能沒有意義,只用於觀察程式中的標號 assume cs codesg,ds datasg datasg segment a db 1,2,3,...