3,881
社区成员
发帖
与我相关
我的任务
分享BYTE 与 cha 的 区别
////////////////////////
// Protect registers' data
PUSH EAX
PUSH EBX
PUSH EDX
PUSH ESI
PUSH EDI
PUSH ECX
////////////////////////
// Start big int add
XOR EBX,EBX
MOV EAX,addend32
MOV EDX,[EAX] // EDX stores Int32 addend data
MOV EDI,rslt48 // EDI stores Int48 result data's address
MOV ESI,augend48 // ESI stores Int48 augend data's address
ADD EDI,5
ADD ESI,5
CLC
CLD
MOV ECX,6
PUSHF
NEXT_BYTE:
MOV AL,[ESI]
POPF
ADC AL,DL
PUSHF
MOV [EDI],AL
DEC ESI
DEC EDI
SAR EDX,8
LOOP NEXT_BYTE
POPF
////////////////////////
// Restore registers' data
POP ECX
POP EDI
POP ESI
POP EDX
POP EBX
POP EAX