## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# 80×86 Architecture: Watcom Runtime

Assembler code

    cseg01:1044
    cseg01:1044 ; =============== S U B R O U T I N E =======================================
    cseg01:1044
    cseg01:1044 ; Attributes: library function
    cseg01:1044
    cseg01:1044 __MemFree       proc far                ; CODE XREF: _ffree_+1A↓p
    cseg01:1044                                         ; _nfree_+31↓p ...
    cseg01:1044
    cseg01:1044 ; FUNCTION CHUNK AT cseg01:1041 SIZE 00000003 BYTES
    cseg01:1044
    cseg01:1044                 push    si
    cseg01:1045                 push    di
    cseg01:1046                 push    cx
    cseg01:1047                 push    ds
    cseg01:1048                 mov     ds, dx
    cseg01:104A                 or      ax, ax
    cseg01:104C                 jz      short loc_1041
    cseg01:104E                 mov     si, ax
    cseg01:1050                 sub     si, 2
    cseg01:1053                 mov     ax, [si]
    cseg01:1055                 test    al, 1
    cseg01:1057                 jz      short loc_1041
    cseg01:1059                 and     al, 0FEh
    cseg01:105B                 mov     di, si
    cseg01:105D                 add     di, ax
    cseg01:105F                 test    word ptr [di], 1
    cseg01:1063                 jnz     short loc_1084
    cseg01:1065                 cmp     di, [bx+6]
    cseg01:1068                 jnz     short loc_106D
    cseg01:106A                 mov     [bx+6], si
    cseg01:106D
    cseg01:106D loc_106D:                               ; CODE XREF: __MemFree+24↑j
    cseg01:106D                 add     ax, [di]
    cseg01:106F                 mov     [si], ax
    cseg01:1071                 push    bx