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

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

?? args.asm

?? 匯編源代碼大全
?? ASM
字號:
;---- args.asm ----------------------------------------------------------
; This file contains both an argument grabber and a simple heap.
;
; By: David Kirschbaum
;
; Args parses the command line into a unix-style parameter array.
; To use it, you should be a .COM program: that is,
; you must start your program as follows:
;       code    segment public 'CODE'
;       assume  CS:code,DS:code,ES:code
;       extrn   _Args:near,argc:word,argv:word          ;argc & argv in CS:
;
; and end the file as follows:
;       code    ends
;       end
; Link to your program with LINK YOURFILE,args; then EXE2BIN YOURFILE.
; Your program should start with an ORG 100H statement, and should
; CALL _Args to have it parse the cmdline.
; Argc and Argv are just as in C; argc = # of params on cmd line,
; argv is an array of pointers to strings (null terminated, of course).
; Because MS-DOS doesn't pass us the name used to invoke the program,
; argv[0] always points to a null string.
; _Shift updates ARGC.
;
; See the file \bin\asm\exist.asm for an example.
; Do not call NEW before calling _Args.
;
; Changes:
;   16 July 1984   DRK    Copy args out of default location; fixed argv[0].
;   1 Aug 1984     DRK    Added _Shift.
;   16 Oct 1984    MCN    _Shift updates argc
;   21 Mar 1985    DRK    oh yeah?
;Toad Hall Tweak
;--------------------------------------------------------------------------

        PUBLIC  _Args,ARGC,ARGV,_Shift, New, Dispose

; Predeclared file handles
STDIN   equ     0
STDOUT  equ     1
STDERR  equ     2
STDSIO  equ     3
STDPRN  equ     4

; Maximum number of parameters
MAXPARMS        equ     32

; Declarations for accessing command line
NCHAR   equ     80h             ; address of number of chars in argument line
PARAMS  equ     81h             ; address of argument line

;---- code starts here --------------------------------------------------------
CSEG    segment public  'CODE'
        assume CS:CSEG,ds:CSEG

_Args   proc    near
        call    near ptr newinit
        ; initialize
        cld                     ; clear decrement mode
        mov     bx, 2           ; argc = 0 (will sub 2 from bx at end)
        mov     argv[0], offset null    ; prog name unknown; set to null.
        mov     si, PARAMS      ; i = 0
        mov     di, NCHAR
        mov     cl, [di]        ; cx = # of chars in command line
        xor     ch,ch
        jcxz    Done            ; no arg chars -> we're done.
        ; Allocate room for arguments; returns pointer in BX.
        push    bx
        push    cx
        mov     cx, 128         ; worst case
        call    New
        mov     di, bx
        pop     cx
        pop     bx
        ; Move arguments out of default DTA.
        push    cx
        push    di
        rep     movsb
        pop     si
        pop     cx

;Toad Hall:  When he's using redirection
;StdIn alone ("<") produces a command line length of 1 (space, CR)
;StdOut alone (">" : same result.
;StdIn and StdOut ("<wherever >wherever") produces a command line
;length of 2 (space, space, CR).
;A question mark alone would produce a command line length of 2
;(space, "?", CR).
        ; Big loop- find arguments...
ParmL:
        ; Little loop #1: strip leading blanks from argument.
        ; while (i<NCHAR && PARAMS[i] = ' ') do i++;
StripL: lodsb                   ; al = [si++]
        cmp     al, ' '         ; space?
        loopz   StripL          ; if so, keep skipping.
        jne     GotOne          ; If we found a nonblank, skip zero test.
        jcxz    Done            ; found no unblank chars -> we're done.
GotOne: dec     si              ; bump SI back to start of nonblank.
        inc     cx
        mov     argv[bx],si     ; save pointer to this string
        ; Little loop #2: skip nonblank chars.
        ; while (i<NCHAR && PARAMS[i] <> ' ') do i++;
SkipL:  lodsb
        cmp     al, ' '
        loopnz  SkipL
        jz      OkY
                ; Last char of line was not blank.
         inc    si      ; make next statement put null AFTER arg.
OkY:    mov     byte ptr [si][-1], 0    ; put null at end of arg
        add     bx,2            ; argc++;
        jcxz    Done            ; if we ran off end of cmdline, no more args.
         cmp    bx, MAXPARMS*2
         jb     ParmL           ; loop if argc < MAXPARMS.
Done:   ; All done finding parms; now share argc with caller.
        sub     bx, 2
        shr     bx, 1
        mov     argc, bx
        ret
_Args   endp

;---- _Shift: --------------------------------------------
; Shifts %2 to %1, %3 to %2, etc.  Leaves %0 alone.
; Works by shuffling argv[*].
_Shift  proc    near
        cld
        mov     si, offset argv[4]
        mov     di, offset argv[2]
        mov     cx, MAXPARMS
        rep     movsw
; wrongo!  Caller should do this...
;       sub argc, 1             ; there is now one less argument
        ret
_Shift  endp

;----- Newinit- initialize heap

Newinit proc    near
        mov     CS:firstfree, offset lastcode
        ret
Newinit endp

; Given length in CX, returns pointer in BX.
; Does not affect CX.
New     proc    near
        push    cx
        mov     bx, CS:firstfree
        add     cx, CS:firstfree
        mov     CS:firstfree, cx
        cmp     sp, cx
        pop     cx
        jbe     Newerror
        ret

stackmsg        db      '?New: heap overflow', 7, 13, 10
Newerror:
SML     equ     Newerror - stackmsg
        push    cs
        pop     ds
        mov     dx, offset stackmsg
        mov     cx, SML
        mov     bx, STDERR
        mov     ah, 40h
        int     21h
        mov     ax, 4c02h               ; terminate- error code 2
        int     21h
New     endp

;---- Call Dispose with ptr in BX, length in CX.
Dispose proc    near
        ret
Dispose endp

;------ Heap variables ------
firstfree       dw      ?

;---- parameter count, array ------------------------------------
; Pointers to up to MAXPARMS parameter strings are held here.

null    dw      0               ; the null string
argc    dw      ?
argv    dw      MAXPARMS dup (?)
lastcode        label   near

CSEG    ends
        end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线中文字幕一区| 国产一区二区三区久久久| 国产三级精品三级在线专区| 91精品国产免费| 日韩一区二区在线观看视频| 制服视频三区第一页精品| 欧美一区永久视频免费观看| 91精品欧美综合在线观看最新| 91精品国产综合久久精品| 欧美一三区三区四区免费在线看 | 欧美日韩另类国产亚洲欧美一级| 91美女片黄在线观看91美女| 色妞www精品视频| 欧美日韩亚洲综合在线| 日韩欧美国产电影| 久久久久久久久97黄色工厂| 欧美韩日一区二区三区| 一区二区欧美精品| 天天影视色香欲综合网老头| 麻豆91免费看| 91在线视频网址| 欧美日本免费一区二区三区| 精品欧美一区二区在线观看| 欧美国产激情二区三区| 亚洲综合清纯丝袜自拍| 久久成人免费网站| 91丝袜国产在线播放| 91麻豆精品国产91久久久使用方法| 精品久久久久香蕉网| 亚洲视频免费在线| 久久精品国产色蜜蜜麻豆| 成人高清视频免费观看| 欧美日韩国产免费| 国产性天天综合网| 五月婷婷另类国产| 国产乱一区二区| 欧美三级电影网站| 国产日产欧美一区| 亚洲高清久久久| 国产成人小视频| 3d动漫精品啪啪| 1区2区3区精品视频| 美女网站色91| 在线观看91视频| 欧美激情一区二区三区四区| 日韩电影一区二区三区四区| 99久久99久久精品免费观看| 欧美成人女星排行榜| 亚洲国产va精品久久久不卡综合 | 亚洲视频 欧洲视频| 美腿丝袜亚洲一区| 欧美性猛交xxxxxx富婆| 日本一区二区视频在线| 久久国产剧场电影| 欧美绝品在线观看成人午夜影视| 国产精品久久久久久久久晋中| 日本不卡视频在线| 欧美日精品一区视频| 日韩理论电影院| 色综合网色综合| 中文字幕亚洲区| 成人av网站在线观看| 久久婷婷综合激情| 精品一区二区三区在线观看 | 日韩午夜精品视频| 日日夜夜免费精品视频| 欧美性视频一区二区三区| 成人免费在线视频| 成人av在线播放网址| 国产精品大尺度| 国产成人免费视频网站| 国产亚洲自拍一区| 国产成人精品免费| 国产欧美一区二区精品性色| 国产精品一二三四| 国产亚洲女人久久久久毛片| 国产一区二区三区在线观看免费视频 | 韩国成人在线视频| 久久人人爽爽爽人久久久| 久久疯狂做爰流白浆xx| 精品国产乱码久久久久久夜甘婷婷 | eeuss国产一区二区三区| 国产亚洲一本大道中文在线| 国产ts人妖一区二区| 国产精品另类一区| 91成人网在线| 日本欧美一区二区三区| 欧美zozo另类异族| 国产xxx精品视频大全| 国产精品福利一区二区| 一本色道久久加勒比精品| 亚洲高清免费在线| 日韩一区二区在线免费观看| 激情图区综合网| 中文字幕五月欧美| 欧美三级蜜桃2在线观看| 美女免费视频一区二区| 久久久蜜臀国产一区二区| 国产精品白丝jk黑袜喷水| 自拍偷在线精品自拍偷无码专区| 色一情一伦一子一伦一区| 香蕉av福利精品导航| 日韩丝袜情趣美女图片| 国产激情一区二区三区| 亚洲男人的天堂在线观看| 6080日韩午夜伦伦午夜伦| 久久电影国产免费久久电影 | 欧美久久一二三四区| 九色|91porny| 亚洲精品第1页| 日韩欧美亚洲一区二区| 91丨porny丨中文| 久久电影网站中文字幕| 一区二区欧美在线观看| 久久夜色精品国产欧美乱极品| 色av一区二区| 精品一区二区三区久久久| 亚洲精品水蜜桃| 久久欧美一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 黄一区二区三区| 亚洲综合激情网| 国产欧美一区二区三区在线老狼| 欧美精品一级二级| 波多野结衣一区二区三区| 免费av成人在线| 亚洲第一主播视频| 日韩一区在线看| 国产精品热久久久久夜色精品三区| 欧美高清精品3d| 欧美综合天天夜夜久久| av资源网一区| 国产成人免费在线| 狠狠色丁香久久婷婷综| 蜜臀av性久久久久蜜臀av麻豆 | 久久综合色婷婷| 4438x亚洲最大成人网| 91亚洲精品乱码久久久久久蜜桃| 国产精品夜夜嗨| 激情久久久久久久久久久久久久久久| 亚洲第四色夜色| 亚洲国产色一区| 亚洲久草在线视频| 自拍偷拍亚洲欧美日韩| 国产精品久久久久影院亚瑟 | 国产精品久久久久毛片软件| 精品国产a毛片| 欧美大片日本大片免费观看| 欧美丰满一区二区免费视频| 欧美日韩免费高清一区色橹橹 | 99久久亚洲一区二区三区青草| 日本成人在线不卡视频| 日韩精品午夜视频| 日本亚洲免费观看| 美女精品一区二区| 久久精品国产99| 国产高清无密码一区二区三区| 国产毛片一区二区| 成人av在线资源| 在线亚洲高清视频| 欧美日韩一区二区电影| 欧美精选在线播放| 91精品国产色综合久久ai换脸| 日韩精品专区在线| 欧美精品一区二区蜜臀亚洲| 国产欧美va欧美不卡在线| 国产欧美一区视频| 一区二区三区欧美视频| 亚洲成a天堂v人片| 久久99精品久久久| 国产一区美女在线| 91猫先生在线| 欧美一区二区三级| 国产精品色呦呦| 亚洲一二三四久久| 久久99精品国产麻豆不卡| 成人av网址在线观看| 欧美日韩亚洲不卡| 精品福利一区二区三区免费视频| 国产精品欧美久久久久一区二区| 亚洲激情图片qvod| 久久99精品久久久久婷婷| 成人禁用看黄a在线| 欧美日韩一区二区三区免费看| 精品久久久久久久久久久久包黑料 | 精品一区二区在线播放| 成人妖精视频yjsp地址| 欧美三级午夜理伦三级中视频| 精品国产91洋老外米糕| 亚洲宅男天堂在线观看无病毒| 狠狠狠色丁香婷婷综合久久五月| 99久精品国产| 日韩欧美国产一二三区| 一区二区三区在线影院| 精品亚洲aⅴ乱码一区二区三区| 91影院在线观看| 久久精品一区二区三区不卡 | 国产激情视频一区二区三区欧美| 色婷婷一区二区三区四区| 久久综合五月天婷婷伊人|