source: xtideuniversalbios/trunk/Assembly_Library/Src/Util/Registers.asm @ 54

Last change on this file since 54 was 54, checked in by aitotat, 13 years ago

Changes to Assembly Library:
Drive selection moved to own dialog from File Dialog.
File Dialog now displays loading text for better usability in slow systems.
Moved some functions from Memory.asm to new Registers.asm.

File size: 1.8 KB
Line 
1; File name     :   Registers.asm
2; Project name  :   Assembly Library
3; Created date  :   24.10.2010
4; Last update   :   24.10.2010
5; Author        :   Tomi Tilli
6; Description   :   Functions for register operations.
7
8; Section containing code
9SECTION .text
10
11;--------------------------------------------------------------------
12; Registers_ExchangeDSSIwithESDI
13;   Parameters
14;       Nothing
15;   Returns:
16;       DS:SI and ES:DI are exchanged.
17;   Corrupts registers:
18;       Nothing
19;--------------------------------------------------------------------
20ALIGN JUMP_ALIGN
21Registers_ExchangeDSSIwithESDI:
22    push    ds
23    push    es
24    pop     ds
25    pop     es
26    xchg    si, di
27    ret
28
29
30;--------------------------------------------------------------------
31; Registers_CopySSBPtoESDI
32; Registers_CopySSBPtoDSSI
33; Registers_CopyDSSItoESDI
34; Registers_CopyESDItoDSSI
35;   Parameters
36;       Nothing
37;   Returns:
38;       Copies farm pointer to different segment/pointer register pair
39;   Corrupts registers:
40;       Nothing
41;--------------------------------------------------------------------
42ALIGN JUMP_ALIGN
43Registers_CopySSBPtoESDI:
44    push    ss
45    pop     es
46    mov     di, bp
47    ret
48
49ALIGN JUMP_ALIGN
50Registers_CopySSBPtoDSSI:
51    push    ss
52    pop     ds
53    mov     si, bp
54    ret
55
56ALIGN JUMP_ALIGN
57Registers_CopyDSSItoESDI:
58    push    ds
59    pop     es
60    mov     di, si
61    ret
62
63ALIGN JUMP_ALIGN
64Registers_CopyESDItoDSSI:
65    push    es
66    pop     ds
67    mov     si, di
68    ret
69
70
71;--------------------------------------------------------------------
72; Registers_SetZFifNullPointerInDSSI
73;   Parameters
74;       DS:SI:  Far pointer
75;   Returns:
76;       ZF:     Set if NULL pointer in DS:SI
77;   Corrupts registers:
78;       Nothing
79;--------------------------------------------------------------------
80ALIGN JUMP_ALIGN
81Registers_SetZFifNullPointerInDSSI:
82    push    ax
83    mov     ax, ds
84    or      ax, si
85    pop     ax
86    ret
Note: See TracBrowser for help on using the repository browser.