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

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

?? xlib.doc

?? DOS保護模式下匯編程序設計.zip
?? DOC
?? 第 1 頁 / 共 5 頁
字號:
                 XOR            EDX,EDX
                 MOV            AX,WORD PTR SEGADR[0]
                 MOV            DX,WORD PTR SEGADR[2]
                 SHL            EDX,4          ;Calculate linear address
                 ADD            EDX,EAX
                 MOV            AX,DX
                 SHR            EDX,16         ;Return linear address in DX:AX
                 RET
  LINADR         ENDP

  ;Structure defining control block for SUMARRAY.
  ARRAYDATA      STRUCT
    CONDCODE     DWORD          0              ;Condition code
    N            DWORD          0              ;Number of elements to sum
    ADDRESS      DWORD          0              ;Address of first element
    SUM          DWORD          0              ;Sum of array elements
  ARRAYDATA      ENDS

  ;Real-mode interface to SUMARRAY32.  Segment address of control block having
  ;structure ARRAYDATA should be on the stack.
  SUMARRAY       PROC FAR PUBLIC,
                 CBSEGADR:DWORD                ;Control block segment address
                 PUSH           DS
                 PUSHW          DSEG
                 POP            DS
                 XOR            EAX,EAX        ;Clear high words
                 XOR            EDX,EDX
                 MOV            AX,WORD PTR CBSEGADR[2]
                 MOV            DX,WORD PTR CBSEGADR[0]
                 SHL            EAX,4          ;Calculate linear address
                 ADD            EAX,EDX
                 MOV            CCODEPTR,EAX   ;Reset condition code address
                 POP            DS             ;Pop calling DS
                 PUSHD          OFFSET SUMARRAY32
                 CALL           ENTERPM        ;Execute SUMARRAY32 in protected
                 RET
  SUMARRAY       ENDP

  CSEG           ENDS

  TSEG           SEGMENT PARA PUBLIC USE32 'CODE'
                 ASSUME CS:TSEG, SS:TSEG, DS:TSEG, ES:TSEG, FS:DSEG, GS:DGROUP










                                        14






  ;Sum the elements of a single precision array.  Array parameters are stored
  ;in a control block having structure of ARRAYDATA.  The linear address of the
  ;control block is stored at CCODEPTR.  An error code of -1 is returned in the
  ;condition code of the control block if the number of array elements is zero
  ;XLIB places an error code in the control block if an FPU exception occurs
  ;while calculating the sum.  This error code will have the FPU status word in
  ;the high word and the XLIB FPU error code in the low word.  Observe that this
  ;routine will be called with DS = FLATDSEL (flat-model data descriptor) and
  ;FS = DSEGSEL (DSEG data descriptor).
  SUMARRAY32     PROC NEAR
                 MOV            EBX,FS:CCODEPTR               ;Get control block
                 MOV            EDX,ARRAYDATA.ADDRESS[EBX]    ;Get array address
                 MOV            ESI,ARRAYDATA.N[EBX]          ;Get N
                 SUB            ESI,1
                 JB             NODATA                        ;Error:  N = 0
                 FLDZ                                         ;Initialize sum
  SUMLOOP:       FADD           DWORD PTR [EDX+4*ESI]
                 SUB            ESI,1
                 JAE            SUMLOOP
                 FSTP           ARRAYDATA.SUM[EBX]            ;Save sum
                 RET
  NODATA:        MOV            ARRAYDATA.CONDCODE[EBX],-1    ;Record error code
                 RET
  SUMARRAY32     ENDP

  TSEG           ENDS
                 END


                              +++++++++++++++++++++
                              + BASIC MAIN MODULE +
                              +++++++++++++++++++++


  'The following Microsoft BASIC 7.0 program should be linked with the above
  'library.  The BASIC program first initializes XLIB.  Next, it creates a
  'single precision array.  A control block for SUMARRAY is then constructed
  'and the call to SUMARRAY is executed.  Finally, the condition code in the
  'control block is inspected and results are printed.

  DEFINT A-Z

  'Declare XLIB procedures
  DECLARE FUNCTION XLIBMEMREQ& ()
  DECLARE FUNCTION INITXLIB& ()
  DECLARE FUNCTION XLIBCONFIG% ()

  'Declare procedures in the library linked with XLIB
  DECLARE FUNCTION LINADR& (SEG VARIABLE AS ANY)
  DECLARE SUB SUMARRAY (SEG VARIABLE AS ANY)







                                        15






  'Structure for the control block
  TYPE ARRAYDATA
    CONDCODE AS LONG      'Location to receive any error codes
    N AS LONG             'Number of elements to be summed
    ADDRESS AS LONG       'Linear address of the array
    SUM AS SINGLE         'Location for array sum
  END TYPE

  'Check XLIBCONFIG to see if XLIB has already been initialized.  If not then
  'call XLIBMEMREQ to find amount of conventional memory needed by XLIB and
  'release at least this amount with the BASIC SETMEM function.  XLIBMEMREQ
  'returns with sign bit of DX set if an error occurred.  The error is then
  'identified by AX.  XLIB will not be terminated upon completion of this
  'program in the Microsoft QBX environment; therefore, initialization is
  'required only once within the environment.
  IF XLIBCONFIG = 0 THEN
    TEMP& = XLIBMEMREQ
    IF TEMP& >= 0& THEN
      IF TEMP& > 0 THEN TEMP& = SETMEM(-TEMP& - 16&)
      TEMP& = INITXLIB                 'INITXLIB error code returned in TEMP&
    ELSE
      TEMP& = TEMP& AND &H7FFFFFFF     'Mask sign bit to leave error code only
    END IF
    IF TEMP& THEN
      PRINT "Library initialization error:  "; HEX$(TEMP&)
      END
    END IF
  END IF

  DIM A(100) AS SINGLE
  DIM AD AS ARRAYDATA

  FOR I = 0 TO 100            'Assign numbers to array
    A(I) = I
  NEXT I

  AD.CONDCODE = 0&            'Clear the error code
  AD.N = 50&                  'Sum first 50 elements
  AD.ADDRESS = LINADR(A(0))   'Calculate and record linear address of A(0)

  CALL SUMARRAY(AD)

  IF AD.CONDCODE THEN
    PRINT "Error: ";HEX$(AD.CONDCODE)
  ELSE
    PRINT "Sum: ";AD.SUM      'Should equal 1225
  ENDIF

  END
  -----------------------------------------------------------------------------







                                        16






                     Appendix A: Summary of XLIB Public Data


       The following is a summary of most public symbols located in the XLIB
  data segment DSEG.  This summary excludes the symbols presented in tables one
  through three.  All XLIB symbols conform to the Pascal naming convention.


  Symbols:  CSEGVAL, TSEGVAL, DSEGVAL, DGROUPVAL (Segment Values)
  Symbol Types:  WORD
  Default Settings:  CSEG, TSEG, DSEG, DGROUP
  Descriptions:  These are memory locations initialized to the respective
  segment values.  Code in TSEG should not contain segment constants since DOS
  may not be able to handle them in relocation fixups.  Read these locations to
  get segment values.  User segments should be handled the same way.

  Symbols:  CCODEPTR/CCODE (Condition Code Pointer/Condition Code)
  Symbol Types:  DWORD/DWORD
  Default Settings:  CCODEPTR = linear address of CCODE.  CCODE = 0.
  Descriptions:  XLIB interrupt handlers will place flags in the condition code
  to signal the occurrence of the interrupt.  CCODEPTR initially contains the
  linear address of CCODE.  CCODEPTR may be changed by the user, but must point
  to a DWORD in conventional memory.

  Symbol:  FPUCW (Floating Point Unit Control Word)
  Symbol Type:  WORD
  Default Setting:  0332H
  Description:  FPUCW is optionally loaded to the FPU control word by CALLPM and
  ENTERPM.  The default sets rounding control to nearest, precision control to
  64 bits, and unmasks exceptions for:  overflow, zero divide, and invalid
  operations.  Exceptions for underflow, precision, and denormalized operations
  are masked, and are therefore handled internally by the FPU.  Set bit 2 of
  OFLAGS to enable FPU save/restore and load of FPUCW.

  Symbol:  HOTKEY (Hot Key)
  Symbol Type:  WORD
  Default Setting:  022EH
  Description:  HOTKEY specifies the hot key for the keyboard interrupt handler.
  The low byte of HOTKEY specifies the scan code for the key.  The upper byte
  specifies the state of the shift keys.  Bit 8 specifies SHIFT; bit 9 specifies
  CTLR, and bit 10 specifies ALT.  Set bits mean that the designated key must be
  pressed.  All other bits are ignored.  The default hot key is CTRL C.  Bypass
  hot key detection by setting HOTKEY = 0.

  Symbol:  IFLAGS (Initialization Flags)
  Symbol Type:  WORD
  Default Setting:  0
  Description:  IFLAGS is used by INITXLIB to control the initialization
  process.  Bit 0 of IFLAGS determines DPMI/VCPI priority in the event that both
  interfaces are present.  If this bit is clear then DPMI will be installed in
  such cases.  The other bits are reserved.






                                        17






  Symbols:  IRQ0INTNO/IRQ8INTNO (IRQ X Interrupt Number)
  Symbol Types:  BYTE/BYTE
  Default Settings:  08H/70H
  Descriptions:  Specifies the interrupt number assigned to IRQ X.  IRQs 0
  through 7 and IRQs 8 through 15 are assigned to contiguous interrupt numbers.
  These locations are valid only after call to INITXLIB.

  Symbol:  OFLAGS (Operation Flags)
  Symbol Type:  WORD
  Default Setting:  0
  Description:  OFLAGS controls post-initialization operation of XLIB.
     Setting bit 0 disables XLIB interrupt handlers.  XLIB sets this bit only at
  calls to CALLPM and ENTERPM and then clears the bit upon return.
     Setting bit 1 causes all FPU interrupts to be cascaded to the inherited
  real-mode interrupt handler.  This bit is automatically set if no FPU is
  present.
     Setting bit 2 enables FPU save/restore in CALLPM and ENTERPM.  Setting this
  bit also causes load of FPUCW to the FPU control word.







































                                        18






                  Appendix B: Summary of XLIB Public Procedures


       The following is a summary of all XLIB public procedures.  All procedures
  entered from real mode are in CSEG and have far returns.  All protected-mode
  procedures are in TSEG and have 32-bit near returns.  All procedures conform
  to the Pascal naming and calling convention.  All XLIB procedures may be
  called with interrupts enabled and will return with interrupts enabled
  provided that they were enabled upon call.


  Initialization Routines


  XLIBMEMREQ (XLIB Memory Requirements)
  Purpose:  Find XLIB conventional memory requirements.
  CPU Mode:  Real
  Registers at Call:  None
  Return Registers:
     Sign bit of DX clear if successful.  Memory requirements in bytes returned
  in DX:AX.  DX:AX is upward adjusted to an integer multiple of 16.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美tickling网站挠脚心| 亚洲国产综合色| 亚洲女人的天堂| 九九国产精品视频| 99久久精品久久久久久清纯| 日韩午夜小视频| 亚洲福利一二三区| 成人av免费在线播放| 精品国产一区二区三区四区四| 一区二区三区小说| av电影在线观看一区| 久久久www免费人成精品| 亚洲成人激情自拍| 91国内精品野花午夜精品| 国产丝袜欧美中文另类| 日本sm残虐另类| 在线成人小视频| 亚洲国产sm捆绑调教视频| 91在线观看地址| 国产精品久99| 福利电影一区二区三区| www亚洲一区| 老鸭窝一区二区久久精品| 3d动漫精品啪啪| 亚洲一区二区三区在线播放| av动漫一区二区| 中文字幕一区二区三区四区| 国产盗摄女厕一区二区三区| 欧美精品一区二区三区视频| 麻豆国产一区二区| 欧美一区午夜视频在线观看 | 9色porny自拍视频一区二区| 国产人成一区二区三区影院| 久久99热这里只有精品| 欧美一区二区三区四区在线观看| 亚洲一区二区在线视频| 色综合色狠狠天天综合色| 国产精品免费久久| 波波电影院一区二区三区| 国产精品天美传媒沈樵| 99久久精品免费看| 一区二区免费看| 欧美日韩成人综合天天影院 | 日韩电影一区二区三区四区| 欧美一卡2卡三卡4卡5免费| 奇米888四色在线精品| 日韩一区二区三区电影在线观看 | 亚洲国产欧美在线| 5月丁香婷婷综合| 麻豆成人久久精品二区三区小说| 日韩免费一区二区| 国产成+人+日韩+欧美+亚洲| 中文字幕在线不卡国产视频| 在线免费一区三区| 日本强好片久久久久久aaa| 精品奇米国产一区二区三区| 极品少妇xxxx偷拍精品少妇| 日本一区免费视频| 欧美亚洲动漫制服丝袜| 日韩精品久久理论片| 26uuu亚洲综合色欧美| 成人av电影免费在线播放| 亚洲综合无码一区二区| 欧美一区二区视频观看视频| 国内精品伊人久久久久av一坑| 国产欧美日韩在线看| 欧美自拍偷拍午夜视频| 久久精品国产77777蜜臀| 日本一区二区视频在线观看| 色婷婷精品久久二区二区蜜臀av| 日本亚洲一区二区| 中文字幕日韩av资源站| 欧美精品久久久久久久多人混战| 久久99在线观看| 亚洲精品一卡二卡| 国产性做久久久久久| 欧美日韩不卡一区| 成人小视频在线| 舔着乳尖日韩一区| 亚洲天天做日日做天天谢日日欢| 欧美精品日日鲁夜夜添| 99久久国产免费看| 精品系列免费在线观看| 亚洲国产一区视频| 国产精品福利在线播放| 日韩免费高清av| 欧美性三三影院| 99久久久久久| 国产乱子轮精品视频| 亚洲国产精品久久久男人的天堂| 久久精品日韩一区二区三区| 欧美一卡二卡三卡四卡| 欧美亚洲综合久久| 99久久综合色| 福利视频网站一区二区三区| 美女高潮久久久| 天堂av在线一区| 亚洲精品午夜久久久| 久久精品一级爱片| 精品理论电影在线| 欧美疯狂做受xxxx富婆| 欧美日韩一二三区| 91成人在线精品| av男人天堂一区| 成人av网站免费观看| 国产suv精品一区二区6| 国产乱理伦片在线观看夜一区| 奇米一区二区三区av| 视频一区中文字幕| 亚洲午夜在线观看视频在线| 亚洲少妇最新在线视频| 国产精品久久看| ...av二区三区久久精品| 国产欧美一区二区在线| 久久久亚洲精品一区二区三区| 精品久久久久久久久久久久久久久| 777奇米四色成人影色区| 7777精品久久久大香线蕉 | 亚洲影视在线播放| 亚洲一区二区欧美激情| 性做久久久久久免费观看| 视频在线在亚洲| 免费在线观看成人| 免费成人在线网站| 国产一区999| 成人午夜电影网站| 色婷婷综合激情| 欧美午夜精品一区| 91麻豆精品国产91久久久资源速度| 欧美日韩国产综合一区二区三区 | 性感美女极品91精品| 奇米精品一区二区三区在线观看一| 蜜臀av一区二区| 国产高清亚洲一区| 91免费看片在线观看| 欧洲精品在线观看| 日韩欧美亚洲另类制服综合在线 | 亚洲精品欧美二区三区中文字幕| 一区二区三区日韩欧美精品| 五月综合激情网| 国产在线播精品第三| www.成人网.com| 欧美日韩免费高清一区色橹橹| 56国语精品自产拍在线观看| 精品国产91洋老外米糕| 亚洲日本青草视频在线怡红院| 亚洲一区二区三区四区五区中文| 秋霞成人午夜伦在线观看| 国产一区二区美女| 色噜噜久久综合| 日韩精品专区在线| 亚洲色图清纯唯美| 美女久久久精品| 99国产精品视频免费观看| 欧美精品日韩精品| 国产精品久久久久久久久果冻传媒 | 高清av一区二区| 欧美日韩国产大片| 国产精品视频免费| 天天色天天操综合| 成人av资源在线| 欧美一区午夜精品| 亚洲视频在线一区二区| 久久99热狠狠色一区二区| 色综合久久中文字幕综合网| 精品日韩一区二区| 香蕉影视欧美成人| 91在线免费看| 久久婷婷久久一区二区三区| 亚洲一区二区三区国产| 成人av一区二区三区| 欧美一级片在线观看| 亚洲欧美日韩系列| 国产一区二区不卡在线| 欧美日本在线看| 中文字幕一区二区三区四区| 韩国三级中文字幕hd久久精品| 欧美视频一区在线| 亚洲欧洲综合另类在线| 成人一区在线看| 欧美tk丨vk视频| 日韩电影在线看| 欧美日韩二区三区| 一区二区三区在线高清| jizzjizzjizz欧美| 欧美激情艳妇裸体舞| 精品一区二区三区免费播放| 欧美日韩视频不卡| 亚洲一区成人在线| 色婷婷激情一区二区三区| 中文字幕中文字幕一区| 国产成人午夜视频| 欧美精品一区二区三区蜜桃| 日韩**一区毛片| 欧美精品xxxxbbbb| 亚洲va韩国va欧美va精品| 欧美伊人久久久久久午夜久久久久| 国产精品国产三级国产| 不卡大黄网站免费看| 国产精品国产三级国产有无不卡|