templeos-info/public/Wb/Demo/Asm/DivByHand.HC

22 lines
326 B
HolyC
Raw Normal View History

2024-03-16 10:26:19 +00:00
asm {
_DIV_U64_BY_U64::
PUSH RBP
MOV RBP,RSP
XOR RDX,RDX
MOV RCX,64
MOV RAX,SF_ARG1[RBP]
MOV RBX,SF_ARG2[RBP]
@@1: SHL1 RAX
RCL1 RDX
CMP RBX,RDX
JA @@2
INC RAX
SUB RDX,RBX
@@2: LOOP @@1
POP RBP
RET1 16
}
_extern _DIV_U64_BY_U64 I64 DivU64ByU64(I64 dividend,I64 divisor);
"123456/10=%d\n",DivU64ByU64(123456,10);