1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
@micropython.asm_rv32
def sdiv(a0, a1):
div(a0, a0, a1)
@micropython.asm_rv32
def udiv(a0, a1):
divu(a0, a0, a1)
@micropython.asm_rv32
def srem(a0, a1):
rem(a0, a0, a1)
@micropython.asm_rv32
def urem(a0, a1):
remu(a0, a0, a1)
print(sdiv(1234, 3))
print(sdiv(-1234, 3))
print(sdiv(1234, -3))
print(sdiv(-1234, -3))
print(udiv(1234, 3))
print(udiv(0xFFFFFFFF, 0x7FFFFFFF))
print(udiv(0xFFFFFFFF, 0xFFFFFFFF))
print(srem(1234, 3))
print(srem(-1234, 3))
print(srem(1234, -3))
print(srem(-1234, -3))
print(urem(1234, 3))
print(urem(0xFFFFFFFF, 0x7FFFFFFF))
print(urem(0xFFFFFFFF, 0xFFFFFFFF))
@micropython.asm_rv32
def m1(a0, a1):
mul(a0, a0, a1)
@micropython.asm_rv32
def m2(a0, a1):
mulh(a0, a0, a1)
@micropython.asm_rv32
def m3(a0, a1):
mulhu(a0, a0, a1)
@micropython.asm_rv32
def m4(a0, a1):
mulhsu(a0, a0, a1)
print(m1(0xFFFFFFFF, 2))
print(m2(0xFFFFFFFF, 0xFFFFFFF0))
print(m3(0xFFFFFFFF, 0xFFFFFFF0))
print(m4(0xFFFFFFFF, 0xFFFFFFF0))
|