組合語言(第三版,王爽)讀書筆記
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以字元形式給出的資料 用 的方式指明資料時以字元的...