組合語言 第6 8章

2022-06-03 23:27:08 字數 1024 閱讀 6773

6.1 在**段中使用資料:在程式中定義我們希望處理的資料,這些資料就會被編譯、連線程式作為程式的一部分寫到可執行檔案中。當可執行檔案中的程式被加入記憶體時,這些資料也同時被加入記憶體中,我們要處理的資料也就自然而然的獲得了儲存空間。

6.2 在**段中使用棧:程式執行時,定義的資料存放在cs:0~cs:f單元中,共8個位元組單元。依次將,將這8個字單元。依次將這8個字,單元的資料入棧,按後再出棧到這8個字單元中,從而實現資料的逆序存放。

6.3 將資料、**、棧放入不同的段:用和定義**段一樣的方法來定義多個段,然後在這些段裡面定義需要的資料,或通過定義資料來取得棧空間。

7.4 大小寫轉換的問題:小寫字母的ascii碼值比大寫字母的ascii碼值大20h。

7.5 [bx+idata]:指令mov ax,[bx+200]的含義:將乙個記憶體單元的內容送入ax,這個記憶體單元的長度為2個位元組(即單元),存放乙個字,偏移位址為bx中的數值加上200,段位址在ds中。數位化的描述為:

(ax)=((ds)*16+(bx)+200)。

7.8 [bx+si]和[bx+di]: [bx+si]和[bx+di]含義相似,以 [bx+si]為例: [bx+si]表示乙個記憶體單元,他的偏移位址為(bx)+(si)(即bx中的數值加上si中的數值)。

7.10 不同定址方式的靈活運用:我們可以考慮將需要暫存的資料放到記憶體單元中,需要使用的時候,再從記憶體單元中恢復。這樣我們需要開闢一段記憶體空間。

一般來說,在需要暫存資料的時候,我們都應該使用棧。

8.2 機器指令處理的資料在什麼地方:在機器指令這一層來講,並不關心資料的值多少,而關心指令執行前一刻,它將處理的資料所在的位置。指令在執行前,所要處理的資料可以在3個地方:cpu內部、記憶體、埠。

8.4 定址方式:

8.9 dup:dup是乙個操作符,在組合語言中同dp、dw、dd等一樣,也是由編譯器識別處理的符號。他是和dp、dw、dd等資料定義偽指令配合使用的,用來進行資料的重複。

組合語言 第14章

第十四章 埠 pc機中,和cpu通過匯流排相連的晶元除了各種暫存器外,還有以下三種晶元 1 各種介面卡 如網絡卡 顯示卡 上的介面晶元,他們控制介面卡進行工作 2 主機板上的介面晶元,cpu通過他們對部分外設進行訪問 3 其他晶元,用來儲存相關系統資訊,或進行相關的輸入輸出處理。上述三種晶元都有一組...

組合語言 第14章 埠

14.1 埠的讀寫 注意 在in 和 out 指令中,只能使用ax 或 al 來存放從埠中讀入的資料或要傳送到埠中的資料。訪問8位埠時用al,訪問16位埠時用ax。14.2 cmos ram 晶元 pc機中,有乙個cmos ram 晶元,一般簡稱cmos.晶元特徵如下 1 包含1個實時鐘和1個128...

組合語言第10章筆記

call 和 ret 指令都是轉移指令,它們修改ip,或同時修改cs和ip。ret指令用棧中的資料,修改ip的內容,實現近轉移 retf指令用棧中的資料,修改cs和ip的內容,實現遠轉移。ret指令相當於 pop ip retf 指令相當於 pop ip pop cs call指令 1 將當前的ip...