7.1 and和or 指令
(1)and 指令:邏輯與指令,按位進行與運算。
(2)or 指令:邏輯或指令,按位進行或運算。
7.2 關於ascii碼
ascii是一種編碼方案,就是一套規則,它約定了用什麼樣的資訊來表示現實物件。例:61h 表示「a」。
7.3以字元形式給出的資料
用』…』 的方式指明資料時以字元的形式給出的,編譯器把它們轉化為相對應的ascii嗎。
7.4 大小寫轉換的問題
q:將datasg中的第一字串轉化為大寫,第二個字串轉化為小寫?
字母的大、小寫字元對應的ascii碼對比:
規律:大寫字母+20h=小寫字母,小寫字母-20h=大寫字母;
就2進製形式來看,除第5位(位數從0開始計算)外,大、小寫字母的其它各位都一樣。即:大寫字母第5位為0,小寫字母第5位為1.
程式如下:
mov ax,[bx+200]的含義:
數學化描述:ax=((ds)*16+(bx)+200)
將乙個記憶體單元的內容送入ax,這個記憶體單元的長度為2個位元組(字單元),存放乙個字,偏移位址為bx中的數值+200,段位址在ds中。
7.6 用[bx+idata]的方式進行陣列的處理
7.4節中的程式寫成如下形式:
7.7 si和di
si和di 是8086cpu中和bx功能相近的暫存器,si和di 不能分成2個8位的暫存器來使用。
q:用si 和 di 實現將字串『welcome to masm!』複製到它後面的資料區中?
7.8[bx+si] 和 [bx+di]
[bx+si]表示乙個記憶體單元,它的偏移位址為 (bx)+(si),即bx中的數值+si中的數值。
指令mov ax,[bx+si] 含義如下:
將乙個記憶體單元的內容送入ax,這個記憶體單元的長度為2位元組(字單元),存放乙個字,偏移位址為bx中的數值加上si中的數值,段位址在ds中。
數位化描述:(ax)=((ds)*16+(bx)+(si))
也可寫成mov ax,[bx] [si]
7.9 [bx+si+idata]和[bx+di+idata]
[bx+si+idata] 表示乙個記憶體單元,它的偏移位址為(bx)+(si)+idata,即bx中的數值+si中的數值+idata。
指令mov ax,[bx+si+idata] 的含義如下:
將乙個記憶體單元的內容送入ax,這個記憶體單元的長度為2位元組(字單元),存放乙個字,偏移位址為bx中的數值加上si中的數值再加上idata,段位址在ds中。
數位化描述:(ax)=((ds)*16+(bx)+(si)+idata)
該指令也可寫成如下形式:
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
7.10 不同的定址方式的靈活應用
q:將datasg段中每個單詞改為大寫字母?
用棧暫存外層迴圈cx 值
筆記 組合語言 第7章 更靈活地定位記憶體的方法
7.1 and 和 or 指令 1 and 指令 邏輯與指令,按位進行與運算。示例 mov al,01100011b and al,00111011b 執行結果 al 00100011b 2 or 指令 邏輯或指令,按位進行或運算。示例 mov al,01100011b or al,00111011...
組合語言學習筆記(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 更靈活的定位記憶體位址的方法)
組合語言 第三版,王爽 讀書筆記 and指令 邏輯與,按位進行與運算and al,00111011b or指令 邏輯或,按位進行或運算or al,00100000b 用 的方式指明資料是以字元的形式給出的,編譯器將他們轉化位ascii碼 例如db unix 相當於db 75h,6eh,49h,58h...