1. 程式人生 > >7 更靈活的定位記憶體地址的方法

7 更靈活的定位記憶體地址的方法

1、and和or指令

(1)and指令:邏輯與指令,按位進行與運算

通過該指令可將操作物件的相應位設為0,其它位不變

(2)or指令:邏輯或指令,按位進行或運算

通過該指令可將操作物件的相應位設為1,其它位不變

2、關於ASCII碼

計算機中通常被採用的方案,61H代表‘a',41H代表‘A’,如果我們想要在顯示器上看到‘a’,就要給顯示卡提供‘a’的ASCII碼,61H如何提供?當然是寫在視訊記憶體中

3、大小寫轉換問題

如果我們寫一串字串,類似於‘JAKLAsadaASDA’既有大寫又有小寫的不規則的字串,怎樣把他們都轉換成大寫?

我們不用到判斷語句怎樣做到?

‘A’      41         01000001

‘a’      61         01100001

我們發現大寫字母 = 小寫字母 - 20H,大寫字母的ASCII碼的第五位為0,小寫字母的第五位為1。這樣,一個字母,不管它原來是大寫還是小寫,將他的第五位置0,他就必將變為大寫字母,將他的第五位置1,他就必將變為小寫字母,在這個方法中,我們不需要在處理前判斷字母的大小寫

我們可以用and指令!

and 'a' 11011111B   //偽指令

4、不同的定址方式的靈活運用

(1)[idata]用一個常量來表示地址,可用於直接定位一個記憶體單元;

(2)[bx]用一個變數來表示記憶體地址,可用於間接定位一個記憶體單元;

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

(4)[bx+si]用兩個變量表示地址;

(5)[bx+si+idata]用兩個變數和一個常量表示地址