Files
TempleOS-Rijn/SparrowOS/Demo/Asm/DivByHand.CPP
T
2018-09-08 21:45:28 +02:00

23 lines
310 B
C++

asm {
DIV_U64_BY_U64::
ENTER 0
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
LEAVE
RET1 16
}
_extern DIV_U64_BY_U64 I64 DivU64ByU64(I64 dividend,I64 divisor);
"123456/10=%d\n",DivU64ByU64(123456,10);