亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rxdosexe.asm

?? dos source
?? ASM
?? 第 1 頁 / 共 5 頁
字號:
        TITLE   'exe - load and execute .com and .exe programs'
        PAGE 59, 132
        .LALL

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Load EXE/COM Programs                                        ;
        ;...............................................................;

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Real Time Dos                                                ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  This material  was created as a published version  of a DOS  ;
        ;  equivalent product.   This program  logically  functions in  ;
        ;  the same way as  MSDOS functions and it  is  internal  data  ;
        ;  structure compliant with MSDOS 6.0                           ;
        ;                                                               ;
        ;  This product is distributed  AS IS and contains no warranty  ;
        ;  whatsoever,   including  warranty  of   merchantability  or  ;
        ;  fitness for a particular purpose.                            ;
        ;                                                               ;
        ;                                                               ;
        ;  (c) Copyright 1990, 1997. Api Software and Mike Podanoffsky  ;
        ;      All Rights Reserved Worldwide.                           ;
        ;                                                               ;
        ;  This product is protected under copyright laws and  may not  ;
        ;  be reproduced  in whole  or in part, in any form  or media,  ;
        ;  included but not limited to source listing, facsimile, data  ;
        ;  transmission, cd-rom, or  floppy disk without the expressed  ;
        ;  written consent of the author.                               ;
        ;                                                               ;
        ;  License  for  distribution  for commercial  use  or  resale  ;
        ;  required from:                                               ;
        ;                                                               ;
        ;  Api Software                                                 ;
        ;  12 South Walker Street                                       ;
        ;  Lowell,  MA   01851                                          ;
        ;                                                               ;
        ;  internet: mikep@world.std.com                                ;
        ;                                                               ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;  Compile with MASM 5.1                                        ;
        ;...............................................................;

        include rxdosmac.asm
        include rxdosdef.asm

RxDOS   SEGMENT PUBLIC 'CODE'
        assume cs:RxDOS, ds:RxDOS, es:RxDOS, ss:RxDOS

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Load EXE/COM Programs                                        ;
        ;...............................................................;

        public copyCurrentPSP
        public loadProgram

        extrn LocateFile                        : near
        extrn ExpandFileName                    : near
        extrn initdiskAccess                    : near
        extrn readLogicalBuffer                 : near
        extrn allocateMemBlock                  : near
        extrn _allocateMinMaxMemBlock           : near

        extrn stdDeviceAssignTable              : near
        extrn _RetCallersStackFrame             : near
        extrn _freeMemBlock                     : near
        extrn CopyString                        : near
        extrn MapAppToSFTHandle                 : near
        extrn FindSFTbyHandle                   : near

        extrn _RxDOS_AllocStrategy              : word
        extrn _RxDOS_CurrentPSP                 : word
        extrn _RxDOS_CurrentInstance            : word
        extrn _RxDOS_MaxMemory                  : word
        extrn _RxDOS_DOSVersion                 : word
        extrn _RxDOS_pDTA                       : dword
        extrn _CallDOS                          : far

        extrn pexterrNotEnoughMemory            : near

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Load Program Image (COM, SYS, etc... )                       ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Input:                                                       ;
        ;   ds:dx  asciz name of program to load                        ;
        ;   es:bx  address of LOADEXEC structure                        ;
        ;   al     mode (subfunction)                                   ;
        ;                                                               ;
        ;  Output:                                                      ;
        ;   dx     PSP segment address                                  ;
        ;   cy     load failed                                          ;
        ;...............................................................;

loadProgram:

        Entry
        def  _Mode, ax
        def  _programPSP,     0000
        def  _StartSegment,   0000
        def  _RelocFactor,    0000
        def  _SizePara
        ddef _filesize
        ddef _PathName
        ddef _ExecBlock
        ddef _PrevInstance
        ddef _DebuggerReturnTo
        defbytes _expandedName, sizeEXPANDNAME
        defbytes _exeHeader,  sizeEXEHEADER
        defbytes _diskAccess, sizeDISKACCESS
        defbytes _dirAccess,  sizeDIRACCESS
        defbytes _relocitem,  4

        mov bx, word ptr ss:[ _RxDOS_CurrentInstance ]
        les bx, dword ptr ss:[ bx ]
        stordarg _PrevInstance, es, bx                  ; instance before 

        mov dx, word ptr es:[ _CS           ][ bx ]
        mov ax, word ptr es:[ _IP           ][ bx ]
        stordarg _DebuggerReturnTo, dx, ax              ; return address

        RetCallersStackFrame es, si
        mov dx, word ptr es:[ _ExtraSegment ][ si ]
        mov ax, word ptr es:[ _BX           ][ si ]     ; get es: bx from caller
        stordarg _ExecBlock, dx, ax
        
        mov dx, word ptr es:[ _DataSegment  ][ si ]
        mov ax, word ptr es:[ _DX           ][ si ]     ; get ds: dx from caller
        stordarg _PathName, dx, ax

        push dx                                         ; non-canonical name
        push ax
        lea dx, offset _expandedName [ bp ]             ; expanded name
        push ss
        push dx
        mov ax, FILECANNOT_BEDIRECTORY                  ; not a directory
        call ExpandFileName                             ; get actual expanded name

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  initialize mode
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        getarg ax, _Mode                                ; get mode
        Goto   execSetExecuteMode, _loadProgram_SetExec
        Goto   execLoadOverlay,    _loadProgram_Overlay
        jmp short _loadProgram_04

_loadProgram_SetExec:
        call _SetExecuteMode
        jmp _loadProgram_68

_loadProgram_Overlay:
        getdarg es, bx, _ExecBlock
        mov ax, word ptr es:[ loverSegLoadAddress   ][ bx ]
        storarg _StartSegment, ax
        mov ax, word ptr es:[ loverRelocFactor      ][ bx ]
        storarg _RelocFactor,  ax

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  program file exist ?
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_loadProgram_04:
        mov ax, (FILE_NODEVICENAME)
        getdarg es, si, _PathName                       ; name from caller (ds: dx )
        lea di, offset _dirAccess [ bp ]                ; work dir access block
        call LocateFile                                 ; try to find file
        ifc _loadProgram_68                             ; if cannot -->

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  initialize disk access block
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        setES ss
        lea bx, offset _diskAccess [ bp ]               ; build access control block
        call initdiskAccess                             ; [ax] is drive, [dx] is cluster

        call checkEXEHeader                             ; exe file ?
        jnz _loadProgram_12                             ; no, COM or SYS type -->

        getarg ax, _Mode                                ; get subfunction code
        getarg cx, _RelocFactor                         ; relocation factor
        getarg dx, _StartSegment                        ; load overlay address 
        lea di, word ptr [ _dirAccess ][ bp ]           ; dir information
        getdarg es, bx, _ExecBlock                      ; original load exec 
        call loadExe_Program                            ; pass off control to load EXE
        ifc _loadProgram_68                             ; if cannot -->
        jmp _loadProgram_40                             ; switch stack -->

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  load COM or SYS 
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_loadProgram_12:
        les di, dword ptr [ _dirAccess. fileAcBufferPtr ][ bp ]
        add di, word ptr [ _dirAccess. fileAcDirOffset ][ bp ]
        mov ax, word ptr es:[ deFileSize. _low  ][ di ]
        mov dx, word ptr es:[ deFileSize. _high ][ di ]
        stordarg _filesize, dx, ax                      ; save file size

        add ax, (PARAGRAPH - 1)
        adc dx, 0                                       ; just in case carry

        shr dx, 1
        rcr ax, 1
        shr dx, 1
        rcr ax, 1
        shr dx, 1
        rcr ax, 1
        shr dx, 1
        rcr ax, 1
        storarg _SizePara, ax                           ; save as paragraphs needed

        cmp byte ptr [ _Mode  ][ bp ], execLoadOverlay  ; if load overlay 
        jz _loadProgram_18                              ; no need to allocate memeory -->

        mov dx, 0FFFFh                                  ; max request (all of memory)
        getdarg es, bx, _ExecBlock                      ; load exec module
        call _LoaderAllocMemory                         ; alloc memory for env block/ PSP
        ifc _loadProgram_68                             ; if cannot allocate -->

        storarg _StartSegment, es                       ; where data load begins 
        storarg _programPSP, ax                         ; save seg address of PSP

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  load module (at es: 0000)
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_loadProgram_18:
        xor di, di                                      ; load at es:0000
        getarg es, _StartSegment                        ; load overlay address 
        lea bx, offset _diskAccess [ bp ]               ; build access control block
        mov word ptr ss:[ diskAcPosition. _high ][ bx ], di
        mov word ptr ss:[ diskAcPosition. _low  ][ bx ], di

_loadProgram_20:
        mov cx, 60 * 1024                               ; read 60k at a time
        mov ax, word ptr [ _filesize. _low  ][ bp ]
        mov dx, word ptr [ _filesize. _high ][ bp ]
        sub ax, word ptr ss:[ diskAcPosition. _low  ][ bx ]
        sbb dx, word ptr ss:[ diskAcPosition. _high ][ bx ]  
        or dx, dx                                       ; more than 60k ?
        jnz _loadProgram_22                             ; yes -->
        cmp ax, cx                                      ; more than 60k ?
        jnc _loadProgram_22                             ; yes -->
        mov cx, ax                                      ; exact bytes to read

_loadProgram_22:
        or cx, cx                                       ; more to read ?
        jz _loadProgram_24                              ; if no more to read -->

        mov dx, word ptr ss:[ diskAcPosition. _high ][ bx ]  
        mov ax, word ptr ss:[ diskAcPosition. _low  ][ bx ]
        lea bx, offset _diskAccess [ bp ]               ; build access control block
        call readLogicalBuffer                          ; Access buffer: ss: bx
        or cx, cx                                       ; bytes actually read
        jz _loadProgram_24                              ; if no more to read -->

        push cx
        shr cx, 1
        shr cx, 1
        shr cx, 1
        shr cx, 1                                       ; chars read in paras
        mov ax, es
        add ax, cx
        mov es, ax
        pop cx
        and cx, (PARAGRAPH - 1)
        add di, cx
        jmp _loadProgram_20

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  switch to new process
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区视频| 国产视频在线观看一区二区三区| 欧美日韩激情一区二区| 欧美高清视频一二三区| 欧美日韩精品一区二区三区 | www国产精品av| 中文av一区二区| 一区二区三区日韩欧美| 男女激情视频一区| 97久久超碰国产精品| 欧美日韩色一区| 欧美mv和日韩mv的网站| 欧美激情自拍偷拍| 亚洲综合一二区| 国产91丝袜在线播放九色| 成人黄色av网站在线| 成人激情小说网站| 色香色香欲天天天影视综合网| 91国偷自产一区二区开放时间 | 樱花影视一区二区| 免费日韩伦理电影| 91一区二区在线| 欧美一级精品在线| 国产午夜精品福利| 日韩不卡一区二区三区 | 国产一区二区主播在线| 色狠狠一区二区三区香蕉| 日韩精品一区二区三区视频在线观看 | 99久久婷婷国产综合精品电影| 3d成人h动漫网站入口| 欧美激情综合在线| 美女一区二区久久| 色婷婷亚洲综合| 欧美国产欧美亚州国产日韩mv天天看完整| 天天综合色天天综合色h| 成人av免费在线观看| 日韩精品在线一区二区| 亚洲国产成人tv| 色狠狠一区二区| 日韩欧美中文字幕一区| 天天综合色天天综合色h| 色呦呦国产精品| 日韩一区欧美小说| 老司机精品视频导航| 欧美日韩国产电影| 五月天激情综合网| 日本道免费精品一区二区三区| 日韩一卡二卡三卡| 日韩av中文字幕一区二区| 99综合电影在线视频| 国产日产欧产精品推荐色 | 国产白丝精品91爽爽久久| 日韩欧美中文字幕一区| 蜜桃久久久久久| 欧美日韩亚洲国产综合| 亚洲国产精品久久人人爱蜜臀| 99久久99久久精品国产片果冻| 欧美经典三级视频一区二区三区| 偷拍一区二区三区四区| 欧美日韩国产区一| 天堂va蜜桃一区二区三区漫画版| 欧美性大战久久久久久久蜜臀| 夜夜爽夜夜爽精品视频| 欧美午夜电影网| 亚洲国产视频在线| 日本黄色一区二区| 亚洲va欧美va人人爽| 欧美一区二区美女| 国产一区二区h| 国产精品高潮久久久久无| 成人黄色软件下载| 亚洲素人一区二区| 91免费国产在线观看| 亚洲国产视频一区二区| 日韩久久久精品| 99精品欧美一区二区三区小说| 亚洲1区2区3区视频| 国产三级一区二区| 欧美日本在线一区| 国产99久久久国产精品潘金| 亚洲国产精品久久艾草纯爱 | 国产精品一区三区| 亚洲国产日韩精品| 国产精品视频你懂的| 日韩欧美的一区| 欧美日韩久久一区| 99久久99久久久精品齐齐| 精品在线免费观看| 天天综合天天综合色| 亚洲欧美韩国综合色| 国产视频亚洲色图| 欧美va亚洲va在线观看蝴蝶网| 欧美日韩专区在线| 91在线小视频| 国产精品1区二区.| 久久丁香综合五月国产三级网站| 一区二区三区精品视频在线| 国产精品嫩草久久久久| 日韩久久久久久| 日韩精品最新网址| 91精品国产综合久久香蕉麻豆| 色婷婷综合久久久中文一区二区 | 国产精品一区在线观看乱码 | 色激情天天射综合网| 不卡电影免费在线播放一区| 国产精品一区二区三区乱码| 久久国产精品一区二区| 日韩高清不卡一区| 亚洲成在人线在线播放| 亚洲精品老司机| 亚洲精品乱码久久久久久黑人 | 中文字幕一区二区三区四区不卡 | 国产精品网站一区| 久久综合九色综合97_久久久| 欧美一区二区在线观看| 欧美日韩免费观看一区三区| 欧洲亚洲国产日韩| 欧美专区亚洲专区| 91国在线观看| 欧美日本一区二区三区四区| 欧美日韩国产综合一区二区| 精品视频在线视频| 欧美一二三区精品| 久久日韩精品一区二区五区| 久久九九久久九九| 欧美激情一二三区| 亚洲摸摸操操av| 香蕉影视欧美成人| 蜜臀av一区二区在线免费观看| 激情小说欧美图片| 处破女av一区二区| 欧美亚洲国产bt| 欧美一个色资源| 国产农村妇女毛片精品久久麻豆 | 欧美精品色综合| 精品国产一区久久| 日本一区二区三区电影| 亚洲欧洲性图库| 日日骚欧美日韩| 国产成人av电影在线| 91亚洲精品久久久蜜桃网站| 欧美日韩精品高清| 亚洲精品一区二区三区精华液| 亚洲国产精品av| 亚洲国产另类av| 国产夫妻精品视频| 一本色道综合亚洲| 日韩午夜在线观看视频| 国产精品日产欧美久久久久| 亚洲丶国产丶欧美一区二区三区| 老司机午夜精品| 在线免费视频一区二区| 日韩精品专区在线| 一区二区三区欧美激情| 韩国v欧美v日本v亚洲v| 色综合中文字幕国产| 欧美欧美午夜aⅴ在线观看| 欧美va在线播放| 一区二区在线看| 国产**成人网毛片九色| 欧美日韩国产精品成人| 国产精品欧美极品| 午夜精品福利一区二区蜜股av | 亚洲欧美综合在线精品| 免费成人美女在线观看.| a4yy欧美一区二区三区| 精品国产91乱码一区二区三区| 一区二区三区在线免费播放| 国产成人精品午夜视频免费| 欧美日本在线视频| 亚洲乱码精品一二三四区日韩在线| 久久9热精品视频| 欧美高清性hdvideosex| 亚洲精品欧美激情| 99久久综合色| 久久一留热品黄| 蜜臀av国产精品久久久久| 91成人在线观看喷潮| 中文字幕不卡三区| 国产在线精品免费| 日韩三级高清在线| 日韩成人一级大片| 91福利在线导航| 一区二区三区国产精品| 99久久久久免费精品国产| 日本一区二区三区国色天香| 极品少妇xxxx精品少妇| 日韩精品影音先锋| 免费高清在线一区| 8v天堂国产在线一区二区| 亚洲国产精品一区二区久久 | 国产精品护士白丝一区av| 国产精品亚洲午夜一区二区三区| 欧美一级专区免费大片| 午夜激情一区二区三区| 欧美日韩一区二区三区不卡| 亚洲网友自拍偷拍| 欧美日韩高清一区| 日本成人在线网站| 日韩午夜中文字幕|