我無法理解什麼是彙編的以下行做:在repz cmpsb之後,組裝指令'seta'和'setb'是做什麼的?
0x401810: repz cmps BYTE PTR ds:[rsi],BYTE PTR es:[rdi]
0x401812: seta dl
0x401815: setb al
調試後,我明白,第一個指令比較寄存器rsi
和rdi
,逐字節的字節數。
然後根據該指令設置rdx
和rax
的低位字節。
我的疑惑是,當我在線查閱這個指令時,它說seta
如果它的上面的某個值設置低位字節爲0x01,否則它的0x00。與setb
類似,如果字節低於特定值,則將該字節設置爲0x01。
我的問題是什麼價值,它與上述指令有什麼關係?
'setCC'協商標誌位,它並不關心他們是如何設置。'cmps'設置標誌位。這就是連接。 – Jester