红旗L6导航怎么样
;这个程序使用字符模式实现,另外可以用图形模式实现,道理差不多的,Q币就算了,我也复习了一下画图。DATASEGMENT;FLAG里面存红旗的初始位置,格式是:行号列号字符,数据CCH结束。FLAGDB9,40,'|',9,41,'-',9,42,'-',9,43,'-',9,44,'-',9,45,'-'DB10,40,'|',10,45,'|'DB11,40,'|',11,45,'|'DB12,40,'|',12,41,'-',12,42,'-',12,43,'-',12,44,'-',12,45,'-'DB13,40,'|'FLAG_TDB14,40,'|'DB0CCHDATAENDSSTASEGMENTPARASTACK'Stack'DB256DUP(?)STAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STASTART:MOVAX,DATAMOVDS,AXMOVAH,00HMOVAL,02HINT10H;设置80×25黑白字符显示模式XORBH,BHL:LEASI,FLAGL1:CMPBYTEPTR[SI],0CCHJZL2CMPBYTEPTR[SI],0FFHJZL5MOVDH,[SI]MOVDL,[SI1]MOVAH,02HINT10H;设置光标位置,DH=行号,DL=列号MOVDL,[SI2]MOVAH,02HINT21H;显示字符L5:INCSIINCSIINCSIJMPL1L2:CALLDELAYLEASI,FLAGL3:CMPBYTEPTR[SI],0CCHJZL4CMPBYTEPTR[SI],0FFHJZL6MOVDH,[SI]MOVDL,[SI1]MOVAH,02HINT10H;设置光标位置,DH=行号,DL=列号MOVDL,''MOVAH,02HINT21H;擦掉字符DECBYTEPTR[SI];擦掉后行号减一,视觉上就看到红旗上升了L6:INCSIINCSIINCSIJMPL3L4:CMPFLAG_T,0FFHJNZLMOVAX,4C00HINT21HDELAYPROC;延时一秒PUSHAXPUSHBXPUSHDXMOVAH,02HINT1AHMOVBL,DHD_P:MOVAH,02HINT1AHCMPBL,DHJZD_PPOPDXPOPBXPOPAXRETDELAYENDPCODEENDSENDSTART