source: xtideuniversalbios/trunk/Assembly_Library/Src/Util/Math.asm @ 341

Last change on this file since 341 was 341, checked in by krille_n_@…, 12 years ago

Changes:

  • Fixed a bug from r323 in DisplayPrint.asm.
  • Removed some unused code from XTIDECFG (undoing the change to Math.asm in r336 as part of it).
File size: 1.5 KB
Line 
1; Project name  :   Assembly Library
2; Description   :   Functions for register operations.
3
4
5; Section containing code
6SECTION .text
7
8;--------------------------------------------------------------------
9; Math_DivQWatSSBPbyCX
10;   Parameters:
11;       [SS:BP]:    64-bit unsigned divident
12;       CX:         16-bit unsigned divisor
13;   Returns:
14;       [SS:BP]:    64-bit unsigned quotient
15;       DX:         16-bit unsigned remainder
16;   Corrupts registers:
17;       AX
18;--------------------------------------------------------------------
19%ifndef EXCLUDE_FROM_XTIDECFG   ; Not used in XTIDECFG
20ALIGN JUMP_ALIGN
21Math_DivQWatSSBPbyCX:
22    xor     dx, dx
23    mov     ax, [bp+6]      ; Load highest divident WORD to DX:AX
24    div     cx
25    mov     [bp+6], ax      ; Store quotient
26
27    mov     ax, [bp+4]
28    div     cx
29    mov     [bp+4], ax
30
31    mov     ax, [bp+2]
32    div     cx
33    mov     [bp+2], ax
34
35    mov     ax, [bp]
36    div     cx
37    mov     [bp], ax
38    ret
39%endif
40
41
42;--------------------------------------------------------------------
43; Math_DivDXAXbyCX
44;   Parameters:
45;       DX:AX:  32-bit unsigned divident
46;       CX:     16-bit unsigned divisor
47;   Returns:
48;       DX:AX:  32-bit unsigned quotient
49;       BX:     16-bit unsigned remainder
50;   Corrupts registers:
51;       Nothing
52;--------------------------------------------------------------------
53%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG
54ALIGN JUMP_ALIGN
55Math_DivDXAXbyCX:   ; This is currently unused (dead code)
56    xor     bx, bx
57    xchg    bx, ax
58    xchg    dx, ax
59    div     cx
60    xchg    ax, bx
61    div     cx
62    xchg    dx, bx
63    ret
64%endif
Note: See TracBrowser for help on using the repository browser.