|   
 UID1 威望1240 点 金钱24019 金币 点卡317 点 
 | 
 汇编菜单模式
| 复制代码wind strucwpos dw 0wcolor db ?wbox dw ?itempos dw 02itemcol0 db ?itemcol1 db ?itemsum db ?itemnum db 0item0 dw ?wind endscode segment stack 'stack'assume cs:code,ds:code,ss:codebegin:posh db 20posl db 40color db 71hposll db 40dposcx dw ?posdx dw ?number db 00 backaddr dw ?oldint1c dd ?msgbox1: db '谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目',0dh,0ahdb '?New file: ?,0dh,0ahdb '滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁',0dh,0ah,0msgbox0: db '谀腁ssembler and Fortran哪哪哪哪腫 ZDOS ]哪哪哪腣er 2.0哪哪哪哪哪腫 : : ]目',0dh,0ahdb '仆屯屯屯屯屯屯屯屯屯屯屯屯屯File name and path屯屯屯屯屯屯屯屯屯屯屯送屯屯屯偷',0dh,0ahdb '? Edit ? move ?,0dh,0ahdb '? Masm ?arrows ?,0dh,0ahdb '? For1 ? to ?,0dh,0ahdb '? Pas2 (FORTRAN) ?choose ?,0dh,0ahdb '? Link 掏屯屯屯偷',0dh,0ahdb '? Debug ? press ?,0dh,0ahdb '? Execute ? enter ?,0dh,0ahdb '? Name project file ? to ?,0dh,0ahdb '? DosShell ?execute?,0dh,0ahdb '? Quit... ? item ?,0dh,0ahdb '滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪心哪哪哪馁',0dh,0ah,0hmsg0 db ' Edit ',0dh,0ah,0,63 dup(0dh)msg1 db ' Masm ',0dh,0ah,0,63 dup(0dh) msg2 db ' For1 ',0dh,0ah,0,63 dup(0dh)msg3 db ' Pas2 (FORTRAN) ',0dh,0ah,0msg4 db ' Link ',0dh,0ah,0,63 dup(0dh)msg5 db ' Debug ',0dh,0ah,0,63 dup(0dh)msg6 db ' Execute ',0dh,0ah,0,63 dup(0dh)msg7 db ' Name project file ',0dh,0ah,0msg8 db ' DosShell ',0dh,0ah,0msg9 db ' Quit... ',0dh,0ah,0msg10:time0 db ?,?db ':'time1 db ?,? db ':'time2 db ?,?,0msg11 db 0dh,0ah,' ( ZhaoJiBin 97,CL,ZC,9# ) 'db 0dh,0ah,' This is NO shareware,You needn''t outlay anything.'db 0dh,0ah,' Very thanks,if you have problems,please write a postcard to me. 'db 0dh,0ah,' My name : ZhaoJiBin'db 0dh,0ah,' My mailbox : ShiChuan Institute Of Technology 9708#'db 0dh,0ah,' My phone call : (028)7721727',0dh,0ah,0h,'$'msg12 db 0dh,0ah,07h,' Press Exit to retrun ZDOS 4/3/2000$'wind0 wind <00,70h,offset msgbox0,0202h,70h,17h,10,0,msg0>dw msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9edit db 80h,'EDIT.COM ',56 dup(0dh)masm db 80h,'MASM.EXE ',56 dup(0dh)for1 db 80h,'FOR1.EXE ',56 dup(0dh)pas2 db 80h,'PAS2.EXE ',56 dup(0dh)link db 80h,'LINK.EXE ',56 dup(0dh)debug db 80h,'DEBUG ',56 dup(0dh)self db 80h,' ',56 dup(0dh)dos db 80h,'COMMAND.COM ',0dhprogram dw execedit,execmasm, execfor1,execpas2dw execlink,execdebug,execself,execnamedw execdos, execquitbuffer db 50d,0,51d dup(?)pathbuffer db 80 dup(?)start: mov bx,(offset quit-offset begin+110h)/10hmov ah,4ahint 21hmov si,80hcmp byte ptr[si],0jz start0cmp byte ptr[si],50dja start0push cspop escall fillinstart0: mov ah,0fhint 10hcmp al,03hjz start1mov ax,03hint 10hstart1: call saveconpush cspop dspush cspop esmov cl,ds:wind0.itemsummov ch,ds:wind0.itemnumlea di,buffer+2rk2: cmp ch,0ffhjnz rk3mov ch,cldec chrk3: cmp ch,cljb rk4mov ch,0rk4: lea si,ds:wind0.itemnummov ds:[si],chlea si,wind0call makewindcall disppathcall settimerlea si,buffermov byte ptr[si+1],0 call inputcall killtimercmp ah,50hjnz rk0inc chrk0: cmp ah,48hjnz rk1dec chrk1: cmp ah,1chjnz rk2call oopsconinc sicmp byte ptr[si],0jnz execcommandmov bl,chxor bh,bhshl bx,1call ds:[bx+program]jmp start0execcommand: mov ax,0e0dhint 10hmov al,0ahint 10hint 10hint 2ehjmp start0execedit: lea si,editint 2ehjmp start0execmasm: lea si,masmint 2ehjmp start0execfor1: lea si,for1int 2ehjmp start0execpas2: lea si,pas2int 2ehjmp start0execlink: lea si,linkint 2ehjmp start0execdebug: lea si,debugint 2ehjmp start0execself: lea si,selfint 2ehjmp start0execdos: lea dx,msg12mov ah,09hint 21hlea si,dosint 2ehjmp start0execquit: mov ax,03int 10hlea dx,msg11mov ah,09hint 21hmov dx,00hmov ds:posh,dhmov ds:posl,dlmov ds:posll,dlmov ds:color,03hlea si,msg11call dispstrmov ax,4c00hint 21hexecname: call saveconlea si,msgbox1mov dx,0807hmov ds:posh,dhmov ds:posl,dlmov ds:posll,dlmov ds:color,71hcall dispstrxor bx,bxmov ah,03hint 10hmov ds:poscx,cxmov ds:posdx,dxmov dx,0913hmov ah,02hint 10hlea si,bufferlea di,buffer+2call inputcmp ah,1chjnz execnamecmp byte ptr[si+1],0jz execnamexor bx,bxmov cx,ds:poscxmov dx,ds:posdxmov ah,02hint 10hlea si,buffercall fillincall oopsconretfillin: inc siinc simov bx,siint 3lea di,edit+10dname0: call fillnamecmp al,0dhjz name1mov al,'.'cldstosbjmp name0name1: call fillendmov si,bxlea di,msg0+10dname2: call fillnamecmp al,0dhjz name3mov al,'.'cldstosbjmp name2name3: call fillendmov si,bxlea di,masm+10dcall fillnamemov al,'.'cldstosbmov ax,'SA'stoswmov al,'M'stosbcall fillendmov si,bxlea di,msg1+10dcall fillnamemov al,'.'cldstosbmov ax,'SA'stoswmov al,'M'stosbcall fillendmov si,bxlea di,for1+10dcall fillnamemov al,'.'cldstosbmov ax,'OF'stoswmov al,'R'stosbcall fillendmov si,bxlea di,msg2+10dcall fillnamemov al,'.'cldstosbmov ax,'OF'stoswmov al,'R'stosbcall fillendmov si,bxlea di,link+10dcall fillnamemov al,'.'cldstosbmov ax,'BO'stoswmov al,'J'stosbcall fillendmov si,bxlea di,msg4+10dcall fillnamemov al,'.'cldstosbmov ax,'BO'stoswmov al,'J'stosbcall fillendmov si,bxlea di,debug+10dcall fillnamemov al,'.'cldstosbmov ax,'XE'stoswmov al,'E'stosbcall fillendmov si,bxlea di,msg5+10dcall fillnamemov al,'.'cldstosbmov ax,'XE'stoswmov al,'E'stosbcall fillendmov si,bxlea di,self+10dcall fillnamemov al,'.'cldstosbmov ax,'XE'stoswmov al,'E'stosbcall fillendmov si,bxlea di,msg6+10dcall fillnamemov al,'.'cldstosbmov ax,'XE'stoswmov al,'E'stosbcall fillendretfillend: cldmov ax,0dh*256+20hstoswmov ax,0ahstoswretfillname: cldlodsbcmp al,0dhjz fill0cmp al,'.'jz fill0cmp al,'a'jb fill1cmp al,'z'ja fill1sub al,'a'-'A'fill1: cldstosbjmp fillnamefill0: push dipush axmov al,20hfill4: cmp es:byte ptr[di],0dhjz fill3cldstosbjmp fill4fill3: pop axpop diretinput: push bxpush cxpush dxinput1: xor ax,axint 16hcmp ah,50hjz input0cmp ah,48hjz input0cmp al,0jz input1cmp al,08hjz input2cldstosbcmp ah,1chjz input0mov cl,ds:byte ptr[si]cmp cl,ds:byte ptr[si+1]jz input3mov ah,0ehint 10hinc ds:byte ptr[si+1]jmp input1input0: pop dxpop cxpop bxretinput2: cmp ds:byte ptr [si+1],0jz input1dec ds:byte ptr [si+1]dec dimov ah,0ehint 10hmov al,20hint 10hmov al,08hint 10hjmp input1input3: dec dimov ax,0e07hint 10hjmp input1disppath: call saveregsxor bx,bxmov ah,03hint 10hmov ah,02hmov dx,1800hint 10hmov ah,02hmov dl,0dhint 21hmov ah,19h int 21hmov dl,aladd dl,'A'mov ah,02hint 21hmov dl,':'int 21hmov dl,'\'int 21hlea si,pathbuffermov dl,0mov ah,47hint 21hdpath0: cldlodsbor al,aljz dpath1mov dl,almov ah,02hint 21hjmp dpath0dpath1: mov dl,'>'mov ah,02hint 21hcall oopsregsretmakewind: call saveregsmov dx,ds:wind0.wposmov ds:posh,dhmov ds:posl,dlmov ds:posll,dlmov dl,ds:wind0.wcolormov ds:color,dlpush simov si,ds:wind0.wboxcall dispstrpop simov dx,ds:wind0.itemposmov ds:posh,dhmov ds:posl,dlmov ds:posll,dlmov cl,ds:wind0.itemsummov ch,clsub ch,ds:wind0.itemnummov dl,ds:wind0.itemcol0mov dh,ds:wind0.itemcol1lea si,ds:wind0.item0make1: push simov ds:color,dlcmp ch,cljnz make0mov ds:color,dhmake0: mov si,[si]call dispstrpop siinc siinc sidec cljnz make1call oopsregsret;************************************************dispstr: call saveregsmov ax,0b800hmov es,axdispstr0: cldlodsbor al,aljz dispstr3cmp al,0dhjnz dispstr1mov al,cs:posllmov cs:posl,aljmp dispstr0dispstr1: cmp al,0ahjnz dispstr2inc cs:poshjmp dispstr0dispstr2: call calculmov ah,cs:colorcldstoswinc cs:posljmp dispstr0dispstr3: call oopsregsretcalcul: push axmov al,cs:poshmov ah,80dmul ahadd al,cs:posladc ah,0shl ax,1mov di,axpop axretsettimer: call saveregsint 3mov ax,351chint 21hmov ds:word ptr oldint1c,bxmov ds:word ptr oldint1c+2,eslea dx,newint1cmov ax,251chint 21hcall oopsregsretkilltimer: call saveregsint 3lds dx,oldint1cmov ax,251chint 21hcall oopsregs retnewint1c: call saveregs mov ax,0200hint 1ahmov al,chlea si,time0call bcdmov al,cllea si,time1call bcdmov al,dhlea si,time2call bcdmov ax,0b800hmov es,axmov di,67*2dlea si,msg10disptime: mov al,cs:[si]inc sior al,aljz disptime0mov ah,071hcldstosWjmp disptimedisptime0: call oopsregsjmp cs:oldint1cbcd: mov ah,alshr ah,1shr ah,1shr ah,1shr ah,1and al,0fhadd ax,'00'xchg ah,almov cs:[si],axretsaveregs: pop cs:backaddrdb 60hpush dspush espush cs:backaddrretoopsregs: pop cs:backaddrpop espop dsdb 61hpush cs:backaddrretsavecon: call saveregsmov ax,0b800hmov es,axmov ds,axxor si,simov di,80*25*2mov cx,80*20*2cldrep movsbcall oopsregsretoopscon: call saveregsmov ax,0b800hmov es,axmov ds,axxor si,simov di,80*25*2mov cx,80*20*2xchg si,dicldrep movsbcall oopsregsretorg $+136hquit:code endsend start
 | 
 
| 我是一个呼吸着现在的空气而生活在过去的人
 这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
 我已习惯了孤独,爱上孤独
 他让我看清了自我,还原了自我
 让我再静静的沉思中得到快乐和满足
 再孤独的世界里我一遍又一遍
 不厌其烦的改写着自己的过去
 延伸到现在与未来
 然而那只是泡沫般的美梦
 产生的时刻又伴随着破灭的到来
 在灰飞烟灭的瞬间我看到的是过程的美丽
 而不是结果的悲哀。。。
 
 |  |