道法网

刘强东:简历个人资料

本文目录一览:

雷军 26 年前写的代码,你见过吗?寒门才子刘强东:农村穷小子变为全省首富,从76个鸡蛋到身价千亿刘强东亲自拍板:斥资30亿,收购吴京代言“货运界顺丰”拉锯三年的刘强东明州民事诉讼为何以和解告终?女方没底气,男方拖不起

雷军 26 年前写的代码,你见过吗?

来源 | techug/post/code-wroten-by-leijun-22-years-ago.html

作为小米科技的创始人、董事长和首席执行官,雷军的名字如雷贯耳。网上出现一篇“刘强东的代码水平如何”的文章,有网友在下面回复“代码只服雷军”。雷军的代码水平真的很牛吗?

原来雷军年轻的时候,也是一名程序员,而且一干就是10年。雷军在22年前的作文中写道:我会当一辈子程序员,由此可以看出雷军对编程有着狂热的爱好。

还有网友分享了一篇雷军22年前写的代码,废话不多说,直接贴代码。

雷军写的这篇代码,是不是看起来很牛逼?简直就是亮瞎眼!

前方高能……

;; RI.A Revision 2.12 [ July 12, 1994 ]Revision equ V2.12 ;;;; RAMinit Release 2.0 ; Copyright (c) 1989-1994 by Yellow Rose Software Co.; Written by Mr. Leijun;; Function:; Press HotKey to remove all TSR program after this program;;; ..........................................................................; Removed Softwares by RI:; SPDOS v6.0F, WPS v3.0F; Game Busters III, IV; NETX ( Novell 3.11 ); PC-CACHE; Norton Cache; Microsoft SmartDrv; SideKick 1.56A; MOUSE Driver; Crazy (Monochrome simulate CGA program); RAMBIOS v2.0; 386MAX Version 6.01; ..........................................................................; No cancel softwares:; Windows 3.1 MSD;; No removed TSR softwares:; MS-DOS fastopen; Buffers, Files ... (QEMM 6.0); QCache (386MAX 6.01); ..........................................................................;COMMENTV2.04 Use mouse driver software reset function to initiation mouse2/17/1993 by Mr. Lei and Mr. FengV2.05 RI cannot work in Windows DOS prompt3/9/1993 by Mr. LeiV2.06 1. When XMS cannot allocate 1K memory, RI halts.2. RI repeat deallocates EMS memory.V2.07 HotKey Setup Error4/25/1993 by Mr. LeiV2.08 KB BufferV2.10 1. Release high memory blocks (EMM386 QEMM386 S-ICE 386MAX)2. RI copies flagV2.12 1. Exists a critical error in Init 8259 procedure2. Save [40:F0--FF] user data areadosseg.model tinydelocals @@org 100hStart: jmp Mainorg 103hTrue equ 1False equ 0MaxHandles equ 100hINT3 macroout 0ffh,alendm;; HotKey Status Test Var; --------------- ---------------;; 7 6 5 4 3 2 1 0 417 418 496; . . x . x . . . Left Alt is pressed 8 2; x . . . x . . . Right Alt is pressed 8 8; . . . x . x . . Left Ctrl is pressed 4 1; . x . . . x . . Right Ctrl is pressed 4 4; . . . . . . x . Left Shift is pressed 2; . . . . . . . x Right Shift is pressed 1;LeftAlt equ 00101000bRightAlt equ 10001000bLeftCtrl equ 00010100bRightCtrl equ 01000100bLeftShift equ 00000010bRightShift equ 00000001bHotKey db LeftCtrl or RightCtrlDataBegin dw 0NextDataSeg dw 0ffffholdInt2F_addr dw 0, 0XMS_control dw 0, 0Handle_begin dw 0cvtOfs dw 0 ; DOS 3.0 equ 0 and above DOS 4.0 is 1org 104hdb 0dhdb Revisiondb ??datedb 26org 114htsrLength dw 0MachineID db 0FCh ; IBM PC/ATAuxHotKey db 0 ; 2Dh ; X Scan CodeAuxHotKeyName db X$ Power db TrueFlag db !Kbd102 db 0NoFlag db 0StopFlag db 1DosEnv dw 0WorkSeg dw 0PrevDataSeg dw 0Copies db 1old_8259 db 0 ; 21h portdb 0 ; a1h portStatus dw 0XMSbit equ 00000001bEMSbit equ 00000010bSKbit equ 10000000bGoINT1C: db 0eaholdInt1C_addr dw 0, 0newINT1C:test cs:Status, SKbitjnz GoINT1Ccmp cs:StopFlag, 0jz @@0;; Mr. Lei 2/8/1993; Problem: if WPS quit and reenter, old RI cannt control keyboard. ;push dspush axxor ax, axmov ds, axmov ax, ds:[94]cmp ax, offset NewInt9pop axpop dsjnz GoINT1Cmov cs:StopFlag, 0@@0: push axpush dspush esxor ax, axmov ds, axmov es, ds:[94+2]cmp word ptr es:[101h], IE ; LEIjz @@1climov cs:StopFlag, 1mov ax, ds:[94]mov cs:oldINT9_addr2, axmov ax, ds:[94+2]mov cs:oldINT9_addr2[2], axmov ds:[94], offset newINT9_2mov ds:[94+2], cssti@@1: pop espop dspop axjmp GoINT1C; ----------------------------------------------------------------------; INT2F Func;; AX = C0D7h Return RI segment in AX; AX = C0D8h Removes all TSR programs after RI; AX = C0D9h Removes all TSR programs include RI; AX = C0DAh Removes all RI copies; ----------------------------------------------------------------------newINT2F:cmp ax, 0c0d7h ; LEI Hanzi GB Codejnz @@1push cspop axiret@@1: cmp ax, 0c0d7h+1jnz @@2jmp KeepSelf@@2: cmp ax, 0c0d7h+2jnz @@3jmp NoKeepSelf@@3: cmp ax, 0c0d7h+3jnz @@9mov cs:NextDataSeg, -1mov cs:Copies, 1jmp NoKeepSelf@@9: jmp dword ptr cs:oldInt2F_addrCallInt9:retnewINT9_2:mov cs:NoFlag, 1pushfdb 9ah ; call far ptr oldint9_addroldInt9_Addr2 dw 0, 0jmp newINT9_procnewINT9:pushfdb 9ah ; call far ptr oldint9_addroldInt9_Addr dw 0, 0 cmp cs:NoFlag, 0jz newINT9_procmov cs:NoFlag, 0iretnewINT9_proc:cmp cs:Flag, ! ; busy ?jnz @@0iret@@0:mov cs:Flag, ! ; set busy flagpush ax ; cmp hot keypush bxpush esmov ax,40hmov es,axcmp cs:AuxHotKey, 0jz @@_1mov bx, es:[1ah]cmp bx, es:[1ch]jz @@10push bxmov bl, es:[bx+1]cmp bl, cs:AuxHotKeypop bxjnz @@10@@_1:mov ah,es:[17h] ; test CTRL SHIFT ALTmov al,cs:HotKeypush axand ax,0f0fhcmp al,ahpop axjnz @@10 cmp cs:Kbd102, Truejnz @@1shr al, 1shr al, 1shr al, 1shr al, 1push axmov ah, es:[18h]and ax, 303hcmp al, ahpop axjnz @@10mov ah, es:[96h]shr ax, 1shr ax, 1and ax, 303hcmp al, ahjnz @@10 cmp cs:AuxHotKey, 0jz @@_3inc bxinc bxcmp bx, 3ehjb @@_2mov bx, 1eh@@_2:mov es:[1ah], bx@@_3:call IsWinDosor ax, axjz @@1call Beep@@10:stipop espop bxpop axmov cs:Flag, ; no busyiret@@1: ; OKpop espop bxpop axKeepSelf:call RemoveTSRpush esmov es,cs:WorkSegmov dx,es:tsrLengthmov di,dxmov al,0h ; Aug 24, 1993mov cx,100hrep stosbpop esint 27hNoKeepSelf:mov ax,0e07hint 10hmov cs:clsStr, 47h ; Color (White in Red)call RemoveTSRdec cs:Copiescall RestoreSelfIntVecpush escmp cs:PrevDataSeg, 0jz @@1mov es, cs:PrevDataSegmov es:NextDataSeg, -1@@1: pop esmov ax, 4c00hint 21h; ---------------------------------------------------------------------------IsWinDOS:mov ax, 1600hint 2fhcmp al, 01hjz @@9 cmp al, 0ffhjz @@9 ; Windows/386 Version 2.Xcmp al, 00hjz @@1 cmp al, 80hjnz @@9 ; Windows 3 in enhanced mode; Version number in AL/AH@@1:mov ax, 4680hint 2fhcmp al, 80hjnz @@9xor ax, axjmp @@10@@9: mov ax, 1@@10: ret; -----------------------------------------------------------------------RestoreSelfIntVec:cmp Copies, 0jz @@0ret@@0:clipush cspop dsxor ax, axmov es, axmov si, offset oldInt9_Addrmov di, 94movswmovswmov si, offset oldInt2F_Addrmov di, 2Fh4movswmovswmov si, offset oldInt1C_Addrmov di, 1Ch4movswmovswstiret; ------------- KERNEL PROGRAM ----------------------------------------------RemoveTSR:pop axcli ; Set stackmov sp, csmov ss, spmov sp, 100hstipush axcmp cs:Power, Truejnz @@1call Init8259@@1:push cspop ds@@_0:mov ax,ds:NextDataSegcmp ax, -1jz @@_1mov cs:PrevDataSeg, dsmov ds, axjmp @@_0@@_1: mov si,ds:DataBeginmov cs:WorkSeg, dslodswcmp ax, XXjz @@_2call Beepret@@_2:call RestoreEnvStrcall RestoreMCB ; restore current mcbcall CloseFilescall RestorePortcall RestoreLEDscall RestoreVecList ; Restore vectors listcall RestoreFloppyParamcmp cs:Power, Truejnz @@2call RestoreCVTchain ; Restore cvt chaincall RestoreMemoryManager@@2:call RestoreBiosDatacall Enable8259mov ah, 1 int 16hcall RestoreClockSpeedcall CloseSpeakercall ResetDiskcall UpdateTimecall ClosePRNmov bx,cs:WorkSegmov ah,50hint 21h ; Set PSP segmentmov ax,3 int 10h ; Set display modecall InitPRNcall InitMousemov al, cs:Copiescmp al, 1ja @@_sh1mov cs:ShowCopies, jmp @@_sh2@@_sh1: mov cs:ShowCopies, al@@_sh2:mov si, offset clsStrcall ColorPrintStrmov cs:Flag, ; no busycmp Copies, 1jnz @@_endmov cs:StopFlag, 0@@_end:call ClearKB_bufferretBeep:mov ax,0e07hint 10hret; #########################################################################ClearKB_Buffer:push espush bxmov bx, 0040hmov es, bxclimov bx, es:[1ah]mov es:[1ch], bxstipop bxpop esretInit8259:; cmp cs:Copies, 1; jz @@1; ret@@1:cmp cs:MachineID, 0fchja @@pc_xt@@AT:mov bx,870h ;mov al,0 ;out 0F1h,al ;jcxz $+2jcxz $+2mov al,11h ; ICW1out 0A0h,aljcxz $+2jcxz $+2out 20h,aljcxz $+2jcxz $+2mov al,bl ; ICW2out 0A1h,aljcxz $+2jcxz $+2mov al,bhout 21h,aljcxz $+2jcxz $+2mov al,2 ; ICW3out 0A1h,aljcxz $+2jcxz $+2mov al,4out 21h,aljcxz $+2jcxz $+2mov al,1 ; ICW4out 0A1h,aljcxz $+2jcxz $+2out 21h,aljcxz $+2jcxz $+2mov al,0FFh ; OCW1out 0A1h,aljcxz $+2jcxz $+2out 21h,alret@@PC_XT:mov al,13h ; ICW1out 20h,aljcxz $+2jcxz $+2mov al,8 ; ICW2out 21h,aljcxz $+2jcxz $+2mov al,9 ; ICW4out 21h,aljcxz $+2jcxz $+2mov al,0FFh ; OCW1out 21h,alretEnable8259:mov ax, word ptr cs:old_8259out 021h,aljcxz $+2jcxz $+2mov al,ahout 0a1h,al ; DEC PC Bus Mouseret ; July 1994 by Mr. Lei; -------------------------------------------------------------------------RestoreBiosData:lodswcmp ax, --jz @@1call Beepret@@1: push espush dimov di, 40hmov es, dimov di, 10hmovswmov di, 0a8h ; [40h:a8h]movswmovswmov di, 49hmov cx, 1dhrep movsbmov di, 0f0h ; User datamov cx, 8rep movswpop dipop esret; -------------------------------------------------------------------------RestoreMCB:push dspush eslodsw ; MZ@@0: lodswcmp ax, MMjz @@1mov es,axxor di,dimovsbmovswmovswinc axmov bx, dscmp ax, bxjz @@10mov byte ptr es:[8], 0 ; Aug 24, 1993@@10: cmp byte ptr es:[0], Zjnz @@0mov byte ptr es:[10h], 0jmp @@0@@1:pop espop dsret; -------------------------------------------------------------------------CloseFiles:mov ax, 5 ; Begin handlepush dspush simov cx, 15 ; Max handlesub cx, axinc cxmov bx, ax@@1: push bxpush cxmov ah, 3ehint 21hpop cxpop bxinc bxloop @@1pop sipop dsret; -------------------------------------------------------------------------RestorePort:mov di, 40h ; restore portmov es, dixor di, dimov cx, 8rep movswret; -------------------------------------------------------------------------RestoreLEDs:lodsband al, 11110000b ; LED statusmov ah, es:[17h]and ah, 00001111bor ah, aland ah, 0f0h ; Clear CTRL ALT SHIFTmov es:[17h], ahret; -------------------------------------------------------------------------RestoreEnvStr:lodswpush sipush dipush dspush esmov es, cs:DosEnvmov ds, axxor si, simov di, si@@0: lodsbor al, aljnz @@1 cmp byte ptr ds:[si], 0jz @@2@@1: stosbjmp @@0@@2: stosbstosbpop espop dspop dipop siret; -----------------------------------------------------------------------RestoreVecList:xor ax,axmov di,axmov es,axmov cx,100h@@0: lodswxchg dx, axlodswcmp dx, ELjnz @@1 cmp al, Ijnz @@1sub cl, ahpush cxmov cl, ahmov ax, es:[di-4]mov dx, es:[di-2]@@a: stoswxchg ax, dxstoswxchg ax, dxloop @@apop cxor cx, cxjz @@9jmp @@0@@1:xchg ax, dxstoswxchg ax, dxstoswloop @@0@@9:ret;----------------------------------------------------------------------------RestoreFloppyParam: ; Mr. Lei 2/10/1992push espush axxor ax, axmov es, axmov byte ptr es:[525h], 2pop axpop esret;---------------------------------------------------------------------------RestoreCVTchain:lodswcmp ax, VCjz @@_0call Beepret@@_0:push axpush cxpush es; -----------------------------------------------------------------lodsw ; DPBmov di, axlodswmov es, ax@@1: lodsbinc distosbadd di, cs:cvtOfsadd di, 10hmovswmovswles di, es:[di+2]cmp di, -1jnz @@1; -----------------------------------------------------------------lodsw ; DCBmov di, axlodswmov es, axxor ax, axdec axstosw; -----------------------------------------------------------------lodsw ; Device Driver Chainmov di, axlodswmov es, axxor cx, cx@@9: push dimov cl, 5rep movswpop diles di, es:[di]mov ax, diinc axjnz @@9pop espop cxpop axret; ----------------------------------------------------------------------------RestoreMemoryManager:test cs:Status, XMSbitjz @@1call LoadXMSstatus@@1:test cs:Status, EMSbitjz @@2call LoadEMSstatus@@2:retLoadEMSstatus:lodswcmp ax, MEjz @@_0call Beepret@@_0:lodswmov cx, axxor dx, dx@@_1: push dspush sipush dxpush cx@@0: cmp dx, ds:[si]jz @@1add si, 4loop @@0push cxmov cx, 5@@0: mov ah, 45h ; Deallocate Handle and Memoryint 67hor ah, ahjz @@1loop @@0@@1: pop cx@@1:pop cxpop dxpop sipop dsinc dxcmp dx, 100hjb @@_1shl cx, 1shl cx, 1add si, cxretLoadXMSstatus:lodswcmp ax, MXjz @@_0call Beepret@@_0:lodswmov cx, axjcxz @@5@@1:lodswmov dx, ax@@2: push dxmov ah, 0ah ; freecall dword ptr cs:xms_controlor ax, axpop dxjnz @@4 cmp bl, 0abhjnz @@4push dxmov ah, 0dh ; unlockcall dword ptr cs:xms_controlor ax, axpop dxjmp @@2@@4: loop @@1@@5: retendp; -----------------------------------------------------------------------CloseSpeaker:in al, 61hand al, 0fchout 61h, alret; -----------------------------------------------------------------------RestoreClockSpeed:mov al, 00110110bout 43h, alxor ax, axout 40h, alout 40h, alret; -----------------------------------------------------------------------ResetDisk:xor ax, axxor dx, dxint 13h ; Restore Ainc dxint 13h ; Restore Bmov dl, 80hint 13h ; Restore Cret; --------------------------------------------------------------------------ClosePRN:mov ah, 51h ; Get PSP segint 21hmov es, bxmov ax, es:[16h] ; Prev PSP segcmp ax, bxjnz @@9mov ax, 3e00h ; COMMANDmov bx, 4 int 21h@@9:retInitPRN:mov ax, 3e00hmov bx, 4 ; PRNint 21hmov ax, 3d01hmov dx, offset PRNnamepush cspop dsint 21hretPRNname db PRN,0InitMouse: ; 2/16/1993 by Mr. Leipush esxor ax, axmov es, axcmp word ptr es:[33h4+2], 0jz @@0 cmp word ptr es:[33h4], 0jz @@0mov ax, 21hint 33h ; Hook Mouse Interrupt@@0: pop esret; ------------- CMOS CLOCK set to System -----------------------------------UpdateTime:call GetRealTimemov ah, 2dhint 21hretGetRealTime:mov ah,2 int 1Ahmov al,chcall bcdxchgmov ch,almov al,clcall bcdxchgmov cl,almov al,dhcall bcdxchgmov dh,almov dl,0retBCDxchg:push axpush cxmov cl,4shr al,clpop cxmov bl,0Ahmul blpop bxand bl,0Fhadd al,blret; -----------------------------------------------------------------------; Display stringColorPrintStr:lodsbmov bh, al ; colorxor cx, cxmov dx, 014fhmov ax, 0600hint 10hmov ah, 02 ; GotoXY (0, 0)xor dx, dxmov bh, 0 int 10hPrintStr:push cspop dsxor bx, bx@@1: lodsbcmp al, $jz @@2or al, aljz @@2mov ah, 0ehint 10hjmp short @@1@@2: mov al, cs:clsStrcolormov cs:clsStr, alret; -----------------------------------------------------------------------Self dw 0clsStrcolor db 17hclsStr db 17h ; Color (White in Blue)db RAMinit Version 2.12 (c) 1989-1994 by KingSoft Ltd. Mr. Leijundb 0dh,0ahdb [ShowCopies db db ] Activate...,0ah,0dh,$endTSR equ $mcbList equ offset endTSR + 2 + 2vecList equ mcbList + 710 + 2 + 10h + 1 + 400hdevLink equ vecList + 4 + 5 26 + 4 + 10 30h + 4xmsList equ devLink + 2 + MaxHandles 2emsList equ xmsList + 4 + 1024crtMode equ emsList + 2 + 1Dh + 4 + 10htsrLen equ crtMode + 1;; DOS Environment Reserved by RI; --------------------------------------------------; Flag XX 2 bytes; Environment Segment 1 word; Free MCBs =710 bytes; MCB segment 1 word; MCB 5 bytes; End flag MM 1 word; COM LPT ports 10h bytes; LEDs status 1 bytes; Packed vectors list =400h bytes; Flag CV 2 bytes; CVT First DPB pointer 4 bytes; DPBs data =526 bytes; First DCB pointer 4 bytes; Pointer to NUL 4 bytes; All device driver datas =30h10 bytes; Flag XM 2 bytes; XMS free handle counter 2 bytes; EMS free handle list =100h4 bytes; Flag EM 2 bytes; EMS free handle counter 2 bytes; EMS free handle list =1024 bytes; EMS handle 1 word; Number of pages 1 word; Flag -- 1 word; Equipment List 1 word; CRT 40:49h-66h 1dh bytes; 40:A8h 1 dword; BIOS User Data Area 40:F0--FF 10h bytes; **;main: jmp main0Print Macro StrLea dx, Strcall DisplayStrendmInstMsg db RAMinit Version 2.12 db Copyright (c) 1989-1994 by KingSoft Ltd. ,0dh,0ah,$Msg0 db Already installed !,0dh,0ah,0ahdb For Help, type RI /?. ,0dh,0ah,$Msg_0 db 0ah,Residents a new RAMinit copy [y/n] ? $Msg_2 db OK, RI No.Msg_RI db 2db residents successful !, 0dh,0ah,$Msg1 db Activate with: $KeyMsg db Right_Shift$db Left_Shift$ KMsg1 db Left_Ctrl$ db Left_Alt$ db Right_Ctrl$ db Right_Alt$ KMsg2 db Ctrl$ db Alt$ db Ctrl$ db Alt$ PlusMsg db + $crlf db 0dh,0ah,$HelpMsg db Programmed by Mr. Leijun Dec 1992, 0dh,0ah,0ahdb Usage: RI [options],0dh,0ah,0ahdb /H,/? Display this screen,0dh,0ahdb /CLS Removes all TSR programs after current RI,0dh,0ahdb /RET Removes TSR programs include current RI,0dh,0ahdb /NEW Residents a new data copy of current environment,0dh,0ahdb /ALL Removes all RI copies and all other tsr programs,0dh,0ahdb /Sxyy.. Define Hotkey x=AuxHotkey yy..=shift status,0dh,0ahdb x=auxiliary hotkey (default is X) ,0dh,0ahdb x equ 1 means need AuxHotkey,0dh,0ahdb yy..=shift status [CAScas],0dh,0ahdb C: Left Ctrl A: Left Alt S: Left Shift,0dh,0ahdb c: Right Ctrl a: Right Alt s: Right Shift,0dh,0ah,0ahdb Example: RI /S1c means Hotkey is Right_Ctrl+X,0dh,0ahdb RI /S0Cc means HotKey is Left_Ctrl+Right_Ctrl,0dh,0ahdb RI /CLS equals simply press hotkey,0dh,0ahdb RI /RET Removes all TSRs after current RI and this RI,0dh,0ahdb 0ahdb Contact me for RAMinit problems: (01)2561155 Call 1997,0dh,0ahdb $ErrMsg db ERROR: Invalid options !,0dh,0ah,0ah,$WinErr db 7, Sorry, I cannot work in Windows DOS environment.,0dh,0ah,$SetMsg db 7, Defines new Hotkey successful !,0dh,0ah,0ah,$tsrOK db FalseMain0:cldPrint instMsgcall IsWinDosor ax, axjz @@1Print WinErrmov ax, 4c00hint 21h@@1:call HotKeyValidmov cs:Status, 0call EMS_testcall CmpDosVercall CmpSideKickcall GetMachineIDcall ModifyHotKeyPromptmov ax, 0c0d7hint 2fhmov es, axcmp word ptr es:[101h], IE ; LEIjnz @@0mov cs:Self, ax@@0:call CmdLinecall PrintHotKeyPromptcmp cs:tsrOK, truejz @@2call tsrReplyOK@@2: cmp cs:tsrOK, truejnz @@_2call PrintCopies@@_2:mov word ptr cs:[100h], ELmov byte ptr cs:[102h], Ipush cspop espush cspop dsstdmov si, offset eofmov cx, eof - offset Heremov di, tsrLenadd di, cxinc cxrep movsbcldmov bx, tsrLenjmp bxHere:mov ax,csmov es,axmov di,offset endTSRmov cs:DataBegin, dimov cs:NextDataSeg, -1mov ax, XXstoswin al, 0a1hmov ah, alin al, 21hpush axmov word ptr cs:old_8259, axxor ax, axout 21h,al ; CLIcall SaveOtherscall SetSelfIntcall BackupVecListcmp cs:Power, truejnz @@20call BackupCVTchaincall BackupMemoryManager@@20:call BackupBiosDatastimov cs:Flag, ; no busymov cs:StopFlag, 0 ;mov cs:tsrLength, dicall SetDosEnvSegcmp cs:Self, 0jz @@29push cspop dspush cspop escldmov cx, cs:tsrLengthmov si, cs:DataBeginsub cx, simov di, 120hmov cs:DataBegin, direp movsbmov cs:tsrLength, di@@29:pop axout 21h, al ; STImov al, ahout 0a1h, almov dx, cs:tsrLengthinc dxint 27h; ----------------------------------------------------------------------------SetDosEnvSeg:push dspush esmov ax, cs@@10: mov es, axmov ax, es:[16h] ; Get father process psp segmentor ax, axjz @@11mov bx, escmp ax, bxjnz @@10@@11:mov es, word ptr es:[2ch] ; Get father process env segmentmov cs:DosEnv, espop espop dsret; ----------------------------------------------------------------------------SaveOthers:mov ax, cs:[2ch] ; Env Segstoswcall backupMCB ; Current MCBmov ax, 40h ; COM LPT Portmov ds, axmov si, 0hmov cx, 8rep movswmov si, 17h ; LED statuslodsbstosb; call OpenLEDsret; --------------------------------------------------------------------------backupMCB:mov ax, ZMstoswpush dspush esmov ah, 52hint 21h ; Get MCB chain headmov ax, es:[bx-2]pop es@@0: mov ds, axcmp byte ptr ds:[0], Z ; End ?jz @@20 cmp byte ptr ds:[0], M ; Memory control blockjnz @@30 cmp word ptr ds:[3], 0 ; Nul mcbjz @@10 cmp word ptr ds:[1], 0 ; Free MCBjnz @@10call SaveFreeMCB@@10: inc axadd ax, ds:[3]jmp @@0@@20:call SaveFreeMCBcmp ax, 0a000hinc axjnb @@30mov ax, 9fffh ; MS-DOS UMBjmp @@0@@30:cmp ax, 0c000h ; 386MAXja @@90mov ax, 0c020hjmp @@0@@90: ; Error ?pop dsmov ax, MM ; Set MCB flagstoswretSaveFreeMCB:stoswxor si,simovsbmovswmovswret;; push ax; stosw; xor si,si; movsb; movsw; movsw; pop ax; cmp ax, 09fffh; jnb @@3; push ax; push ds; mov ds,ax; cmp byte ptr ds:[0], M; pop ds; pop ax; jnz @@4; mov ax, 09fffh ; MS-DOS UMB; jmp @@0; @@4: cmp ax, 0c000h; ja @@3; mov ax, 0c020h ; 386MAX; jmp @@0;; --------------------------------------------------------------------------OpenLEDs: push ax ; Open all LEDsor al, 070hmov ds:[17h], almov ah, 1 int 16hmov cx, 4 ; Delay@@20: push cxxor cx, cx@@21: loop @@21pop cxloop @@20pop axmov ds:[17h], almov ah, 1 int 16hret; --------------------------------------------------------------------------SetSelfInt:push espush dicmp cs:self, 0jnz @@1push cspop dsmov ax,3509hint 21hmov word ptr cs:oldInt9_addr,bxmov word ptr cs:oldInt9_addr[2],esmov dx,offset NewInt9mov ax,2509hint 21hmov ax,352Fhint 21hmov word ptr cs:oldInt2F_addr,bxmov word ptr cs:oldInt2F_addr[2],esmov dx,offset newInt2Fmov ax,252Fhint 21hmov ax,351Chint 21hmov word ptr cs:oldInt1C_addr,bxmov word ptr cs:oldInt1C_addr[2],esmov dx,offset newInt1Cmov ax,251chint 21hclijmp @@2@@1:mov es, cs:Selfinc es:Copies@@_0: cmp es:NextDataSeg, -1jz @@_1mov es, es:NextDataSegjmp @@_0@@_1: mov es:NextDataSeg, cs@@2:pop dipop esret; -----------------------------------------------------------------------SaveCounter:mov word ptr es:[di], ELmov byte ptr es:[di+2], Imov byte ptr es:[di+3], blxor bx, bxadd di, 4ret; -----------------------------------------------------------------------DisplayStr: push cspop dsmov ah, 9 int 21hret; -----------------------------------------------------------------------CmdLine:push cspop dsxor ax, axmov si, 80hlodsbor al, aljnz @@1ret@@1:mov cx, axdec axpush axpush si@@0: lodsbcmp al, jz @@0 cmp al, /jnz @@2lodsbcmp al, Sjz @@_2cmp al, sjnz @@2@@_2:call SetHotKeyPrint SetMsgmov ax, 4c00hint 21h@@2:pop sipop axpush axpush si@@_3: lodsbcmp al, Ajb @@3 cmp al, Zja @@3add byte ptr ds:[si-1],20h ; DownCase@@3: loop @@_3pop sipop cxadd si, cxlodsbcmp al, s ; CLSjnz @@5 cmp word ptr ds:[si-3], lcjnz @@5 cmp cs:Self, 0jz @Errmov ax, 0c0d7h+1 int 2fh@@5: cmp al, h ; HELPjz @helpcmp al, ?jz @helpcmp al, t ; RETjnz @@6 cmp word ptr ds:[si-3], erjnz @@6@@7:cmp cs:Self, 0jz @Errmov ax, 0c0d7h+2 int 2fh@@6: cmp al, w ; NEWjnz @@8 cmp word ptr ds:[si-3], enjnz @@8mov cs:tsrOK, trueret@@8:cmp al, l ; ALLjnz @@9 cmp word ptr ds:[si-3], lajnz @@9mov ax, 0c0d7h+3 int 2fh@@9:cmp al, jnz @Errret@Err:Print ErrMsg@help:Print HelpMsgmov ax, 4c00hint 21h;---------------------------------------------------------------------------tsrReplyOK:cmp cs:Self, 0jz @@1Print Msg0push esmov ax, cs:Self@@_10: mov es, axmov ax, es:NextDataSegcmp ax, -1jnz @@_10mov ax, es@@_0: push axdec axmov es, axmov bx, es:[3]pop axadd ax, bxinc axmov es, axcmp word ptr es:[0], OCjz @@_0mov bx, cscmp ax, bxpop esjz @@2Print Msg_0mov ah, 1 int 21hpush axPrint crlfpop axcmp al, yjz @@3 cmp al, Yjz @@3@@2: ; Print Msg_1mov ax, 4c01hint 21h@@3:@@1: mov cs:tsrOK, trueretPrintCopies:cmp cs:Self, 0jz @@1push es ; Added -by- Mr. Leimov es, cs:Self ; Aug 24, 1993mov al, es:Copiesinc al ; Total RI copiespush ax ; Set es = current mcbmov ax, csdec axmov es, axpop axmov cx, 5 ; Search end of file namemov bx, 8@@10: inc bxcmp byte ptr es:[bx], 20hjz @@20 cmp byte ptr es:[bx], 0ffhjz @@20 cmp byte ptr es:[bx], 00hjz @@20loop @@10@@20: ; Set current RI nomov byte ptr es:[bx], : ; RI:2mov byte ptr es:[bx+1], alcmp bx, 8+7jnb @@30mov byte ptr es:[bx+2], 0@@30:pop esmov cs:Msg_RI, alPrint Msg_2@@1: ret;---------------------------------------------------------------------------; Backup Interrupt Vector List;BackupVecList:push dspush cspop esxor si,si ; Vectorsmov ds,simovswmovswxor bx, bxmov cx,00ffh@@0: lodswxchg dx, axlodswcmp ax, es:[di-2]jnz @@1 cmp dx, es:[di-4]jz @@2@@1: or bx, bxjz @@3call SaveCounter@@3: xchg dx, axstoswxchg dx, axstoswloop @@0jmp @@4@@2: inc bxloop @@0call SaveCounter@@4:pop dsret;;-----------------------------------------------------------------------------BackupCVTchain:mov ax, VCstoswpush axpush bxpush cxpush dspush esmov ah, 52hint 21h ; ES:BX -- DOS table as described below; --------------------------------------------------------------------push es ; DPB chainspush bxlds si, es:[bx]push cspop esmov ax, sistoswmov ax, dsstoswmov bx, cs:cvtOfsxor cx, cx@@1: mov al, ds:[si+1]stosbmov ax, ds:[si+bx+12h]stoswmov ax, ds:[si+bx+14h]stoswinc cxlds si, ds:[si+bx+18h]cmp si, -1jnz @@1; mov ax, 5; mul cl; add ax, 4; add cs:tsrLength, axpop bxpop es; --------------------------------------------------------------------push es ; DCB file control blockspush bxles bx, es:[bx+4]@@11: cmp word ptr es:[bx], -1jz @@10les bx, es:[bx]jmp @@11@@10:mov ax, esxchg ax, bxpush cspop esstoswxchg ax, bxstoswpop bxpop es; add cs:tsrLength, 4; ---------------------------------------------------------------------push es ; Device Driver Chainspop dsadd bx, 22hmov si, bx ; NULpop esmov ax, sistoswmov ax, dsstoswxor cx, cxxor bx, bx@@9: push simov cl, 5rep movswinc bxpop silds si, ds:[si]mov ax, siinc axjnz @@9pop dspop cxpop bxpop axret; ----------------------------------------------------------------------------BackupBiosData:mov ax, --stoswpush dspush simov si, 40hmov ds, simov si, 10hmovswmov si, 0a8hmovswmovswmov si, 49hmov cx, 1dhrep movsbmov si, 0f0hmov cx, 8rep movswpop sipop dsret; ---------------------------------------------------------------------------BackupMemoryManager:push cspop espush dspush escall SaveXMSstatuscall SaveEMSstatuspop espop dsret;---------------------------------------------------------------------SaveEMSstatus:test cs:status, EMSbitjnz @@1ret@@1:mov ax, MEstoswinc diinc dipush dimov ah, 4dhint 67hpop dimov es:[di-2], bxshl bx, 1shl bx, 1add di, bxret; -------------------------------------------------------------------SaveXMSstatus:call XMS_testtest cs:status, XMSbitjnz @@1ret@@1:mov ax, MXstoswmov dx, 1call XMS_allocjnz @@_1xor cx, cx ; XMS alloc failurestoswret@@_1:push dxsub dx, MaxHandles 10@@2:push dxcall XMS_Lockpop dxjnz @@3 cmp bl, 0a2hjnz @@4add dx, 10jmp @@2@@3: push dxcall XMS_unlockpop dx@@4:mov cs:handle_begin, dxpop dxpush dxcall XMS_bstatxor cx, cxmov cl, blinc cxpop dxcall XMS_Freemov dx, cs:Handle_beginpush cxpush cspop esmov ax, cxstosw@@5: push dxcall XMS_Lockpop dxjnz @@6 cmp bl, 0a2h ; Handle invalidjz @@7@@6: call XMS_unlockadd dx, 10jmp @@5@@7: mov ax, dxstoswadd dx, 10loop @@5pop cxret; ------------------------------------------------------------------XMS_test:push esmov ax, 4300hint 2fhcmp al, 80hjnz @@9mov ax, 4310hint 2fhmov cs:XMS_control, bxmov cs:XMS_control[2], esor cs:Status, XMSbit@@9:pop esretXMS_stat:mov ah, 0call dword ptr cs:xms_controlmov hma_exist, dlrethma_exist db 0XMS_alloc:mov ah, 9call dword ptr cs:xms_controlor ax, axretXMS_lock:mov ah, 0chcall dword ptr cs:xms_controlor ax, axretXMS_unlock:mov ah, 0dhcall dword ptr cs:xms_controlor ax, axretXMS_bstat:mov ah, 0ehcall dword ptr cs:xms_controlor ax, axretXMS_free:mov ah, 0ahcall dword ptr cs:xms_controlor ax, axret; ----------------------------------------------------------------------------EMS_test:push cspop dsmov dx, offset EMMnamemov ax, 3d00hint 21hjc @@2mov bx, axmov ah, 3ehint 21hor cs:Status, EMSbit@@2:retEMMname db EMMXXXX0,0; -----------------------------------------------------------------------------SetHotKey:xor bx, bxlodsbpush ax@@1: lodsbcmp al, 0dhjz @@9 cmp al, Cjnz @@2or bl, LeftCtrljmp @@1@@2:cmp al, cjnz @@3or bl, RightCtrljmp @@1@@3:cmp al, Ajnz @@4or bl, LeftAltjmp @@1@@4:cmp al, ajnz @@5or bl, RightAltjmp @@1@@5:cmp al, Sjnz @@6or bl, LeftShiftjmp @@1@@6:cmp al, sjnz @@7or bl, RightShiftjmp @@1@@7: pop axjmp @Err@@9:mov cs:HotKey, blpop axmov cs:AuxHotKey, 2dh ; X scan keycmp al, 1jz @@29mov cs:AuxHotKey, 0@@29:cmp cs:Self, 0jz @@30push esmov es, cs:Selfmov es:HotKey, blmov bl, cs:AuxHotKeymov es:AuxHotKey, blpop es@@30:call GetRunFileNamemov ax, 3d02hint 21hjc @@10push cspop dsmov bx, axmov cx, 4mov dx, 100hmov ah, 40hint 21hjc @@10mov ax, 4200hxor cx, cxmov dx, 17hint 21hjc @@10mov cx, 1mov dx, offset AuxHotKeymov ah, 40hint 21hjc @@10mov ah, 3ehint 21h@@10:ret; -----------------------------------------------------------------------GetRunFileName:; Return:; DS:DX Pointer of this run file name ASCIIZ stringpush axpush bxpush cxpush sipush dipush espush cspop esmov ax, es:[2ch]mov es, axxor di, dimov cx, 1000hxor al, al@@1: repnz scasbcmp es:[di], alloopnz @@1mov dx, diadd dx, 3push espop dspop espop dipop sipop cxpop bxpop axret; ---------------------------------------------------------------------------GetMachineID:push esmov KBD102,Truemov ax,40hmov es,axtest byte ptr es:[96h], 00010000bjnz @@1mov Kbd102,False@@1:xor ax,axdec axmov es,axmov al,es:[0eh]mov cs:MachineID, alpop esret; ---------------------------------------------------------------------------ModifyHotKeyPrompt:cmp cs:Kbd102, Truejz @@9push cspop espush cspop dsmov cx, 124mov si, offset KMsg2mov di, offset KMsg1rep movsb@@9: cmp cs:MachineID, 0fchjna @@10mov cs:clsStrcolor, 70h ; Monomov cs:clsStr, 70h@@10:ret; ---------------------------------------------------------------------------PrintHotKeyPrompt:Print Msg1mov al, cs:HotKeymov ah, alshr al, 1shr al, 1and ax, 33chor al, ahmov dx, offset KeyMsg@@40:or ax, ax ; Mr. Lei 4/25/1993jz @@_42shr al, 1push axjnc @@41push axcall ColorDisplayStr; mov ah, 9; int 21hpop axor al, aljz @@42push dxmov dx, offset PlusMsgcall ColorDisplayStr; Print PlusMsgpop dx@@41: add dx, 12pop axjmp @@40@@42: pop ax@@_42: cmp cs:AuxHotKey, 0jz @@43 cmp cs:HotKey, 0 ; Mr. Leijz @@_43mov dx, offset PlusMsgcall ColorDisplayStr; Print PlusMsg@@_43: mov dx, offset AuxHotKeyNamecall ColorDisplayStr; Print AuxHotKeyName@@43:Print crlfretColorDisplayStr:push bxpush cxpush dxpush simov bl, 0fhmov si, dxxor bh, bhmov cx, 1@@1: lodsbcmp al, $jz @@2or al, aljz @@2push cxmov ah, 09hint 10hmov ah, 3 int 10hinc dlmov ah, 2 int 10hpop cxjmp short @@1@@2:pop sipop dxpop cxpop bxret; ---------------------------------------------------------------------------CmpSideKick:xor ax, axmov es, axles bx, es:[20h]cmp word ptr es:[bx-4], 4b53hjnz @@1 cmp word ptr es:[bx-2], 4942hjz @@2@@1: mov es, axles bx, es:[94h]cmp word ptr es:[bx-2], 4b53hjz @@2ret@@2: or cs:Status, SKbitret; ---------------------------------------------------------------------------CmpDosVer: mov ah, 30hint 21hcmp al, 3jb @@1 cmp al, 3jna @@2mov cs:cvtOfs, 1ret@@2: mov cs:cvtOfs, 0ret@@1: Print DosVerErrmov ax, 4cffhint 21hDosVerErr db Sorry, DOS version too lower !,0dh,0ah,$HotKeyValid:cmp cs:HotKey, 0jnz @@_1cmp cs:AuxHotKey, 0jnz @@_1Print HotKeyErrmov ax, 4cfehint 21h@@_1: retHotKeyErr db Sorry, please setup hotkey again. ,0dh,0ah,$eof:endsend Start; ------------- The End ! ---------------------------------------------------

电脑是雷军人生中的最爱,电脑的世界对于雷军而言实在太美妙。雷军觉得,电脑的世界没有人那么复杂。只要你程序写得好,就可以和电脑处好关系,也可以指挥电脑,做一些你想做的事情。

雷军认为,电脑的世界很大,程序员都是活在自己的王国里。在这里,程序员可以主宰一切。正是因为热爱,所以雷军一干就是10年。

雷军心爱的代码被新程序员格式化

对于雷军来说,虽然现在他更加 专注在产品开发以及管理方面,但是曾经他对心爱的代码视为珍宝。之前来了一位技术支持人员,而这位技术人员进公司的第一份工作,就是帮雷军整理他的硬盘。

一位理解错误,原本只要覆盖式的安装系统就可以的事情,这位程序员却把雷军的硬盘格式化了。这些代码是雷军多年来积累下来,而且也是他的最爱,就这样成为 炮灰,相信雷军非常难过。

编程是技术,也是一种艺术

雷军认为,编程的工作同石匠的工作相类似,即是技术活,也是体力活,而编写优秀的软件,算是一件比较难得事。

编程是一门技术活,因此才有可能大规模的进行,进而才会有软件工程。此外,因为编程是一种艺术,因此有很多好的产品。

雷军关爱下属 亲自指导女程序员

因为自己是程序员出身,雷军在技术方面的水平不用质疑。雷军对于下面的程序员,也是很关照的。

早前,雷军亲自指导美女程序员的一张图片爆红。从曝光的图片来看,这名由雷总亲自指导的女程序员,竟是位前端开发工程师。雷总下基层,还亲自指导码农,小米不强大都说不过去。

当然,上面的只是雷军生活中的一个小插曲。曾经,雷军认为自己会干一辈子的编程。但是现在,雷军作为小米董事长,身价已经不能用数字来衡量了。他接触程序的机会,相信是少之又少,因为下面有很多程序员帮他干活。

寒门才子刘强东:农村穷小子变为全省首富,从76个鸡蛋到身价千亿

文|焱燚

编辑|文史鉴赏

自古将相出寒门。

刘强东就是典型的寒门才子,他18岁以高考状元的身份考入中国人民大学,踏入大学的他仅有的财产就是亲朋好友为他凑的几百块钱和76个鸡蛋。

穷则通,通则变,变则久。

从小经历过苦日子的刘强东为了改变命运,他没有选择毕业后就选择一份安稳工作,而是选择自己创业。

从1998年创建京东至今,京东也由当初的一个小柜台发展到如今市值超千亿美元的商业帝国,2014年刘强东也一举成为江苏省的首富。

刘强东是怎样完成蜕变从一个农村的穷小子变为千亿资产的富豪。

穷人的孩子早当家

1974年刘强东出生于江苏省宿迁市的一个农村家庭中,他下边还有一个妹妹。从小他的父母因为工作原因不能在家照顾兄妹俩,所以只能将兄妹两个送到外婆家让外婆照顾。

因为当时的生活水平并不好,由于家庭贫困,红薯和玉米成为刘强东饭桌上的常客,大米都不是每天可以吃到的。

而猪肉更是只有在过年的时候才可以吃上,吃完肉后还用水冲一下把油花也喝掉。那段日子里吃的红薯给刘强东留下了深刻的印象。

刘强东在后来说到他三十多年来都没怎么吃过红薯,因为真的是吃红薯吃怕了。

每天早中晚都是红薯,就连过年的时候餐桌上也离不开红薯,他说最严重的时候是在高中,那时候只要一看见红薯就想吐。

正是因为生活条件如此艰苦,所以刘强东从小努力学习,而且成绩十分优秀。

而刘强东在学习之余还得帮外婆分担一些家务活,割草,喂猪这都是刘强东小时候经常干的,但他从小也表现了自己与其他人的不同之处,小时候的他就懂得整合资源。

为了能够赚点平时的零花钱,刘强东和他的一些朋友经常去抓河鲜来卖给饭店,饭店在收这些河鲜的时候经常会压低价钱。

为了应对这一局面刘强东想出了一个办法,他让所有人将河鲜交到一个人的手里,而这个人再去饭店售卖,这样就可以抬高一些价格。

他每次去跟外婆买肉的时候都希望能多一点肥肉,因为肥肉可以熬成猪油拌饭吃。

那时候的他认为村长家里是最有钱的,因为村长家的房檐下永远挂着有猪肉,那是刘强东可望而不可及的。所以刘强东小时候的梦想就是当个村长。

刘强东15岁初中毕业后想去外边闯荡一下,他不想一直待在农村平凡的过完一生。

他口袋里装着平时自己省吃俭用攒下来的几十块钱来到了南京,夜晚时候灯红酒绿的金陵大厦给他内心带来了巨大的冲击。

他内心暗暗发誓一定要改变自己的命运,对于穷人家的孩子来说改变命运的最好方式就是学习,知识改变命运。

三年之后的刘强东以宿迁高考状元的身份被中国人民大学录取。他当时的想法很简单,那就是当官,为老百姓做事情。

自小多才学,平生志气高

拿到录取通知书后的刘强东收拾好行李准备开始他的大学人生,可是家里在交完学费后并没有太多钱用来当做他的生活费。

于是只能向亲朋好友求助,在一番东拼西凑后刘强东带着大家为他凑的钱财去往了北京。

五百块钱和76个鸡蛋,还有一些书本和衣服,这是刘强东刚进入大学时的全部家当。

刘强东在踏入大学的时候就对自己提出了一个要求:那就是大学期间不再花费家里的钱。他要凭借自己的劳动来读完大学,因此刘强东在刚上大一的时候就开始勤工俭学。

他的第一份工作是给别人当家教来赚取生活费,后来得知有人通过抄信封来赚钱,于是他也跟着去抄。

那时候抄一个信封只有几分钱的收入,所以他以量取胜,每天抄大量的信封。就这样持续了一段时间后他又发现一个赚钱的项目。

他的同学以出书的方式赚了不少钱,在他的劝说下刘强东开始了推销书籍。他每天带着一些样书和清单挨家挨户的推销,这样下来生活费是有了,但是却并不能改变他的家庭条件。

想要赚钱的刘强东只能换一种方式,在那个年代懂计算机会编程的人绝对是吃香的,而收入也十分可观,所以他决定去写程序。

刘强东在大二的时候就开始自学编程,因为他的专业是社会学,和计算机可以说是毫无关系,所以他只能买来书籍自学。

在他的刻苦学习下,他编程的水平很快就突飞猛进,很快他就接到了项目。

因为白天要上课,所以刘强东只能利用晚上时间来写程序。而一个程序写下来并不容易,一个月的时间完成就已经很不错了。但是报酬也是相当丰厚,一套程序可以有好几万的报酬。

在写了几套程序后刘强东也赚到了人生中的第一笔金,当然他也没有对自己吝啬,在大三时候他就花费两万多买了一部大哥大。

那时候学校里的学生还有很多人没见过,这也是在人大创造了记录。

手里有一定的资金后刘强东萌发了创业的念头,但是苦于找不到合适的机会,就在他一筹莫展的时候一个机会出现了。

在大学将要毕业时刘强东看见学校附近一家的餐厅挂出了转让的信息,而这家餐厅之前的生意也不错。

刘强东认为这个机会不能错过,于是他拿出自己挣到的所有钱二十多万全都投了进去,可是这次的创业却并没有成功。

刘强东在接受饭店后信心高涨,认为自己一定能够经营好。为此他对员工也十分好,他给员工租了新的房子,不让再住之前阴暗潮湿的地下室。

除此之外他也提升了伙食水平,每天都是荤素搭配,不许再像以前那样吃客人剩下的,节假日甚至还可以喝酒。他掏心掏肺地对待员工,可是员工对他却并没有真心实意。

餐厅经营一段时间后刘强东就发现不对劲了,餐厅的位置和客流量都还不错,但是却一直在亏钱,他到餐厅一查发现出了大问题。

原来他对自己的员工十分信任,认为以诚待人终将会得到回报,可他的想法太过于天真。

他把所有的权利都交给员工,换来的却是进货价格不断上涨,出菜和收银更是对不上账,员工们把餐厅的收益都装进自己的口袋里了。

那段时间刘强东自己也在外边赚钱,他将自己所赚到的钱都投入餐厅里,最后甚至向亲戚朋友借钱,最后才发现真实情况。

最终餐厅因经营不善而被迫关门,可是刘强东依然遵循自己的原则,那就是以诚待人,他关闭餐厅的时候仍然给每个员工都发了工资,自己却没有带走任何东西。

刘强东认为是自己没有教育好员工才出现这样的问题,自己应该负主要责任。

但是现在刘强东对贪污是深恶痛绝,在京东的员工只要发现有贪污的问题,立马开除,丝毫没有余地。

刘强东在大学毕业后去了一家公司工作,当时的月薪已经有几千块钱,他也被很多人羡慕,可他依然没有放弃内心创业的念头。

于是工作一段时间后他辞掉了工作,收拾行囊,从头开始。

京东创立

1998年,辞掉工作后的刘强东带着自己的全部积蓄一万两千元来到了北京中关村。由于当时资金紧张,他只能租下一个小摊位开始自己的生意,这就是如今京东的前身。

当时刘强东开展的主要是售卖光碟与刻录机的生意,他准备好设备后本来为数不多的钱剩的就更少了,所以他只能一个人负责所有的过程,起初的生意也并不好做。

由于刘强东坚持明码标价,绝不讲价,许多顾客一看到这个直接就跳过他的摊位去往下家,但是对比过其他的摊位后还是回到刘强东这里来,因为这的性价比最高,而且绝对没有假货。

就这样经过一段时间的发展后刘强东的名气也传了出去,他的顾客络绎不绝,生意越来越火爆,而刘强东也拿下了几个大品牌的独家代理权。

经过三年时间的发展,京东的年销售额已经达到数千万美元,而刘强东也有了一定的积蓄,可是他并没有满足于现状。

由于原来的生意利润不断下降,所以刘强东只能转移目光,决定扩展渠道,这样才能更好得发展。

电脑设备的利润还算是比较高,所以刘强东将主意打在了售卖一些电脑产品上。

2001年刘强东正式开设了第一家零售店,而取得效果也十分不错,所以他打算扩大规模发展成为连锁店,可以有更好的品牌效应。

两年后刘强东已经拥有了12家连锁店,一切都在朝好的方向发展,可就在这时,一场天灾却打乱了刘强东的计划,使他不得不做出改变。

改变战场

2003年,一场“”席卷全国,北京更是严重的受灾区。线下店的客流量急剧减少,刘强东不得不关闭所有的线下连锁店,他准备了大量的生活物资,让所有员工居家办公。

京东的仓库里存放着大量货物,每天都要面临巨额的亏损,刘强东只能心里暗暗着急但却也没有任何办法。就在他一筹莫展的时候听说了一个渠道可以销售货物。

互联网这个词汇出现在了刘强东的眼中,刘强东大学时候虽然写过编程,可是他对互联网却十分陌生。

他甚至连什么是网络论坛都不知道,而当时出名的互联网公司有搜狐、网易和新浪等等,这些互联网公司都已经十分成功,刘强东可以说简直是一个小白。

可他还是在各个论坛上发贴,宣传京东的业务,但是前两天效果并不是特别好。

一天,一个网友在刘强东的贴子下留言,说在京东好几年没有买到假货,价格还公道,于是当天就成交了好几单。

在那段时间刘强东既当老板又当客服,每天他定时解答客户提出的相关问题,很快京东的线上业务已经发展得十分好。

在过去后京东仍是采取线下和线上相结合的方式来发展业务,但是线上取得的利润并不是太好,整个公司的利润主要靠的还是线下业务。

可是刘强东作了一个让所有员工都感到意外的决定。

2004年刘强东决定带领京东全面转型,他放弃所有线下业务,全面转行做电商,“京东多媒体网”成立。

因为在那时,刘强东认为电商时代已经开启,国内或国外的电商都开始崭露头角,如果不抓住机会很可能就跟不上脚步,从而步步落后。

仅仅两年时间后京东电商的销售额便近亿,公司也因为资金的问题而被限制了发展,想要扩大规模就只能去寻找融资。

京东壮大

2006年经人介绍,刘强东见到了今日资本的投资人,两人见面后十分投机并且聊了很长时间。

投资人也十分认可刘强东对京东未来发展的想法,当即就决定要投资,而刘强东对自己公司的估值还没有准确的认知。

最后今日资本投资一千万美元给刘强东,占据京东40%的股份,而那时候京东全部的人数还不到四十个人。

拿到钱后的刘强东开始专心发展业务,仅仅用了一年的时间京东的销售额就突破10亿的大关,而刘强东为了提升用户的体验感,也提出了一个想法。

自己做物流,但是物流行业十分差劲,很多东西送到买家手上后都是破损的,这就造成很多投诉。

于是刘强东下定决心要自己成立一个物流公司,而投资物流也是需要大量的资金,手里的钱很快就消耗一空,于是他只能再去寻找投资。

可是屋漏偏逢连夜雨,金融危机到来。

受到金融危机的影响,全球股价下跌,那些风险投资人也都不敢再轻易出手,所以刘强东寻找投资的难度十分大。

而京东也是亏损严重,估值更是呈断崖式的下跌,如果再没有新鲜血液注入,那么留给京东的只有一条路,那就是倒闭。

刘强东在那段时间中见了大量的投资人,可是没有一个对京东有信心的,但事情终于有了转机。

今日资本领投其他几家机构对京东投资2100万美元,使得京东躲过一劫。

拿到融资的京东开始全面发展,销售额不断上升,京东物流也成为了行业中的翘楚,在2014年京东成功在美国上市,如今的市值已经过万亿。

不忘初心

刘强东在取得成功的同时依然保留自己内心的淳朴,他给京东的快递小哥建造了公寓,工资水平各方面更是按照最高标准来。

他在回老家过年时没有忘记村里人当初对他的帮助,他过年给村里的老人每人发了一万元的大红包。

同时他也在竭尽所能的帮助他人,想要进去京东工作的根据个人能力都安排了合适的岗位。

刘强东也宣布在各地发生天灾时,京东在各地区的负责人可以不用请示,第一时间要打开京东仓库来帮助受难群众。

刘强东从当怀揣76个鸡蛋踏入大学到如今的身价千亿,一路走来经历过许多挫折与磨难,但他仍然保持了当初的坚毅与善良。

他也给众多创业者树立了榜样:寒门可以出贵子。

只要内心不放弃,前方终究会看见黎明。

刘强东亲自拍板:斥资30亿,收购吴京代言“货运界顺丰”

8月14日,据京东港交所公告称:京东已于8月订立最终协议,京东物流将收购于国内限时速运行业的老大“跨越速运”,这一交易将于第三季度完成,收购价30亿人民币。

作为物流界的“顺丰”,跨越速运向来以“快”著称,代言人是当年花了很少钱签约的吴京,随着吴京成为一线武侠明星,跨越速运也用很小的成本实现了在行业内的高度认知。

据媒体报道,这次交易是刘强东和跨越速运的创始人胡海建直接洽谈的,这一过程已持续了将近9个月。对于此次合作的价值和意义,官方的口径是:“希望携手在供给端和消费端,协同升级物流服务体验,共建智能供应链服务生态”。

事实上,京东在物流界的优势从来都是领先的,此番收购跨越速运对于京东物流体系的完善提升,不仅是锦上添花,更是雪中送炭。

1、有助于京东进军大宗货运

众所周知,京东的物流快是出了名的。在一线城市,京东早已做到了上午下单、下午到达,晚上11点前下单,第二天上午到达的极速物流服务。这样世界一流的物流速度,一方面得益于这些年京东大规模地烧钱自建物流体系,另一方面也得益于刘强东对物流这一板块的高度重视。

实际上,京东在盈利之前持续亏损了十几年,这十几年烧掉的数千亿资金并不是用在了京东网站的推广上,大部分都用在了物流体系、仓储、配送、人员等方面,也正是因为如此,才让京东旗下的物流公司,成为了体量仅次于顺丰,但速度却丝毫不亚于京东的国际一流物流企业。此番收购,将补齐京东在大宗货运领域的短板,利用京东现有的仓储和物流基地的优势,大举进军新的B2B物流领域,这无疑又是京东一个非常重要的增长点。

2、有助于两家物流企业快速上市

互联网企业的本质,到最后必须依靠资本来实现快速发展。对于幅员辽阔的中国而言,要成为国内物流界的老大,必须依赖于大量的资金投入,因为物流基础建设的成本实在是太高了,高到连京东这样的企业也差一点折戟沉沙。所以上市对于这两家企业,都非常必要,而且非常紧迫。

据知情人士透露,京东物流可能会在今年下半年在港股或美股IPO,跨越速运也早就启动了IPO的流程。此番两者的联手,既能互相补充短板,又可以引发资本市场对两家公司联盟之后的想象空间,无论对谁而言这都是双赢的一次合作。

3、有助于京东成为全球顶尖的物流企业

刘强东这些年已经逐步退隐江湖,至少在外人看来是如此。可是要知道物流才是京东的核心竞争力,这一点东哥是深信不疑的。当初老美为什么要对东哥下手?个人觉得非常重要的原因是:你弄一个空壳互联网公司在美股,忽悠我们老美买你的股票,结果转手就把钱用在了你的实体“京东物流”上,这也太忽悠人了,必须要弄你一下。于是,众所周知的事儿发生了;于是,东哥也不得不放下一些法人代表,假装退居二线。

可是,我始终认为东哥是有抱负、有雄心、有情怀的。不同于那些天天吹牛皮的互联网大咖,他的确是在踏踏实实地做事,提升物流效率、提升偏远地区连接城市的能力,这一方面能为城市居民带来便利,同时也为贫困地区的脱贫致富创造了条件。此番收购跨越,更是拓宽了京东物流的带宽,让那些大宗商品也能通过京东和跨越共同打造的物流体系,实现高速通达的目标,让京东物流成为国内乃至全球顶尖的物流企业。

作为国内屈指可数的白手起家的互联网大咖,东哥没有马云的张狂,没有马化腾的精明,更像是一个邻居家的大男孩。他敢说话,他说穷人的存在是富豪的耻辱,30年前“先富带动后富”的承诺你们忘了吗?他讲义气,为所有的快递员购买保险公积金,把京东呼叫中心放在了偏远的老家宿迁。他爱喝酒,在酒桌上谈下7亿美金,也在酒桌上和快递小哥把酒言欢。

他或许不是互联网大咖里最有钱的那一个,但绝对是最真性情、最讲义气、最有情怀的那一个。为不忘初心、不改本色、不屈不挠的东哥点赞!

拉锯三年的刘强东明州民事诉讼为何以和解告终?女方没底气,男方拖不起

极目新闻记者 纪成

原定于10月3日开审的刘强东明州民事诉讼提前迎来大结局。北美时间10月1日晚,双方律师团队发表联合声明,称双方已经达成和解。自2019年4月16日,女方当事人刘婧尧提起民事诉讼,“索赔金额5万美元,上不封顶”开始,此案拉锯3年多,法院进行了大量取证和非公开庭审,而对于10月3日的正式开庭,双方律师也完成了陪审员遴选等准备工作,就在正式开庭之前双方突然达成和解,令人颇感意外。但根据案件发展的态势,双方达成和解,似乎也是情理之中。

明尼苏达州亨内平县法院(图源:推特)

首先,早在2018年,明尼苏达州当地检方就决定不以罪起诉刘强东。当时,明尼苏达州亨内平县检察官迈克·弗里曼表示,经明尼苏达州阿波利斯市警察局性犯罪小组的彻底调查,以及四位对犯案件拥有丰富经验的资深检察官的仔细审查,确定此案在举证方面仍存在严重问题,除了合理的怀疑,这些问题使任何的刑事指控都很难得到证实。

在检察官审查证据期间,这些证据涉及三名男子和一名女子,发现部分证据包含一些被翻译成英文的普通话对话及信息。证据还包括警方身上佩戴的摄像机录下的刘某与这位女士在公寓内的对话。以及后来在刘某被带回酒店之前,警方还录下了这位女士要求与刘某私下进行交流的部分对话。

这些谈话的实质,以及其他所有证据,包括这位女士和其他人的证词,以及来自多个监控摄像机的录像,都不支持在这种情况下提起刑事指控。

据《新京报》此前报道,有专业人士撰文表示,一方面,女性当事人在短暂沉默后,开始坚决表示自己“当初不情愿并反复表述了自己的态度”;另一方面,她本人和许多消息来源都证明,事发最初她并未选择报警,报警后起诉的态度也有反复。因此,存在明显的“证据链瑕疵”。 此外,刘强东应女方要求主动送其回到自己寓所,并系被邀请而将其一直送入房内,这也是“证据链瑕疵”之一。

虽然在美国,民事诉讼对证据的要求没有刑事诉讼那么严格,但当地资深刑辩律师也并不看好刘婧尧能打赢这场民事诉讼。

一直独立关注此事进展的明尼苏达州当地知名刑事律师周东发表示,刘婧尧存在许多前后矛盾的说法和证词,如果只是由她这一方来说,可能觉得还有点道理,但是经不起细节方面的推敲。而反观刘强东的证词,从头到尾是一致的。周东发认为,刘婧尧要说服12个陪审员还是很难的。因原告存在前后矛盾的说法,如果她做伪证需要承担法律责任。因此,如果刘婧尧败诉了,京东或者刘强东可能会追究她的责任。

此前,刘婧尧在接受《财经》采访时称,如胜诉会将赔偿金额全都捐出来。然而原告律师在开庭前遴选陪审团的询问现场明确表示,不会将赔偿金以任何意义的捐出,这与刘婧尧之前接受媒体采访表示前后不一。

此外,美国当地媒体曝光了女方一段27页的聊天记录,显示刘婧尧与当时帮忙报警的同学以及其他多名知情人士关系破裂,甚至互相攻击。即便是对自己父亲的老师崔海涛教授,也是语气强硬、毫不客气地责骂,性格非常泼辣,与以往展示的柔弱形象大相径庭。

双方和解后,记者再次采访周东发律师。他表示,双方和解的数额具体不清楚,但应该会远远小于女方此前提出的要求。不排除女方评估胜率较低,主动寻求庭前和解。

(来源:极目新闻)

更多精彩资讯请在应用市场下载“极目新闻”客户端,未经授权请勿转载,欢迎提供新闻线索,一经采纳即付报酬。24小时报料热线027-86777777。

后台-插件-广告管理-内容底部广告位PC端
后台-插件-广告管理-内容底部广告位手机端

评论

全部评论
星辰影视-2025热门免费影视短剧平台熊猫影视-2025热门免费影视短剧平台番茄影视-2025热门免费影视短剧平台星光电影-2025热门免费影视短剧平台蜂鸟影院-2025热门免费影视短剧平台熊猫影视 - 全网高清免费影片聚合平台萝卜影院-2025热门电影电视剧免费在线播放-全站无广告高速播放下载樱花影院-2025热门免费影视短剧平台琪琪影视-2025热门免费影视短剧平台火影电影网-2025热门免费影视短剧平台悟空电影-2025热门免费影视短剧平台西瓜影院-2025热门免费影视短剧平台星空电影网-2025热门免费影视短剧平台好看电影网-2025热门免费影视短剧平台无忧影视网_高清影视在线观看分享平台_最新最全的免费影视短剧大全年钻网超清视界 - 全网高清免费短剧聚合平台极影公社-2025热门电影电视剧免费在线播放至尊影院-最新热门短剧免费电影网站_高清影视无弹窗极速播放星光电影-2025热门免费影视短剧平台河马影视-最新热门火爆的免费影视网站_高清影视夸克迅雷网盘下载叮当影视网-2025热门高清免费影视短剧分享平台70影视网 - 最新电影、电视剧、短剧、免费在线观看麻花影视网 - 高清免费聚合电影网西瓜影院-最新热门电影电视剧免费在线播放开心追剧网2048影视资源论坛-2048P.Com青青影视网-2025热门高清免费影视短剧分享平台八哥电影网_最新vip电影大全_热播电视剧_全网优质影视免费在线观看_老牌的免费在线影院_www.886958.com人人看电影-热播电视剧_2025年最新电影_人人影院高清在线免费观看天天影视网-高清免费电影、电视剧、短剧在线观看星辰影视-最新热门无广告的免费电影网站_高清影视无弹窗极速播放电影天堂爱看影院追剧达人U系列网盘资源橙子影视网天堂影视网天堂影视神马影院网大众影视网星辰影视网