W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
ADC 和SBB 指令使用了進(jìn)位標(biāo)志位里的信息。ADC指令執(zhí)行下面的操作:
operand1 = operand1 + carry flag + operand2
SBB執(zhí)行下面的操作:
operand1 = operand1 - carry flag - operand2
這些如何使用?考慮在EDX:EAX和EBX:ECX中的64位整形的總數(shù)。下面的代碼將總數(shù)儲(chǔ)存到EDX:EAX中:
1 add eax, ecx ; 低32位相加
2 adc edx, ebx ; 高32位帶以前總數(shù)的進(jìn)位相加
減法也是一樣的。下面的代碼用EDX:EAX減去EBX:ECX:
1 sub eax, ecx ; 低32位相減
2 sbb edx, ebx ; 高32位帶借位相減
對(duì)于實(shí)際上大的數(shù)字,可以使用一個(gè)循環(huán)(看小節(jié)2.2)。對(duì)于一個(gè)求和的循環(huán),對(duì)于每一次重復(fù)(替代所有的,除了第一次重復(fù))使用ADC指令將會(huì)非常便利。通過(guò)在循環(huán)開(kāi)始之前使用CLC (CLear Carry(清除進(jìn)位))指令初始化進(jìn)位標(biāo)志位為0,可以使這個(gè)操作正確執(zhí)行。如果進(jìn)位標(biāo)志位為0,那
么ADD和ADC指令就沒(méi)有區(qū)別了。這個(gè)在減法中也是一樣的。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: