Assembler 字串一致性比較

2021-09-27 12:55:14 字數 1520 閱讀 4364

masm:microsoft assembler

lea ***:load effective address

cmpsb:compare string byte(位元組相減,結果送進zf)=>ds:[si] - es:[di]

repe:repeat if equal(zf=1時迴圈移位)

repne:repeat if not equal

cld:clear direction(指定比較字串時移位的方向》右 [增加])

std:set direction(指定比較字串時移位的方向》左 [減少])

jz ***:jump if zero(如果結果為0,即zf=1時,跳到***位置)

jmp ***:jump(無條件跳轉到***)

示例:

data segment

string1 db 'hello,world!'

string2 db 'hello,world!'

mess1 db 'match!',13,10,'$'

mess2 db 'no match!',13,10,'$'

data ends

code segment

main proc far

assume cs:code,ds:data,es:data

start:

mov ax,data

mov ds,ax

mov es,ax

lea si,string1

lea di,string2

cldmov cx,12

repz cmpsb

jz match

lea dx,mess2

jmp disp

match:

lea dx,mess1

disp:

mov ah,09h

int 21h

mov ah,4ch

int 21h

main endp

code ends

end start

注意事項(mess1 db 'match!',13,10,'$'):

回車, '\r' ascii碼為13, 表示將游標移至行首

換行, '\n' ascii碼為10, 表示將游標移至下一行

通常來說,'\n'就足以表示換行字串, 但由於早期微軟系統對換行的理解不同, 因為早期的dos系統中你的游標可以移至任意位置, 哪怕那裡沒有任何資料, 比如該行只有10個字元, 你仍然可以移至第20個字元的位置, 所以需要乙個\r來讓游標移到行首;

強一致性 弱一致性 最終一致性

這種方式在es等分布式系統中也有體現,可以設定主shard提交即返回成功,或者需要replica shard提交成功再返回。提到分布式架構就一定繞不開 一致性 問題,而 一致性 其實又包含了資料一致性和事務一致性兩種情況,本文主要討論資料一致性 事務一致性指acid 複製是導致出現資料一致性問題的唯...

一致性雜湊

直接貼出一篇介紹的很清楚的博文。關鍵字一致性雜湊 平衡性,單調性,分散性,負載 其實說白了,就是解決把請求分散到不同的機器上運算,怎麼做分散的平均,機器少一台多一台,或者壞掉一台,成很好的自適應和拓展。最簡單的實現分布式演算法,取模嘛,但是它就上述的一些問題,所以不算好的雜湊函式。一致性雜湊演算法,...

一致性雜湊

from 學習分布式,一致性雜湊是最最基礎的知識,所以要理解好.那什麼是一致性雜湊呢?what 1.平衡性是指 hash的結果應該平均分配到各個節點,這樣從演算法上就解決了負載均衡問題.2.單調性是指 在新增或者刪減節點時,同乙個key訪問到的值總是一樣的.3.分散性是指 資料應該分散的存放在 分布...