home *** CD-ROM | disk | FTP | other *** search
- Comment *
- ┌────────────────────────────────────────────────────────────────────────────┐
- │memb.asm │
- │Look at a byte of memory, pass it back to c as the function result. │
- │ │
- │Synopsis: │
- │ int seg = 0x40,ofs = 0x49,screenmode; │
- │ │
- │ screenmode = memb(seg,ofs); │
- └────────────────────────────────────────────────────────────────────────────┘
- *
-
- ;=============================================================================
- ; Data
- ;=============================================================================
-
- DGROUP group _DATA
- _DATA segment word public 'DATA'
- assume ds:DGROUP
-
- ; Your Data goes here . . .
-
- _DATA ends
-
- ;=============================================================================
- ; Code
- ;=============================================================================
-
- assume cs:_text
- _text segment public byte 'code'
- PUBLIC _memb
-
- _memb proc near
-
- push bp ; save base of stack
- mov bp,sp ; establish stack frame
-
- push ds ; save data and extra segs
-
- push [bp+4] ; get segment address
- pop ds
- mov bx,[bp+6] ; get offset address
- mov bx,[bx]
- mov al,bl ; get byte in return parameter
- xor ah,ah
-
- pop ds ; restore data and extra segs
-
- mov sp,bp ; restore stack pointer
- pop bp ; and base of stack
- ret ; return to caller
-
- _memb endp
- _text ends
- end