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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rxdosexe.asm

?? dos source
?? ASM
?? 第 1 頁 / 共 5 頁
字號:
        shl cx, 1
        push cx                                         ; save bytes actually to read

        xor di, di                                      ; load at _StartSeg:0000
        lea bx, offset _diskAccess [ bp ]               ; build access control block
        call readLogicalBuffer                          ; Access buffer: ss: bx
        call computeChecksum
        add word ptr [ _CheckSum ][ bp ], ax

        pop cx                                          ; bytes read
        pop bx                                          ; paras read
        pop ax                                          ; previous file offset
        pop dx
        add ax, cx                                      ; incr position by bytes read
        adc dx, 0000

        pop cx                                          ; segment loaded
        add cx, bx                                      ; increment by paras read
        mov es, cx                                      ; set new read segment

        sub word ptr [ _SizePara ][ bp ], bx            ; subtract paragraphs used.
        jnz loadExe_Program08

        xor di, di                                      ; load at _StartSeg:0000
        mov cx, word ptr [ _exeHeader. exeExtraBytes ][ bp ]
        and cx, (PARAGRAPH - 1)                         ; last 15 bytes
        jz loadExe_Program20                            ; if none to read -->
        
        lea bx, offset _diskAccess [ bp ]               ; build access control block
        call readLogicalBuffer                          ; Access buffer: ss: bx
        call computeChecksum
        add word ptr [ _CheckSum ][ bp ], ax

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  address relocation blocks
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loadExe_Program20:
        mov ax, word ptr [ _exeHeader. exeRelocItems ][ bp ]
        or ax, ax
        jz loadExe_Program32

loadExe_Program28:
        setES ss
        mov cx, 4
        xor dx, dx
        mov ax, word ptr [ _exeHeader. exeRelocTable ][ bp ]
        lea di, offset _relocitem [ bp ]
        lea bx, offset _diskAccess [ bp ]               ; build access control block
        call readLogicalBuffer                          ; Access buffer: ss: bx
        call computeChecksum
        add word ptr [ _CheckSum ][ bp ], ax

        getdarg dx, bx, _relocitem                      ; get reloc item
        getarg ax, _RelocFactor                         ; starting segment

        add dx, ax
        mov es, dx
        add word ptr es:[ bx ], ax                      ; relocate load module

        add word ptr [ _exeHeader. exeRelocTable ][ bp ], 4
        dec word ptr [ _exeHeader. exeRelocItems ][ bp ]
        jnz loadExe_Program28

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  execute
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loadExe_Program32:
        mov ax, word ptr [ _CheckSum ][ bp ]
        add ax, word ptr [ _exeHeader. exeChecksum   ][ bp ]

        mov al, byte ptr [ _Mode  ][ bp ]               ; if load overlay 
        getdarg cx, dx, _returnSize                     ; return size
        call ifOverlayLoader                            ; set up ret args if overlay
        ifz loadExe_Program50                           ; no need to build return stack -->

        getarg es, _programPSP                          ; child process' PSP
        mov dx, word ptr [ _exeHeader. exeInitSS   ][ bp ]
        add dx, word ptr [ _StartSegment           ][ bp ]
        mov si, word ptr [ _exeHeader. exeInitSP   ][ bp ]

        sub si, 2                                       ; top value minus 1 word
        mov word ptr es:[ pspUserStack. _pointer ], si
        mov word ptr es:[ pspUserStack. _segment ], dx

        setES dx                                        ; child program's stack seg
        sub si, _Flags
        mov bx, word ptr ss:[ _RxDOS_CurrentInstance ]
        mov word ptr ss:[ _pointer ][ bx ], si
        mov word ptr ss:[ _segment ][ bx ], dx          ; where new process' startup stack will exist (COM)

        or si, si
        pushf
        pop word ptr es:[ _Flags        ][ si ] 

        mov dx, word ptr [ _StartSegment ][ bp ]
        add dx, word ptr [ _exeHeader. exeInitCS     ][ bp ]
        mov ax, word ptr [ _exeHeader. exeInitIP     ][ bp ]
        mov word ptr es:[ _IP           ][ si ], ax
        mov word ptr es:[ _CS           ][ si ], dx

        getarg bx, _programPSP                          ; child process' PSP
        mov word ptr es:[ _ExtraSegment ][ si ], bx
        mov word ptr es:[ _DataSegment  ][ si ], bx
        mov word ptr es:[ _BP           ][ si ], 0000
        mov word ptr es:[ _DI           ][ si ], 0000
        mov word ptr es:[ _SI           ][ si ], 0000
        mov word ptr es:[ _DX           ][ si ], 0000

        getdarg dx, ax, _returnSize
        mov word ptr es:[ _CX           ][ si ], ax
        mov word ptr es:[ _BX           ][ si ], dx
        mov word ptr es:[ _AX           ][ si ], 0000

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  copy startup command line to _PSP
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        getarg ax, _programPSP                          ; child process' PSP
        mov word ptr [ _RxDOS_CurrentPSP ], ax          ; change running PSP
        clc

loadExe_Program50:
        Return

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Determine if file is EXE formatted                           ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Input:                                                       ;
        ;   ss:bx  disk access block                                    ;
        ;                                                               ;
        ;  Output:                                                      ;
        ;   zr     file is an EXE                                       ;
        ;   nz     file is not an EXE                                   ;
        ;...............................................................;

checkEXEHeader:
        Entry
        defbytes _exeHeader, sizeEXEHEADER

        xor dx, dx
        xor ax, ax                                      ; file pointer to beg of file
        mov cx, sizeEXEHEADER
        lea di, offset _exeHeader [ bp ]
        call readLogicalBuffer                          ; Access buffer: ss: bx

        cmp word ptr [ _exeHeader. exeSignature ][ bp ], EXE_SIGNATURE
        Return

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Copy Current PSP                                             ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Usage:                                                       ;
        ;   es     PSP segment address to update                        ;
        ;...............................................................;

copyCurrentPSP:

        SaveSegments
        mov ax, word ptr ss:[ _RxDOS_CurrentPSP ]       ; current PSP
        or ax, ax                                       ; any current PSP ?
        jz copyCurrentPSP_36                            ; no -->

        xor si, si
        xor di, di
        mov ds, ax                                      ; current PSP
        mov cx, ( sizePSP / 2 )
        rep movsw

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; duplicate all file handles (except for no inherit)
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        mov ax, word ptr ss:[ _RxDOS_CurrentPSP ]
        mov word ptr es:[ pspParentId    ], ax          ; parent PSP address

        mov cx, sizePSPHandleTable 
        mov bx, offset PSPHandleTable 
        mov word ptr es:[ pspFileHandleCount ], cx
        mov word ptr es:[ pspFileHandlePtr. _segment ], es
        mov word ptr es:[ pspFileHandlePtr. _pointer ], bx

copyCurrentPSP_08:
        xor ax, ax
        mov al, byte ptr es:[ bx ]                      ; get old handle
        cmp al, -1                                      ; if entry not set
        jz copyCurrentPSP_14                            ; skip around -->

        push es
        push bx
        call FindSFTbyHandle                            ; get corresponding SFT (es: di )
        test word ptr es:[ sftDevInfo ][ di ], sftNoInherit
        jnz copyCurrentPSP_12                           ; if no inherit -->

        inc word ptr es:[ sftRefCount ][ di ]           ; bump in use count

        pop bx
        pop es
        jmp short copyCurrentPSP_14

copyCurrentPSP_12:
        pop bx
        pop es
        mov byte ptr es:[ bx ], -1                      ; free SFT in copy of psp

copyCurrentPSP_14:
        inc bx
        cmp bx, offset (PSPHandleTable + sizePSPHandleTable)
        jl copyCurrentPSP_08

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; done
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
copyCurrentPSP_36:
        RestoreSegments
        ret

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Create New Program Seg Prefix                                ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Input:                                                       ;
        ;   es     start address of PSP                                 ;
        ;   cx     allocate size                                        ;
        ;   dx:ax  EXEC BLOCK address                                   ;
        ;                                                               ;
        ;  Output:                                                      ;
        ;   es     updated es:                                          ;
        ;...............................................................;

createPSP:

        Entry
        def  _AllocSize, cx
        ddef _ExecBlock, dx, ax

        push ds
        mov ax, es
        add ax, (sizePSP / PARAGRAPH)                   ; always a fixed size
        push ax                                         ; address of PSP to return

        xor di, di
        mov ax, word ptr ss:[ _RxDOS_CurrentPSP ]
        or ax, ax                                       ; any parent ?
        jnz createPSP_08                                ; yes, copy parent -->

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  init a blank PSP
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        xor ax, ax
        mov cx, (sizePSP / 2)                           ; always a fixed size
        rep stosw                                       ; clear/ zero.

        mov ax, -1
        mov di, offset pspHandleTable
        mov cx, (sizePSPHandleTable / 2)
        rep stosw                                       ; init handle table

        mov dx, 1
        mov al, byte ptr ss:[ stdRedirec_Aux * sizeStdRedirec ]. stdDeviceAssignTable. stdIOHandle
        mov byte ptr es:[ pspHandleTable.STDAUX ], al
        call incrRefCount

        mov al, byte ptr ss:[ stdRedirec_Prn * sizeStdRedirec ]. stdDeviceAssignTable. stdIOHandle
        mov byte ptr es:[ pspHandleTable.STDPRN ], al
        call incrRefCount

        mov al, byte ptr ss:[ stdRedirec_Con * sizeStdRedirec ]. stdDeviceAssignTable. stdIOHandle
        mov byte ptr es:[ pspHandleTable.STDIN  ], al
        mov byte ptr es:[ pspHandleTable.STDOUT ], al
        mov byte ptr es:[ pspHandleTable.STDERR ], al

        mov dx, 3
        call incrRefCount

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亚洲人在线观看| 亚洲欧美日韩成人高清在线一区| 97久久精品人人澡人人爽| 国产伦精品一区二区三区免费迷 | 丁香亚洲综合激情啪啪综合| 狠狠色狠狠色综合| 国产乱妇无码大片在线观看| 国产精品99久久久久久宅男| 国产·精品毛片| 91免费看`日韩一区二区| 日本久久电影网| 欧美日韩久久久一区| 欧美日韩国产一级| 精品国产成人系列| 中文字幕久久午夜不卡| 亚洲日韩欧美一区二区在线| 亚洲一区二区精品视频| 日韩av在线播放中文字幕| 美女高潮久久久| 成人三级在线视频| 欧美精品一级二级| 久久久九九九九| 一区二区三区蜜桃| 蜜桃视频第一区免费观看| 国产成人精品免费视频网站| 91九色02白丝porn| 精品国产露脸精彩对白| 中文字幕中文乱码欧美一区二区| 一区二区三区欧美久久| 国内成+人亚洲+欧美+综合在线| 成人app下载| 欧美一激情一区二区三区| 国产欧美日韩一区二区三区在线观看| 亚洲女与黑人做爰| 国产精品性做久久久久久| 欧美性受xxxx| 亚洲国产经典视频| 夜夜夜精品看看| 日本成人在线看| 国产一区二区三区电影在线观看| 成人精品视频一区二区三区 | 国产成人一区在线| 色婷婷综合久久久| 国产网红主播福利一区二区| 一区二区三区在线视频免费| 国产精品自产自拍| 欧美一区二区在线不卡| 亚洲人妖av一区二区| 国产精品综合网| 欧美日韩久久久一区| 亚洲人成伊人成综合网小说| 国产一区二区三区精品视频| 91精品国产欧美一区二区18| 欧美久久一区二区| 亚洲免费在线电影| 成人午夜看片网址| 精品国产一区二区在线观看| 婷婷国产v国产偷v亚洲高清| 97精品电影院| 亚洲人精品一区| 94-欧美-setu| 中文字幕亚洲电影| 风间由美中文字幕在线看视频国产欧美 | 91精品国产全国免费观看| 亚洲欧美另类久久久精品| 成人手机电影网| 久久午夜免费电影| 国产中文字幕一区| 久久久久久夜精品精品免费| 久久99最新地址| 精品福利在线导航| 久久99精品国产.久久久久久| 51精品久久久久久久蜜臀| 日韩精品一级中文字幕精品视频免费观看| 91丨porny丨蝌蚪视频| 亚洲欧美日韩在线播放| 91丨九色porny丨蝌蚪| 一区二区在线观看不卡| 91黄色免费看| 日韩福利电影在线| 91精品国产综合久久小美女| 蜜桃视频一区二区三区| 精品国产乱码久久久久久免费 | 欧美日韩一卡二卡三卡| 日韩精品一二区| 精品盗摄一区二区三区| 国产福利一区二区| 亚洲精品久久嫩草网站秘色| 欧美日韩国产首页| 蜜臂av日日欢夜夜爽一区| 久久久久久久久久看片| 99久久99久久综合| 亚洲午夜在线观看视频在线| 7799精品视频| 国产精品一区二区在线观看网站| 欧美激情中文字幕| 日本道免费精品一区二区三区| 亚洲v中文字幕| 欧美精品一区二区三区在线播放| voyeur盗摄精品| 午夜私人影院久久久久| 国产午夜精品一区二区三区视频| 色综合色综合色综合| 全国精品久久少妇| 亚洲国产精品精华液2区45| 色香蕉成人二区免费| 蜜臀av性久久久久蜜臀av麻豆| 国产欧美日韩在线视频| 精品视频免费在线| 国产综合一区二区| 亚洲国产精品久久艾草纯爱| 精品av久久707| 日本精品裸体写真集在线观看| 久久精品国产精品亚洲精品| 99国内精品久久| 成人深夜视频在线观看| 亚洲女人小视频在线观看| 91精品国产色综合久久不卡蜜臀| 国产精品18久久久久久vr| 亚洲国产综合91精品麻豆| 久久精品一区二区三区不卡| 欧美天天综合网| 91在线看国产| 国产一区二区导航在线播放| 日韩在线a电影| 亚洲激情图片一区| 亚洲国产精品精华液ab| 精品久久久久久久久久久院品网| 日本韩国欧美一区| jlzzjlzz国产精品久久| 国产乱人伦偷精品视频免下载| 亚洲第一搞黄网站| 亚洲另类春色国产| 中文字幕精品—区二区四季| 精品盗摄一区二区三区| 欧美一级一区二区| 欧美久久久影院| 欧美性大战久久久久久久| 国产mv日韩mv欧美| 欧美岛国在线观看| 欧美午夜视频网站| 色综合久久综合| av综合在线播放| 国产91精品一区二区麻豆亚洲| 老司机一区二区| 麻豆精品精品国产自在97香蕉| 天堂久久一区二区三区| 亚洲国产精品一区二区www在线 | 亚洲成人av一区| 一区二区三区在线免费视频| ㊣最新国产の精品bt伙计久久| 中文字幕国产一区二区| 欧美国产日产图区| 国产精品免费视频观看| 国产精品理伦片| 国产精品久久久久久久久久久免费看| 国产精品视频九色porn| 国产精品激情偷乱一区二区∴| 国产精品久久毛片av大全日韩| 中文在线一区二区| 亚洲视频在线观看三级| 国产女主播视频一区二区| 99久久久国产精品免费蜜臀| 懂色av中文字幕一区二区三区| 国产成人综合网| 91在线无精精品入口| 91麻豆6部合集magnet| 欧美日韩一区二区三区不卡| 欧美一区二区三区喷汁尤物| 亚洲精品在线观看网站| 亚洲国产精品传媒在线观看| 亚洲免费在线视频| 麻豆专区一区二区三区四区五区| 久久国产精品一区二区| 国产成人精品三级| 色天使色偷偷av一区二区| 欧美日韩国产乱码电影| 精品国产免费一区二区三区四区| 国产欧美日韩麻豆91| 亚洲综合无码一区二区| 久久爱另类一区二区小说| fc2成人免费人成在线观看播放| 色婷婷激情久久| 精品对白一区国产伦| 亚洲伦在线观看| 韩国理伦片一区二区三区在线播放| 成人国产电影网| 日韩免费一区二区| 91免费精品国自产拍在线不卡| 丁香一区二区三区| 欧美午夜一区二区三区免费大片| 日韩欧美精品三级| 国产精品久久久久久久裸模| 污片在线观看一区二区| 国产成人精品亚洲午夜麻豆| 欧美女孩性生活视频| 国产精品久久久久久妇女6080| 日产国产高清一区二区三区| 99国产精品久久| 2024国产精品|