與其說這一章是在講如何在彙編語法上更方便的定位記憶體位址,不如說是如何在底層中抽象出一種資料結構來。
and指令:邏輯與指令,按位進行計算,全一得一
or指令:邏輯或指令,按位進行計算,逢一得一
在匯程式設計序中,以'....'
指明資料是以字元的形式給出的,編譯器將把他們轉換位相應的ascii碼。
同乙個字母的大寫寫小寫字元對應的ascii碼是不同的,他們之間相差20h。使用二進位制表示也就是相差100000b。
所以很明顯的看出來,大寫字母和小寫字母之間的區別就是第6位(位數從1開始計算)是否為1。
mov ax, [bx+200]
數學化的描述為:(ax)=((ds)*16+(bx)+200)
該指令還可以寫成如下形式:
mov ax, [200+bx]
mov ax, 200[bx]
mov ax, [bx].200
在8086中和bx功能相近的暫存器,bx是預設的資料段偏移位址暫存器。
si和di都可以作為資料段偏移位址暫存器來使用,與bx的用法相同。但si和di不能夠分成兩個8位暫存器。
數學化的描述為:(ax)=((ds)*16+(bx)+(si))
也可以是以下格式:
mov ax, [bx][si]
不必多說,應該很容易明白。
[idata]用乙個常量來表示位址,用於直接定位乙個記憶體單元
[bx]用乙個變數來表示記憶體位址,用於間接定位乙個記憶體單元
[bx+idata]用乙個變數和常量表示位址,在乙個起始位址的基礎上偏移
[bx+si]用兩個變數表示位址
[bx+si+idata]用兩個變數和乙個常量表示位址
問:如何實現乙個巢狀的迴圈
答:使用另外乙個暫存器或者使用記憶體展示儲存cx的值,在遇到對應的迴圈語句時將其取出。
來自為知筆記(wiz)
更靈活的定位記憶體位址的方法
1 and和or指令 and指令 邏輯與指令,按位進行與運算 技巧 通過該指令可將操作物件的相應位設為0,其他位不變 or指令 邏輯或指令,按位進行或運算 技巧 通過該指令可將操作物件的相應位設為1,其他位不變 2 ascii碼 編碼方案,就是一套規則,它約定了用什麼樣的資訊來表示現實物件。例 61...
彙編 更靈活的定位記憶體位址
and 按位與 or 按位或 db unix db 75h,6eh,49h,58h 大小寫轉換 第5位置0,變大寫,第5位置1,變小寫 assume cs codesg,ds datasg datasg segment db bssic db minix datasg ends codesg seg...
7 更靈活的定位記憶體位址的方法
1.and指令 邏輯 與指令,按位進行與運算。與1不變,與0變0,可將物件相應位設為0.2.or指令 邏輯或指令,按為進行或運算。或1變1,或0變0,可將物件位設為1.3 bx idata 的幾種表現形式 1 mov ax,200 bx 2 mov ax,200 bx 3 mov ax,bx 200...