7 4 與或運算解決大小寫轉換問題

2021-09-25 07:47:44 字數 801 閱讀 8848

如何使用and和or指令進行大小寫轉換

在ascii碼中,大小寫的編碼總是間隔了32,在二進位制中剛好表現在第6位,如00100000與00000000就相差了32。

assume cs:code,ds:data

data segment

db 'linux'

db 'kevinzheng'

data ends

code segment

start:

mov ax,data

mov ds,ax

mov bx,0

mov cx,5

s:mov al,[bx]

and al,11011111b

mov [bx],al

inc bx

loop s

mov cx,10 ;bx保持不變

可以看到前15個偏移位址的記憶體單元都存放了資料,等待被大小寫轉換

轉換成功

巧用位運算實現大小寫轉換

今天看王爽老師的 組合語言 時,很有收穫,不論是技術還是思考方式。任務是將字串進行大小寫轉換,但是還暫時不會用分支判斷語句 而且這樣的效率也不是最高的,有點類似於高階語言了 如果乙個問題的解決方法,使我們陷入一種矛盾之中。那麼,很可能是我們考慮問題的出發點有了問題,或是說,我們起初運用的規律並不適合...

C 大小寫轉換 與 位運算的 操作

c c 中可以使用 isalpha 是否為字母 isdigit 是否為數字 islower 是否小寫 isupper 是否大寫 isalnum 是否為英文或數字 同時對於字母也可以使用 tolower toupper 進行大小寫轉換 大小寫轉換 int main 最近看到乙個很有趣的轉換方式 我們可...

用模運算實現字母大小寫轉換

輸入乙個字母實現大小寫轉換,若輸入不為字母重複出入,直到輸入為字母為止,並實現大小寫轉換。要求使用模運算。我看了小甲魚之後寫的 注意此處模運算物件為二進位制。a的ascii碼為65,轉換為二進位制為1000001 z的ascii碼為90,轉換為二進位制為1011010 a的ascii碼為97,轉換為...