組合語言讀書筆記(7 更靈活的定位記憶體位址的方法)

2021-10-08 11:19:51 字數 1113 閱讀 1430

組合語言(第三版,王爽)讀書筆記

and指令:邏輯與,按位進行與運算and al,00111011b

or指令:邏輯或,按位進行或運算or al, 00100000b

'......'的方式指明資料是以字元的形式給出的,編譯器將他們轉化位ascii碼

例如db 'unix』相當於db 75h,6eh,49h,58h

小寫字母的ascii碼減去20h就可以得到大寫字母

大寫字母的ascii碼加上20h就可以得到小寫字母

就ascii碼的二進位制形式來看,除第5位(位數從0開始)外,大寫和小寫字母的其它各位都一樣,大寫字母第5位為0,小寫字母第5位為1

and al,11011111b將第5位變為0,變為大寫字母

or al,00100000b將第5位變為1,變為小寫字母

[bx+idata]表示乙個記憶體單元,它的偏移位址為(bx)+idata(bx中的數值加上idata)

例如mov ax, [bx+200]表示 (ax)=((ds)*16+(bx)+200)

也可以寫成:mov ax,[200+bx],mov ax,200[bx],mov ax,[bx].200

對於如下資料

datasg segment

db 'basic'

db 'minix'

datasg ends

datasg中的2個字串,乙個起始位址為0,另乙個為5;可以將它們看成2個陣列,使用[bx+0] ,[bx+5]的方式來訪問或者寫成0[bx],5[bx]

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

它們2個含義相似,[bx+si]表示乙個記憶體單元,偏移位址為(bx)+(si)

它們同樣含義相似,[bx+si+idata]表示乙個記憶體單元的偏移位址為(bx)+(si)+idata

組合語言學習筆記(7) 更靈活地定位記憶體

1 and指令 邏輯與指令,按位進行與運算,例如 mov al,01100011b and al,00111011b計算後的al結果為 00100011b 計算過程 0 1 1 0 0 0 1 1 b 0 0 1 1 1 0 1 1 b 0 0 1 0 0 0 1 1 b可以看出,邏輯與運算兩個二進...

筆記 組合語言 第7章 更靈活地定位記憶體的方法

7.1 and 和 or 指令 1 and 指令 邏輯與指令,按位進行與運算。示例 mov al,01100011b and al,00111011b 執行結果 al 00100011b 2 or 指令 邏輯或指令,按位進行或運算。示例 mov al,01100011b or al,00111011...

組合語言 第7章 更靈活的定位記憶體位址的方法

7.1 and和or 指令 1 and 指令 邏輯與指令,按位進行與運算。2 or 指令 邏輯或指令,按位進行或運算。7.2 關於ascii碼 ascii是一種編碼方案,就是一套規則,它約定了用什麼樣的資訊來表示現實物件。例 61h 表示 a 7.3以字元形式給出的資料 用 的方式指明資料時以字元的...