URL
https://opencores.org/ocsvn/zet86/zet86/trunk
[/] [zet86/] [trunk/] [tests/] [18_div.s] - Diff between revs 39 and 49
Only display areas with differences |
Details |
Blame |
View Log
Rev 39 |
Rev 49 |
.code16
|
.code16
|
start:
|
start:
|
movw $208, %sp
|
movw $208, %sp
|
|
|
# Exception 0 handler
|
# Exception 0 handler
|
movw $0x1000, (0)
|
movw $0x1000, (0)
|
movw $0xf000, (2)
|
movw $0xf000, (2)
|
|
|
movw $208, %bp
|
movw $208, %bp
|
|
|
# div word tests
|
# div word tests
|
# easy test
|
# easy test
|
movw $0x0, %dx
|
movw $0x0, %dx
|
movw $0x14, %ax
|
movw $0x14, %ax
|
movw $0x5, %bx
|
movw $0x5, %bx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divw %bx
|
divw %bx
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (128)
|
movw %ax, (128)
|
movw %bx, (130)
|
movw %bx, (130)
|
movw %dx, (4)
|
movw %dx, (4)
|
pushf
|
pushf
|
|
|
|
|
movw $0xa320, %dx
|
movw $0xa320, %dx
|
movw $0xc3da, %ax
|
movw $0xc3da, %ax
|
movw $0xffff, (6)
|
movw $0xffff, (6)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
divw (6)
|
divw (6)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (8)
|
movw %ax, (8)
|
movw %dx, (10)
|
movw %dx, (10)
|
pushf
|
pushf
|
|
|
|
|
movw $0xffff, %dx
|
movw $0xffff, %dx
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movw $0x1, %cx
|
movw $0x1, %cx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divw %cx
|
divw %cx
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (12)
|
movw %ax, (12)
|
movw %cx, (14)
|
movw %cx, (14)
|
movw %dx, (16)
|
movw %dx, (16)
|
pushf
|
pushf
|
|
|
|
|
movw $0xffff, %dx
|
movw $0xffff, %dx
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movw $0xffff, (18)
|
movw $0xffff, (18)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
divw (18)
|
divw (18)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (20)
|
movw %ax, (20)
|
movw %dx, (22)
|
movw %dx, (22)
|
pushf
|
pushf
|
|
|
|
|
movw $0xfbb4, %dx
|
movw $0xfbb4, %dx
|
movw $0xc3da, %ax
|
movw $0xc3da, %ax
|
movw $0xae8e, %cx
|
movw $0xae8e, %cx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divw %cx
|
divw %cx
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (24)
|
movw %ax, (24)
|
movw %cx, (26)
|
movw %cx, (26)
|
movw %dx, (28)
|
movw %dx, (28)
|
pushf
|
pushf
|
|
|
|
|
movw $0x25c9, %dx
|
movw $0x25c9, %dx
|
movw $0xf110, %ax
|
movw $0xf110, %ax
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divw %ax
|
divw %ax
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (30)
|
movw %ax, (30)
|
movw %dx, (32)
|
movw %dx, (32)
|
pushf
|
pushf
|
|
|
|
|
# div byte tests
|
# div byte tests
|
# easy test
|
# easy test
|
movw $0x14, %ax
|
movw $0x14, %ax
|
movw $0x5, %bx
|
movw $0x5, %bx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divb %bl
|
divb %bl
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (34)
|
movw %ax, (34)
|
movw %bx, (36)
|
movw %bx, (36)
|
movw %dx, (38)
|
movw %dx, (38)
|
pushf
|
pushf
|
|
|
movw $0xa320, %dx
|
movw $0xa320, %dx
|
movw $0xc3da, %ax
|
movw $0xc3da, %ax
|
movw $0xff, (40)
|
movw $0xff, (40)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
divb (40)
|
divb (40)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (42)
|
movw %ax, (42)
|
movw %dx, (44)
|
movw %dx, (44)
|
pushf
|
pushf
|
|
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movb $0x1, %dh
|
movb $0x1, %dh
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divb %dh
|
divb %dh
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (46)
|
movw %ax, (46)
|
movw %dx, (48)
|
movw %dx, (48)
|
pushf
|
pushf
|
|
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movw $0xffff, (50)
|
movw $0xffff, (50)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
divb (51)
|
divb (51)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (52)
|
movw %ax, (52)
|
movw %dx, (54)
|
movw %dx, (54)
|
pushf
|
pushf
|
|
|
movw $0x008a, %ax
|
movw $0x008a, %ax
|
movw $0xae8e, %cx
|
movw $0xae8e, %cx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divb %cl
|
divb %cl
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (56)
|
movw %ax, (56)
|
movw %cx, (58)
|
movw %cx, (58)
|
pushf
|
pushf
|
|
|
movw $0x0669, %dx
|
movw $0x0669, %dx
|
movw $0x89f3, %ax
|
movw $0x89f3, %ax
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
divb %al
|
divb %al
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (60)
|
movw %ax, (60)
|
movw %dx, (62)
|
movw %dx, (62)
|
pushf
|
pushf
|
|
|
# idiv word tests
|
# idiv word tests
|
# easy test
|
# easy test
|
movw $0x0, %dx
|
movw $0x0, %dx
|
movw $0x14, %ax
|
movw $0x14, %ax
|
movw $0xfa, %bx
|
movw $0xfa, %bx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivw %bx
|
idivw %bx
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (64)
|
movw %ax, (64)
|
movw %bx, (66)
|
movw %bx, (66)
|
movw %dx, (68)
|
movw %dx, (68)
|
pushf
|
pushf
|
|
|
|
|
movw $0xa320, %dx
|
movw $0xa320, %dx
|
movw $0xc3da, %ax
|
movw $0xc3da, %ax
|
movw $0xffff, (70)
|
movw $0xffff, (70)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
idivw (70)
|
idivw (70)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (72)
|
movw %ax, (72)
|
movw %dx, (74)
|
movw %dx, (74)
|
pushf
|
pushf
|
|
|
|
|
movw $0xffff, %dx
|
movw $0xffff, %dx
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movw $0x1, %cx
|
movw $0x1, %cx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivw %cx
|
idivw %cx
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (76)
|
movw %ax, (76)
|
movw %cx, (78)
|
movw %cx, (78)
|
movw %dx, (80)
|
movw %dx, (80)
|
pushf
|
pushf
|
|
|
|
|
movw $0xffff, %dx
|
movw $0xffff, %dx
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movw $0xffff, (82)
|
movw $0xffff, (82)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
idivw (82)
|
idivw (82)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (84)
|
movw %ax, (84)
|
movw %dx, (86)
|
movw %dx, (86)
|
pushf
|
pushf
|
|
|
|
|
movw $0xfbb4, %dx
|
movw $0xfbb4, %dx
|
movw $0xc3da, %ax
|
movw $0xc3da, %ax
|
movw $0xae8e, %cx
|
movw $0xae8e, %cx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivw %cx
|
idivw %cx
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (88)
|
movw %ax, (88)
|
movw %cx, (90)
|
movw %cx, (90)
|
movw %dx, (92)
|
movw %dx, (92)
|
pushf
|
pushf
|
|
|
|
|
movw $0x25c9, %dx
|
movw $0x25c9, %dx
|
movw $0xf110, %ax
|
movw $0xf110, %ax
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivw %ax
|
idivw %ax
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (94)
|
movw %ax, (94)
|
movw %dx, (96)
|
movw %dx, (96)
|
pushf
|
pushf
|
|
|
# idiv byte tests
|
# idiv byte tests
|
# easy test
|
# easy test
|
movw $0x14, %ax
|
movw $0x14, %ax
|
movw $0x5, %bx
|
movw $0x5, %bx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivb %bl
|
idivb %bl
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (98)
|
movw %ax, (98)
|
movw %bx, (100)
|
movw %bx, (100)
|
movw %dx, (102)
|
movw %dx, (102)
|
pushf
|
pushf
|
|
|
|
|
movw $0xa320, %dx
|
movw $0xa320, %dx
|
movw $0xc3da, %ax
|
movw $0xc3da, %ax
|
movw $0xff, (104)
|
movw $0xff, (104)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
idivb (104)
|
idivb (104)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (106)
|
movw %ax, (106)
|
movw %dx, (108)
|
movw %dx, (108)
|
pushf
|
pushf
|
|
|
|
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movb $0x1, %dh
|
movb $0x1, %dh
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivb %dh
|
idivb %dh
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (110)
|
movw %ax, (110)
|
movw %dx, (112)
|
movw %dx, (112)
|
pushf
|
pushf
|
|
|
|
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movw $0xffff, (114)
|
movw $0xffff, (114)
|
|
|
movw $0x4, (%bp)
|
movw $0x4, (%bp)
|
idivb (115)
|
idivb (115)
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (116)
|
movw %ax, (116)
|
movw %dx, (118)
|
movw %dx, (118)
|
pushf
|
pushf
|
|
|
|
|
movw $0x008a, %ax
|
movw $0x008a, %ax
|
movw $0xae8e, %cx
|
movw $0xae8e, %cx
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivb %cl
|
idivb %cl
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (120)
|
movw %ax, (120)
|
movw %cx, (122)
|
movw %cx, (122)
|
pushf
|
pushf
|
|
|
|
|
movw $0x0669, %dx
|
movw $0x0669, %dx
|
movw $0x89f3, %ax
|
movw $0x89f3, %ax
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
idivb %al
|
idivb %al
|
addw $0x2, %bp
|
addw $0x2, %bp
|
|
|
movw %ax, (124)
|
movw %ax, (124)
|
movw %dx, (126)
|
movw %dx, (126)
|
pushf
|
pushf
|
|
|
|
|
# AAM tests
|
# AAM tests
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
aam $0
|
aam $0
|
addw $0x2, %bp
|
addw $0x2, %bp
|
movw %ax, (132)
|
movw %ax, (132)
|
pushf
|
pushf
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
aam $1
|
aam $1
|
addw $0x2, %bp
|
addw $0x2, %bp
|
movw %ax, (134)
|
movw %ax, (134)
|
pushf
|
pushf
|
|
|
movw $0xffff, %ax
|
movw $0xffff, %ax
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
aam
|
aam
|
addw $0x2, %bp
|
addw $0x2, %bp
|
movw %ax, (136)
|
movw %ax, (136)
|
pushf
|
pushf
|
|
|
movw $0xff00, %ax
|
movw $0xff00, %ax
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
aam $0
|
aam $0
|
addw $0x2, %bp
|
addw $0x2, %bp
|
movw %ax, (138)
|
movw %ax, (138)
|
pushf
|
pushf
|
|
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
aam $1
|
aam $1
|
addw $0x2, %bp
|
addw $0x2, %bp
|
movw %ax, (140)
|
movw %ax, (140)
|
pushf
|
pushf
|
|
|
movw $0x3ffb, %ax
|
movw $0x3ffb, %ax
|
movw $0x2, (%bp)
|
movw $0x2, (%bp)
|
aam
|
aam
|
addw $0x2, %bp
|
addw $0x2, %bp
|
movw %ax, (142)
|
movw %ax, (142)
|
pushf
|
pushf
|
|
|
hlt
|
hlt
|
|
|
# Exception handler (int 0)
|
# Exception handler (int 0)
|
.org 0x1000
|
.org 0x1000
|
push %ax
|
push %ax
|
push %di
|
push %di
|
movw (%bp), %ax
|
movw (%bp), %ax
|
movw %sp, %si
|
movw %sp, %si
|
addw $4, %si
|
addw $4, %si
|
movw (%si), %si
|
movw (%si), %si
|
movw %si, (%bp)
|
movw %si, (%bp)
|
addw %ax, %si
|
addw %ax, %si
|
movw %sp, %di
|
movw %sp, %di
|
addw $4, %di
|
addw $4, %di
|
movw %si, (%di)
|
movw %si, (%di)
|
pop %di
|
pop %di
|
pop %ax
|
pop %ax
|
iret
|
iret
|
|
|
.org 65520
|
.org 65520
|
jmp start
|
jmp start
|
.org 65535
|
.org 65535
|
.byte 0xff
|
.byte 0xff
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.