組合語言 王爽第七章

2021-10-22 17:43:30 字數 1453 閱讀 6111

and指令:邏輯與指令,按位進行與運算。兩個位多是1才為1,其他情況都為0。

比如 and al,10111111b指令將al的第六位設為0其位不變。

or指令:邏輯或指令,按位或指令。兩個位置多是0才為0,其他情況多是1。比如 or al 10000000將al的第八位設為1,其他位保持不變。

在計算機中所有的資訊都是二進位制,而人們能理解的資訊是已經具有約定意義的字元,所以我們將字元編碼為ascii碼。編碼是一種規則,規定了哪些數碼與哪些數字意義對飲,比如在ascii碼規定65為a,97為a。

我們可以在匯程式設計序中用』…'的方式指明資料以字元的形式給出。編譯器將它們轉化為相對應的ascii碼,比如 mov al 『b』相當於 mov al,62h。

【bx+idata】idata我們之前規定為常量,[bx+idata]的偏移位址相當於(bx)+idata,段位址還是在ds中。 有了這個表示式我們便可以從高階的結構來看待所要處理的資料。可以將要處理的資料看成陣列來處理。比如有兩個字串要處理可以把這兩個字串看成兩個陣列。第乙個陣列的偏移位址可以寫成[bx+idata],其中idata是這個陣列的起始偏移位址。第二個陣列的偏移位址也可以這樣寫。

我們看一下指令mov ax,[bx+200]的含義:

將乙個段位址在ds,偏移位址為bx中的值加上200的記憶體單元的字型資料傳送給ax中。

該指令也可以寫成如下的格式:

mov ax,[200+bx]

mov ax,200[bx]

mov ax,[bx].200

si和di是8086cpu中和bx功能相近的暫存器,si和di不能夠分成兩個8位暫存器來使用。

這兩個暫存器也可以同時運用到表示偏移位址的表示式中,[bx+si]和[bx+di]的偏移位址是在表示中的兩個暫存器中的值相加。

有了以上偏移值表示式我們可以更好看待資料如何處理。

比如指令mov ax,[bx+si]

將乙個段位址為ds偏移位址為bx和si中的值相加的儲存單元的字型資料傳送給ax

該指令也可以寫成如下的格式:

mov ax,[bx][si]

指令mov ax,[bx+si+idata]的含義如下:

將乙個段位址為ds,偏移位址為bx+si+data的值的記憶體單元的字型資料傳送給ax。

該指令也可以寫成如下格式:

mov ax,[bx+200+si]

mov ax,[200+bx+si

mov ax,200[bx][si]

mov ax,bx.200[si]

mov ax,[bx][si].200

[idata]用乙個常量來表示位址,可用於直接定位乙個記憶體單元。

[bx]用乙個變數來表示記憶體位址,可用於直接定位乙個記憶體單元

[bx+idata]用乙個變數和常量表示位址,可在乙個起始位址的基礎上用變數間接定位乙個記憶體單元

[bx+si]用兩個變數表示位址

[bx+si+idata]用兩個編號和乙個常量表示位址

王爽 組合語言 第七章檢測題分析

第7章彙編測試題目 共3道單選題目 1 生成exe之後用debug載入後,檢視暫存器內容如下 ds 0b2d es 0b2d ss 0b3d cs 0b3e ip 0000 程式的起始位址的段位址是 3 1 0b3e 2 0b2d 3 0b3d 4 0 但為什麼cs是0b3呢?不清楚。2 下列指令不...

組合語言程式設計第七章

一 and和or指令 and指令 邏輯與指令,按位進行與運算。通過該指令可以將操作物件的相應位設為0,其他位不變。or指令 邏輯或指令,按位進行或運算。通過該指令可以將操作物件的相應位設為1,其他位不變。二 關於ascii碼 三 以字元形式給出的資料 在匯程式設計序中,用 的形式指明資料是以字元的形...

組合語言(王爽)實驗七

power idea公司從1975年到1995年的基本情況如下 年份收入 千美元 雇員人均收入 千美元 1975163 1976227 1977 3829 1978 135613?1979 239028?1980 800038?1995 5937000 17800 程式中已經定義好了這些資料,程式設...