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