这个项目是我2012年8月初开始开发的。我曾在小甲鱼论坛和看雪论坛发表过。
由于准备融入优快云这个大家庭,也希望更多人来查看这个源代码,一起讨论和学习。所以我就搬了过来。
看雪:http://bbs.pediy.com/showthread.php?t=155218
小甲鱼:http://bbs.fishc.com/thread-21213-1-1.html
项目名称:七夕礼物
语言:8086汇编 + JavaScript
编译环境:masm6.15
思想:用汇编尝试同步处理。交互式动画。
注:JavaScript源代码是搬网络上的。这个代码被我放在了数据区。= =! 用来生成html文件用。
很多工具和运行环境被我打包到了一起。有兴趣的可以下载来看哈。
下载地址:http://www.kuaipan.cn/file/id_60093550318059539.htm
下面是代码:
为什么发表后会多出几个html的代码插入里面?比如 <p></p>
assume cs:CG
DG segment
l db 9 dup (20h)
db ' * * * * * * * * '
db 18 dup (20h)
db ' * * * * * * * * '
db 18 dup (20h)
db '* * * * * * * * '
db 18 dup (20h)
db '* * * * * * * * * * '
db 18 dup (20h)
db ' * * * * * * * * * * * * * *'
db 18 dup (20h)
db ' * * '
db 18 dup (20h)
db '* * * * '
db 18 dup (20h)
db ' * * * * * * '
;gaga
num dw $ - offset l
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;colour
;黑+白:07H
;蓝+红:1CH
;红+红:4CH
;蓝+高黄:1eh
;高 红+黄:0ceh
;高绿:0ah
;高红:0ch
;高黄:0eh
;高蓝:09h
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
i db 27 dup (20h,0)
db 'P',0ah,'l',0ah,'e',0ah,'a',0ah,'s',0ah,'e',0ah,' ',0ah,'p',0ah,'r',0ah
db 'e',0ah,'s',0ah,'s',0ah,' ',0ah,'t',0ah,'h',0ah,'e',0ah,"'",0ah,'1',0ch
db "'",0ah,' ',0ah,'k',0ah,'e',0ah,'y',0ah,'.',0ah
db 28 dup (20h,0)
db 39 dup (20h,0)
db 19h,0eh
db 40 dup (20h,0)
;Please press the "1" key.
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
t db 15 dup (20h)
db '9966999999966699999996699666699666999966699666699'
db 31 dup (20h)
db '9969999999996999999999699666699669966996699666699'
db 31 dup (20h)
db '9966999999999999999996699666699699666699699666699'
db 31 dup (20h)
db '9966669999999999999666669999966699666699699666699'
db 31 dup (20h)
db '9966666699999999966666666999666699666699699666699'
db 31 dup (20h)
db '9966666666999996666666666999666669966996699666699'
db 31 dup (20h)
db '9966666666699966666666666999666666999966669999996'
db 31 dup (20h)
db '6666666666669666666666666666666666666666666666666'
db 16 dup (20h)
;隐含图
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
e db 160 dup (20h)
db 53 dup (20h)
db '*'
db 50 dup (20h)
db '*'
db 27 dup (20h)
db '******'
db 43 dup (20h)
db '******'
db 24 dup (20h)
db '* *'
db 44 dup (20h)
db '*'
db 26 dup (20h)
db '* * *'
db 44 dup (20h)
db '*'
db 30 dup (20h)
db '* *'
db 45 dup (20h)
db '* *'
db 26 dup (20h)
db '*'
db 47 dup (20h)
db '****'
db 26 dup (20h)
db '**'
db 77 dup (20h)
db '*'
db 27 dup (20h)
;七夕 8行
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
g db 240 dup (20h)
db 6 dup (20h)
db '*'
db 17 dup (20h)
db '* *'
db 9 dup (20h)
db '* * *'
db 6 dup (20h) ;8(这个没用,原来备份的值)
db '* * *'
db 8 dup (20h)
db '* *'
db 15 dup (20h) ;13
db '* * *'
db 9 dup (20h)
db '* *'
db 7 dup (20h)
db '** *'
db 4 dup (20h) ;6
db '** *'
db 7 dup (20h)
db '* *'
db 16 dup (20h) ;14
db '* * *'
db 6 dup (20h)
db '* *'
db 7 dup (20h)
db '* *'
db 4 dup (20h) ;6
db '* *'
db 8 dup (20h)
db '* *'
db 16 dup (20h) ;14
db '** *'
db 6 dup (20h)
db '* * *'
db 7 dup (20h)
db '** *'
db 7 dup (20h) ;9
db '** *'
db 14 dup (20h)
db '*'
db 17 dup (20h) ;15
db '* *'
db 7 dup (20h)
db '* * *'
db 6 dup (20h)
db '*'
db 11 dup (20h) ;13
db '*'
db 17 dup (20h)
db '*'
db 19 dup (20h) ;17
db '* *'
db 23 dup (20h)
db '*'
db 11 dup (20h) ;13
db '*'
db 14 dup (20h)
db '*'
db 14 dup (20h) ;14
db 320 dup (20)
;happy 10行
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
het1 DW 0B8CH,0AEAH,0A48H,09A6H,0904H,0860H,07BCH,0718H,0676H,05D6H,0538H,049CH
DW 049EH,04A0H,04A2H,04A4H,04A6H,04A8H,04AAH,054CH,05EEH,0550H,04B2H,04B4H
DW 04B6H,04B8H,04BAH,04BCH,04BEH,04C0H,0564H,0606H,06A6H,0744H,07E0H,087CH
DW 0918H,09B6H,0A54H,0AF2H,0B90H,0C2EH
;内层坐标
het2 DW 0CCEH,0C2AH,0B86H,0A40H,08F8H,07B2H,066CH,052AH,03EEH,02B4H,021EH,02C8H
DW 040EH,02D4H,023EH,02E8H,042EH,0572H,06B0H,07EAH,0924H,0A5CH,0B96H,0C32H
;外层坐标
;双层心(组合)
het3 DB 'Guess my mind~'
;猜猜我的心
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
het4 DW 0CCEH,0C2AH,0B86H,0A40H,08F8H,07B2H,066CH,052AH,03EEH,02B4H,021EH,02C8H
DW 040EH
;左半(外层)
DW 05EEH,054CH,04AAH,04A8H,04A6H,04A4H,04A2H,04A0H,049EH,049CH,0538H,05D6H
DW 0676H,0718H,07BCH,0860H,0904H,09A6H,0A48H,0AEAH,0B8CH,0C2EH
;左半(内层)
het5 DW 0CCEH,0C32H,0B96H,0A5CH,0924H,07EAH,06B0H,0572H,042EH,02E8H,023EH,02D4H
DW 040EH
;右半(外层)
DW 05EEH,0550H,04B2H,04B4H,04B6H,04B8H,04BAH,04BCH,04BEH,04C0H,0564H,0606H
DW 06A6H,0744H,07E0H,087CH,0918H,09B6H,0A54H,0AF2H,0B90H,0C2EH
;右半(内层)
;双层心(分散)
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
next db "Next "
db "Please press 1 or 2 to choose. "
db " "
db " "
db " "
;提示语句
;接下来,请按1或2来选择
problem1 db "Can answer my three questions? "
db " "
db "1.OK 2.NO "
db " "
db " "
;可以回答我3个问题么?
;1.OK(problem2) 2.NO(problem3)
problem2 db "Well,you already answered my "
db "first question,you can answer "
db "my third question it? "
db " "
db "1.OK 2.NO "
;好,你已经回答我一个问题了,那么可以回答我第三个问题么?
;1.OK(promble4) 2.NO(problem5)
problem3 db "Well,I just hope you can answer "
db "my third question? "
db " "
db "1.OK 2.NO "
db " "
;好吧,我只希望你能够回答我第三个问题好么?
;1.OK(problem4) 2.NO(problem5)
problem4 db "Do you love me? "
db "The answer can be and the answer"
db "to the second question? "
db " "
db "1.OK 2.OK "
;你喜欢我么?答案可以和第二个问题一样吗?
;1.OK(joke) 2.OK(joke)
problem5 db "Do you love me? "
db "The answer can be and the answer"
db "to the second question? "
db " "
db "1.NO 2.NO "
;你喜欢我么?答案可以和第二个问题一样吗?
;1.NO(joke) 2.NO(joke)
joke db " "
db " \(*^__^*)/... "
db " "
db "You choose,is that I want to say"
db " "
;你选的,就是我想说的。
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
rose1 db "rose.htm",0
rose3 db "<html>"
db "<head>"
db "<meta http-equiv="
db "'Content-Type' content='text/html;charset=gbk'>"
db "<title>献给最喜欢的人</title>"
db "</head>"
db "<body>"
db "<canvas></canvas>"
db "<script>"
db "var c = document.getElementsByTagName('canvas')[0];"
db "var b = document.body;"
db "var a = c.getContext('2d');"
db "with(m=Math)C=cos,S=sin,P=pow;O=a.getImageData"
db "(0,0,c.height=f=W=256,f);U=O.data;D={};F=[];function "
db "J(p){p[5]=Q=0;for(j=3;j--;)if(!D[Q=(p[j]>>=2)+Q*f])D[Q]"
db "=F.push(p)}setInterval(function(){for(i=1e3;i--;){c=i%42*1.35;"
db "H=T;T=m.random();A=H*2-1;B=T*2-1;"
db "J([S(H*7)*(o=13+5/(.2+P(T*4,4)))-T*50,T*550+500,(l=C(H*7))*o,"
db "(G=l/7+.5)-T/4,G]);if(A*A+B*B<1)if(c>32)"
db "{J([(o=.5/(H+.01)-H*300)*C(n=(j=c&1)?6:4)+"
db "(w=T*-f)*S(n)+j*630-390,"
db "o*S(n)-w*C(n)+999-j*350,C(B+A)*99-j*50,"
db "(P(l=1-B*B,f*6)+C(H+T)+P(C((o*H+o+(B>0?w:-w))/25),"
db "30)*l-H+2)/5,o/1e3+.7-o*w/3e5])"
db ";J([(o=H*45-20)*C(l=c/.86)+(w=T*T)*f*S(l),"
db "C(B/2)*99-w*T*60+436,o*S(l)-w*f*C(l),w*.3+.3,T*.7])}else "
db "J([(o=A*(2-T)*(80-c*2))*C(c)-(w=99-C(A)*120-C(T)*"
db "(f-c*5)+C(P(1-T,7))*50+c*2)*S(c),(B*2-C(P(T,7))+9)*50,"
db "o*S(c)+w*C(c),1-T*.7,P(1-T,9)/4])}for(i=0;i<f*f;"
db "m[i++]=f)for(l=4;l--;)U[i*4+l]=255;for(c=C(W),"
db "s=S(W),j=F.length;j--;){k=F[j],x=k[0]*c+k[2]*s+99,"
db "z=k[0]*s-k[2]*c,y=k[1]-z*.4<<8;for(i=3;i--;)if"
db "(z<m[p=y-~x+[0,1,f][i]])for(m[p]=z,l=3;l--;)"
db "U[p*4+l]=k[l+3]*f}a.putImageData(O,0,0);W+=.03},T=0)"
db "</script>"
db "</body>"
db "<br><br/>"
db "<br><br/>"
db "<br>执此红玫瑰,送予心上人<br/>"
db "</html>"
;玫瑰html源码+创建文件所需
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
gift db 'Please check your folder,'
db 'there is a gift to you. '
;提示语:请查看你的文件夹,有一个礼物呦~
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
back1 db 'Now look at your folders to'
db 'have more than one file. '
db 'Open her,A surprise '
db "please click 'Q' key exit. "
db ' From www.asmedu.net '
db ' by:MeeSong '
db ' 2012.08.23 '
adrs dw 03DCH,053EH,066CH,08F0H,0C46H,0CE6H,0D86H
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
love1 db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,010h,00h,00h,00h,00h
db 00h,00h,01fh,090h,00h,00h,00h,00h
db 00h,00h,01fh,090h,03eh,00h,00h,00h
db 00h,00h,04h,0feh,023h,00h,00h,00h
db 00h,00h,04h,013h,021h,00h,00h,00h
db 00h,00h,04h,011h,021h,00h,00h,00h
db 00h,00h,04h,011h,021h,00h,00h,00h
db 00h,00h,04h,011h,021h,00h,00h,00h
db 00h,00h,04h,011h,021h,00h,00h,00h
db 00h,00h,04h,011h,021h,00h,00h,00h
db 00h,00h,01fh,091h,021h,00h,00h,00h
db 00h,00h,04h,011h,021h,00h,00h,00h
db 00h,00h,04h,011h,021h,00h,00h,00h
db 00h,00h,04h,031h,021h,00h,00h,00h
db 00h,00h,04h,021h,021h,00h,00h,00h
db 00h,00h,04h,021h,021h,00h,00h,00h
db 00h,00h,04h,021h,021h,00h,00h,00h
db 00h,00h,05h,0c1h,021h,00h,00h,00h
db 00h,00h,06h,041h,021h,00h,00h,00h
db 00h,00h,038h,081h,021h,00h,00h,00h
db 00h,00h,01h,093h,023h,00h,00h,00h
db 00h,00h,01h,0eh,03eh,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;珈
love2 db 00h,00h,00h,01h,080h,00h,00h,00h
db 00h,00h,00h,03h,0c0h,00h,00h,00h
db 00h,00h,03fh,086h,060h,00h,00h,00h
db 00h,00h,04h,0ch,010h,00h,00h,00h
db 00h,00h,04h,030h,0ch,00h,00h,00h
db 00h,00h,04h,0cfh,0f7h,00h,00h,00h
db 00h,00h,04h,00h,01h,00h,00h,00h
db 00h,00h,04h,01eh,00h,00h,00h,00h
db 00h,00h,04h,03fh,06h,00h,00h,00h
db 00h,00h,04h,061h,026h,00h,00h,00h
db 00h,00h,03fh,061h,026h,00h,00h,00h
db 00h,00h,04h,07fh,026h,00h,00h,00h
db 00h,00h,04h,07fh,026h,00h,00h,00h
db 00h,00h,04h,061h,026h,00h,00h,00h
db 00h,00h,04h,061h,026h,00h,00h,00h
db 00h,00h,04h,07fh,026h,00h,00h,00h
db 00h,00h,04h,061h,026h,00h,00h,00h
db 00h,00h,05h,0e1h,026h,00h,00h,00h
db 00h,00h,07h,061h,06h,00h,00h,00h
db 00h,00h,01ch,061h,06h,00h,00h,00h
db 00h,00h,030h,061h,06h,00h,00h,00h
db 00h,00h,00h,06fh,03ch,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;瑜
love3 db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,01h,00h,00h,00h,00h
db 00h,00h,00h,039h,020h,00h,00h,00h
db 00h,00h,03h,0e1h,030h,00h,00h,00h
db 00h,00h,01eh,081h,018h,00h,00h,00h
db 00h,00h,00h,081h,08h,00h,00h,00h
db 00h,00h,00h,081h,0ch,00h,00h,00h
db 00h,00h,00h,081h,00h,00h,00h,00h
db 00h,00h,03fh,0ffh,0ffh,00h,00h,00h
db 00h,00h,00h,081h,00h,00h,00h,00h
db 00h,00h,00h,081h,04h,00h,00h,00h
db 00h,00h,00h,081h,0ch,00h,00h,00h
db 00h,00h,00h,085h,088h,00h,00h,00h
db 00h,00h,00h,0b8h,090h,00h,00h,00h
db 00h,00h,01h,0e0h,0b0h,00h,00h,00h
db 00h,00h,0fh,080h,0a0h,00h,00h,00h
db 00h,00h,038h,080h,0e0h,00h,00h,00h
db 00h,00h,00h,080h,0c1h,00h,00h,00h
db 00h,00h,00h,081h,0e1h,00h,00h,00h
db 00h,00h,00h,082h,021h,00h,00h,00h
db 00h,00h,00h,08ch,011h,00h,00h,00h
db 00h,00h,018h,098h,019h,00h,00h,00h
db 00h,00h,0fh,080h,0eh,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;我
love4 db 0,0,0,0,07fh,0,0,0
db 0,0,07h,0ffh,0f8h,0,0,0
db 0,0,0,0,04h,0,0,0
db 0,0,01h,04h,0ch,0,0,0
db 0,0,0,086h,08h,0,0,0
db 0,0,0,082h,018h,0,0,0
db 0,0,0,0c2h,010h,0,0,0
db 0,0,01fh,0ffh,0ffh,0c0h,0,0
db 0,0,010h,010h,0,040h,0,0
db 0,0,010h,010h,0,040h,0,0
db 0,0,010h,010h,0,0c0h,0,0
db 0,0,013h,0ffh,0feh,080h,0,0
db 0,0,0,030h,0,0,0,0
db 0,0,0,020h,0,0,0,0
db 0,0,0,03fh,0fch,0,0,0
db 0,0,0,07fh,0feh,0,0,0
db 0,0,0,0f0h,04h,0,0,0
db 0,0,0,098h,0ch,0,0,0
db 0,0,01h,08ch,018h,0,0,0
db 0,0,07h,06h,030h,0,0,0
db 0,0,0ch,03h,0c0h,0,0,0
db 0,0,018h,03h,0e0h,0,0,0
db 0,0,0,03ch,03ch,0,0,0
db 0,0,03h,0e0h,07h,0c0h,0,0
db 0,0,0,0,0,0,0,0
;爱
love6 db 00h,00h,02h,020h,00h,00h,00h,00h
db 00h,00h,02h,020h,00h,00h,00h,00h
db 00h,00h,06h,020h,00h,00h,00h,00h
db 00h,00h,04h,03fh,0fch,00h,00h,00h
db 00h,00h,04h,07fh,0feh,00h,00h,00h
db 00h,00h,04h,041h,03h,00h,00h,00h
db 00h,00h,0ch,0c1h,02h,00h,00h,00h
db 00h,00h,0ch,081h,02h,00h,00h,00h
db 00h,00h,0dh,01h,02h,00h,00h,00h
db 00h,00h,014h,011h,00h,00h,00h,00h
db 00h,00h,014h,011h,08h,00h,00h,00h
db 00h,00h,024h,031h,08h,00h,00h,00h
db 00h,00h,04h,021h,04h,00h,00h,00h
db 00h,00h,04h,021h,04h,00h,00h,00h
db 00h,00h,04h,061h,04h,00h,00h,00h
db 00h,00h,04h,041h,06h,00h,00h,00h
db 00h,00h,04h,0c1h,02h,00h,00h,00h
db 00h,00h,04h,081h,02h,00h,00h,00h
db 00h,00h,05h,081h,02h,00h,00h,00h
db 00h,00h,05h,01h,02h,00h,00h,00h
db 00h,00h,04h,019h,00h,00h,00h,00h
db 00h,00h,04h,0fh,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;你
love7 db 00h,00h,08h,018h,00h,00h,00h,00h
db 00h,00h,0ch,010h,00h,00h,00h,00h
db 00h,00h,06h,01fh,0ffh,080h,00h,00h
db 00h,00h,02h,020h,00h,00h,00h,00h
db 00h,00h,01h,060h,00h,00h,00h,00h
db 00h,00h,00h,0cfh,0feh,00h,00h,00h
db 00h,00h,00h,090h,03h,00h,00h,00h
db 00h,00h,010h,011h,03h,00h,00h,00h
db 00h,00h,08h,010h,082h,00h,00h,00h
db 00h,00h,04h,010h,0c2h,00h,00h,00h
db 00h,00h,04h,030h,042h,00h,00h,00h
db 00h,00h,00h,07fh,0ffh,080h,00h,00h
db 00h,00h,01h,0ffh,0ffh,080h,00h,00h
db 00h,00h,03h,022h,02h,00h,00h,00h
db 00h,00h,02h,023h,02h,00h,00h,00h
db 00h,00h,02h,021h,082h,00h,00h,00h
db 00h,00h,02h,060h,082h,00h,00h,00h
db 00h,00h,06h,040h,082h,00h,00h,00h
db 00h,00h,04h,07fh,0ffh,080h,00h,00h
db 00h,00h,04h,00h,04h,00h,00h,00h
db 00h,00h,0ch,01h,04h,00h,00h,00h
db 00h,00h,08h,01h,0fch,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;海
love8 db 00h,00h,01h,00h,040h,00h,00h,00h
db 00h,00h,01h,00h,040h,00h,00h,00h
db 00h,00h,01h,00h,040h,00h,00h,00h
db 00h,00h,01h,00h,040h,00h,00h,00h
db 00h,00h,01h,00h,040h,00h,00h,00h
db 00h,00h,01fh,0ffh,0ffh,00h,00h,00h
db 00h,00h,01h,080h,040h,00h,00h,00h
db 00h,00h,01h,080h,040h,00h,00h,00h
db 00h,00h,03h,040h,040h,00h,00h,00h
db 00h,00h,03h,040h,040h,00h,00h,00h
db 00h,00h,03h,020h,040h,00h,00h,00h
db 00h,00h,05h,027h,0feh,00h,00h,00h
db 00h,00h,05h,03ch,03h,00h,00h,00h
db 00h,00h,0dh,08h,03h,00h,00h,00h
db 00h,00h,09h,08h,03h,00h,00h,00h
db 00h,00h,019h,08h,03h,00h,00h,00h
db 00h,00h,01h,08h,03h,00h,00h,00h
db 00h,00h,01h,08h,03h,00h,00h,00h
db 00h,00h,01h,08h,03h,00h,00h,00h
db 00h,00h,01h,08h,03h,00h,00h,00h
db 00h,00h,01h,08h,03h,00h,00h,00h
db 00h,00h,01h,07h,0feh,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;枯
love9 db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,0fh,0ffh,0ffh,080h,00h,00h
db 00h,00h,00h,0ch,00h,00h,00h,00h
db 00h,00h,00h,08h,00h,00h,00h,00h
db 00h,00h,00h,010h,00h,00h,00h,00h
db 00h,00h,00h,030h,00h,00h,00h,00h
db 00h,00h,00h,020h,00h,00h,00h,00h
db 00h,00h,00h,040h,00h,00h,00h,00h
db 00h,00h,00h,0ffh,0fch,00h,00h,00h
db 00h,00h,01h,0ffh,0feh,00h,00h,00h
db 00h,00h,03h,080h,02h,00h,00h,00h
db 00h,00h,07h,080h,02h,00h,00h,00h
db 00h,00h,0dh,080h,02h,00h,00h,00h
db 00h,00h,011h,080h,02h,00h,00h,00h
db 00h,00h,01h,080h,02h,00h,00h,00h
db 00h,00h,01h,080h,02h,00h,00h,00h
db 00h,00h,01h,080h,02h,00h,00h,00h
db 00h,00h,01h,080h,02h,00h,00h,00h
db 00h,00h,01h,080h,02h,00h,00h,00h
db 00h,00h,01h,080h,06h,00h,00h,00h
db 00h,00h,00h,0ffh,0fch,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;石
lovea db 00h,00h,01h,04h,02h,00h,00h,00h
db 00h,00h,01h,06h,06h,00h,00h,00h
db 00h,00h,01h,02h,04h,00h,00h,00h
db 00h,00h,09h,021h,0ch,00h,00h,00h
db 00h,00h,09h,021h,08h,00h,00h,00h
db 00h,00h,09h,040h,08h,00h,00h,00h
db 00h,00h,09h,05fh,0ffh,080h,00h,00h
db 00h,00h,09h,080h,00h,00h,00h,00h
db 00h,00h,09h,080h,00h,00h,00h,00h
db 00h,00h,09h,00h,00h,00h,00h,00h
db 00h,00h,019h,00h,00h,00h,00h,00h
db 00h,00h,011h,00h,00h,00h,00h,00h
db 00h,00h,01h,00h,00h,00h,00h,00h
db 00h,00h,01h,0fh,0ffh,00h,00h,00h
db 00h,00h,01h,080h,00h,00h,00h,00h
db 00h,00h,02h,080h,00h,00h,00h,00h
db 00h,00h,02h,0c0h,00h,00h,00h,00h
db 00h,00h,02h,040h,00h,00h,00h,00h
db 00h,00h,04h,040h,00h,00h,00h,00h
db 00h,00h,0ch,020h,00h,00h,00h,00h
db 00h,00h,08h,03fh,0ffh,080h,00h,00h
db 00h,00h,010h,03fh,0ffh,080h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;烂
loveb db 00h,00h,00h,080h,00h,00h,00h,00h
db 00h,00h,00h,080h,00h,00h,00h,00h
db 00h,00h,01h,00h,00h,00h,00h,00h
db 00h,00h,01h,0ffh,0feh,00h,00h,00h
db 00h,00h,02h,04h,00h,00h,00h,00h
db 00h,00h,06h,04h,00h,00h,00h,00h
db 00h,00h,0ch,04h,00h,00h,00h,00h
db 00h,00h,018h,04h,00h,00h,00h,00h
db 00h,00h,010h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,01fh,0ffh,0ffh,00h,00h,00h
db 00h,00h,00h,06h,00h,00h,00h,00h
db 00h,00h,00h,06h,00h,00h,00h,00h
db 00h,00h,00h,0bh,00h,00h,00h,00h
db 00h,00h,00h,09h,00h,00h,00h,00h
db 00h,00h,00h,010h,080h,00h,00h,00h
db 00h,00h,00h,020h,040h,00h,00h,00h
db 00h,00h,00h,060h,020h,00h,00h,00h
db 00h,00h,01h,080h,018h,00h,00h,00h
db 00h,00h,07h,00h,0eh,00h,00h,00h
db 00h,00h,01ch,00h,03h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;矢
lovec db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,01fh,0ffh,0ffh,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,0fh,0ffh,0feh,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,0ch,00h,00h,00h,00h
db 00h,00h,02h,044h,0ch,00h,00h,00h
db 00h,00h,06h,044h,04h,00h,00h,00h
db 00h,00h,04h,046h,06h,00h,00h,00h
db 00h,00h,04h,042h,02h,00h,00h,00h
db 00h,00h,04h,042h,012h,00h,00h,00h
db 00h,00h,04h,042h,013h,00h,00h,00h
db 00h,00h,08h,042h,011h,00h,00h,00h
db 00h,00h,08h,040h,011h,00h,00h,00h
db 00h,00h,018h,040h,021h,080h,00h,00h
db 00h,00h,010h,07fh,0c0h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;志
loved db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,07h,0ffh,0ffh,080h,00h,00h
db 00h,00h,00h,01h,080h,00h,00h,00h
db 00h,00h,00h,01h,00h,00h,00h,00h
db 00h,00h,00h,03h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,06h,00h,00h,00h,00h
db 00h,00h,00h,0eh,0c0h,00h,00h,00h
db 00h,00h,00h,0ah,060h,00h,00h,00h
db 00h,00h,00h,012h,030h,00h,00h,00h
db 00h,00h,00h,062h,018h,00h,00h,00h
db 00h,00h,00h,0c2h,0ch,00h,00h,00h
db 00h,00h,01h,082h,02h,00h,00h,00h
db 00h,00h,06h,02h,01h,00h,00h,00h
db 00h,00h,08h,02h,00h,080h,00h,00h
db 00h,00h,00h,02h,00h,0c0h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
;不
lovee db 00h,00h,00h,00h,080h,00h,00h,00h
db 00h,00h,08h,03h,0c0h,00h,00h,00h
db 00h,00h,04h,06h,070h,00h,00h,00h
db 00h,00h,02h,0ch,018h,00h,00h,00h
db 00h,00h,01h,030h,0eh,00h,00h,00h
db 00h,00h,00h,0e0h,03h,080h,00h,00h
db 00h,00h,00h,09fh,0fch,080h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,018h,00h,03h,00h,00h,00h
db 00h,00h,0ch,03fh,013h,00h,00h,00h
db 00h,00h,06h,041h,013h,00h,00h,00h
db 00h,00h,02h,041h,013h,00h,00h,00h
db 00h,00h,00h,07fh,013h,00h,00h,00h
db 00h,00h,03h,041h,013h,00h,00h,00h
db 00h,00h,02h,041h,013h,00h,00h,00h
db 00h,00h,02h,041h,013h,00h,00h,00h
db 00h,00h,06h,07fh,013h,00h,00h,00h
db 00h,00h,04h,041h,013h,00h,00h,00h
db 00h,00h,0ch,041h,013h,00h,00h,00h
db 00h,00h,08h,041h,03h,00h,00h,00h
db 00h,00h,010h,041h,03h,00h,00h,00h
db 00h,00h,00h,04fh,01eh,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;渝
lovef db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,0ffh,0fch,00h,00h,00h
db 00h,00h,00h,00h,0ch,00h,00h,00h
db 00h,00h,00h,00h,030h,00h,00h,00h
db 00h,00h,00h,01h,0c0h,00h,00h,00h
db 00h,00h,07h,0c3h,08h,040h,00h,00h
db 00h,00h,00h,042h,0ch,040h,00h,00h
db 00h,00h,00h,05fh,0f4h,080h,00h,00h
db 00h,00h,00h,041h,04h,080h,00h,00h
db 00h,00h,00h,041h,05h,080h,00h,00h
db 00h,00h,00h,041h,05h,00h,00h,00h
db 00h,00h,00h,05fh,0f6h,00h,00h,00h
db 00h,00h,00h,05fh,0fah,00h,00h,00h
db 00h,00h,00h,080h,082h,00h,00h,00h
db 00h,00h,00h,080h,083h,00h,00h,00h
db 00h,00h,01h,080h,081h,00h,00h,00h
db 00h,00h,01h,03fh,0f9h,080h,00h,00h
db 00h,00h,03h,00h,080h,080h,00h,00h
db 00h,00h,02h,00h,080h,040h,00h,00h
db 00h,00h,04h,00h,080h,060h,00h,00h
db 00h,00h,08h,031h,080h,020h,00h,00h
db 00h,00h,00h,0fh,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;承
lovev db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,01h,00h,020h,00h,00h,00h
db 00h,00h,01h,00h,020h,00h,00h,00h
db 00h,00h,01h,00h,020h,00h,00h,00h
db 00h,00h,01h,00h,020h,00h,00h,00h
db 00h,00h,0fh,0f7h,0ffh,080h,00h,00h
db 00h,00h,02h,010h,020h,00h,00h,00h
db 00h,00h,02h,010h,020h,00h,00h,00h
db 00h,00h,02h,010h,020h,00h,00h,00h
db 00h,00h,02h,010h,020h,00h,00h,00h
db 00h,00h,06h,01fh,0ffh,0c0h,00h,00h
db 00h,00h,04h,030h,030h,00h,00h,00h
db 00h,00h,04h,020h,030h,00h,00h,00h
db 00h,00h,04h,020h,078h,00h,00h,00h
db 00h,00h,04h,020h,0ech,00h,00h,00h
db 00h,00h,02h,060h,0a4h,00h,00h,00h
db 00h,00h,01h,0c1h,0a2h,00h,00h,00h
db 00h,00h,00h,0c3h,023h,00h,00h,00h
db 00h,00h,00h,0e6h,021h,080h,00h,00h
db 00h,00h,01h,03ch,020h,0c0h,00h,00h
db 00h,00h,03h,08h,020h,00h,00h,00h
db 00h,00h,06h,00h,020h,00h,00h,00h
db 00h,00h,0ch,00h,020h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;妹
loveh db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,0fh,0ffh,0ffh,080h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;一
lovei db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,04h,08h,00h,00h,00h
db 00h,00h,08h,04h,08h,00h,00h,00h
db 00h,00h,04h,03fh,0ffh,00h,00h,00h
db 00h,00h,06h,03fh,0ffh,00h,00h,00h
db 00h,00h,03h,04h,08h,00h,00h,00h
db 00h,00h,00h,04h,088h,00h,00h,00h
db 00h,00h,00h,00h,080h,00h,00h,00h
db 00h,00h,03ch,00h,080h,00h,00h,00h
db 00h,00h,04h,07fh,0ffh,00h,00h,00h
db 00h,00h,04h,01h,00h,00h,00h,00h
db 00h,00h,04h,03h,00h,00h,00h,00h
db 00h,00h,04h,02h,00h,00h,00h,00h
db 00h,00h,04h,07h,0fch,00h,00h,00h
db 00h,00h,04h,0ch,06h,00h,00h,00h
db 00h,00h,04h,018h,06h,00h,00h,00h
db 00h,00h,04h,068h,06h,00h,00h,00h
db 00h,00h,04h,08h,06h,00h,00h,00h
db 00h,00h,04h,0c8h,06h,00h,00h,00h
db 00h,00h,05h,088h,06h,00h,00h,00h
db 00h,00h,07h,08h,06h,00h,00h,00h
db 00h,00h,00h,0fh,0fch,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;诺
lovej db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,020h,020h,00h,00h,00h
db 00h,00h,00h,010h,020h,00h,00h,00h
db 00h,00h,00h,090h,060h,00h,00h,00h
db 00h,00h,00h,098h,040h,00h,00h,00h
db 00h,00h,08h,088h,048h,00h,00h,00h
db 00h,00h,08h,088h,048h,00h,00h,00h
db 00h,00h,08h,08ch,044h,00h,00h,00h
db 00h,00h,08h,084h,0c4h,00h,00h,00h
db 00h,00h,08h,084h,084h,00h,00h,00h
db 00h,00h,08h,086h,086h,00h,00h,00h
db 00h,00h,018h,081h,02h,00h,00h,00h
db 00h,00h,010h,083h,02h,00h,00h,00h
db 00h,00h,010h,082h,02h,00h,00h,00h
db 00h,00h,010h,084h,013h,00h,00h,00h
db 00h,00h,030h,08ch,011h,00h,00h,00h
db 00h,00h,020h,098h,011h,00h,00h,00h
db 00h,00h,00h,0e0h,011h,00h,00h,00h
db 00h,00h,01h,0c0h,010h,00h,00h,00h
db 00h,00h,01eh,080h,030h,00h,00h,00h
db 00h,00h,030h,0ffh,0e0h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;必
lovek db 00h,00h,00h,04h,00h,00h,00h,00h
db 00h,00h,00h,06h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,07h,0ffh,0ffh,080h,00h,00h
db 00h,00h,04h,00h,00h,080h,00h,00h
db 00h,00h,04h,00h,010h,080h,00h,00h
db 00h,00h,04h,00h,010h,080h,00h,00h
db 00h,00h,04h,00h,010h,080h,00h,00h
db 00h,00h,00h,00h,010h,00h,00h,00h
db 00h,00h,0fh,0ffh,0ffh,0c0h,00h,00h
db 00h,00h,00h,00h,010h,00h,00h,00h
db 00h,00h,00h,00h,010h,00h,00h,00h
db 00h,00h,01h,080h,010h,00h,00h,00h
db 00h,00h,00h,0c0h,010h,00h,00h,00h
db 00h,00h,00h,060h,010h,00h,00h,00h
db 00h,00h,00h,030h,010h,00h,00h,00h
db 00h,00h,00h,010h,010h,00h,00h,00h
db 00h,00h,00h,08h,010h,00h,00h,00h
db 00h,00h,00h,00h,010h,00h,00h,00h
db 00h,00h,00h,00h,010h,00h,00h,00h
db 00h,00h,00h,06h,010h,00h,00h,00h
db 00h,00h,00h,07h,0f0h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;守
lovel db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,0fh,0ffh,0ffh,080h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;一
lovem db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,01h,02h,00h,00h,00h,00h
db 00h,00h,01h,02h,00h,00h,00h,00h
db 00h,00h,02h,02h,00h,00h,00h,00h
db 00h,00h,02h,02h,00h,00h,00h,00h
db 00h,00h,03h,0ffh,0feh,00h,00h,00h
db 00h,00h,02h,02h,00h,00h,00h,00h
db 00h,00h,04h,02h,00h,00h,00h,00h
db 00h,00h,04h,02h,00h,00h,00h,00h
db 00h,00h,08h,02h,00h,00h,00h,00h
db 00h,00h,018h,02h,00h,00h,00h,00h
db 00h,00h,010h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,07h,0ffh,0feh,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,00h,02h,00h,00h,00h,00h
db 00h,00h,01fh,0ffh,0ffh,080h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,00h,00h
;生
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;以上皆为点阵坐标。为64*64单色位图生成。
;每行8字节,64位。共64行。即64*64.
;
;经过删除空白行,已经简化到25行/图
;
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
segm dw 040,040,120,120,120,260,260,260,260,260,260,260,260
dw 360,360,360,360,360,360,360,360
;各图形首地址行数
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ofet dw 040,100,100,160,220,060,120,180,240,340,400,460,520
dw 120,180,240,280,400,460,520,580
;各图形首地址列数
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
sec db 0
;记录1ch中断运行次数
;提供延时程序参数
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
DG ends
;
;程序主体思想
;
;通过各种功能模块(子程序)相互交错
;利用延时和时差
;
;来实现同步处理(多线程)的假象
;制造视觉的同步变换。
;
CG segment
start :mov si,DG
mov ds,si
xor si,si
mov di,0b800h
mov es,di
mov di,160
lea bx,num
mov cx,[bx]
mov ah,0eh
girl :lodsb
stosw
loop girl
;送入"gaga"
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
call int1cst
;截取1ch中断
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mov di,13*160
lea si,i
key1 :mov cx,159
call discolor
push si
lea si,sec
and byte ptr [si],0
t1 :cmp byte ptr [si],15
jne t1
pop si
;t系列皆为控制延时程序
;
;通过检测1ch中断运行次数
;控制指令进程,来实现延时
;
cld
rep movsb
cmp di,15*160 - 2
jne key1
;
;通过检测最后一个字符的位置来判定
;是否完成同组输出
;指示语句
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
add di,162
like :mov cx,80
call discolor
;'*'字符变色
push si
lea si,sec
and byte ptr [si],0
t2 :cmp byte ptr [si],15
jne t2
pop si
;延时
key2_1 :mov ah,1eh
cmp byte ptr ds:[si],20h
jz space
;检测空格符,改变颜色
key2_2 :lodsb
stosw
loop key2_1
cmp di,24*160
jne like
jmp clor
space :xor ah,ah
jmp key2_2
;隐含图
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
clor :call discolor
push si
lea si,sec
and byte ptr [si],0
t2_1 :cmp byte ptr [si],15
jne t2_1
pop si
mov ah,11
int 21h
or al,al
jz clor ;检测按键状态
xor ax,ax
int 16h
cmp ah,2h
jnz clor
;检测按键,当按键为1时,则向下执行
mov cx,8*80
mov di,16*160
call discolor
clor1 :cmp byte ptr es:[di],39h
jne snd
mov byte ptr es:[di+1],0ceh
snd :add di,2
loop clor1
jmp roll
call discolor
;按键显图
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
roll :lea si,e
mov cx,24
roll1 :push cx
push si
lea si,sec
and byte ptr [si],0
t3 :cmp byte ptr [si],15
jne t3
pop si
;延时
call discolor
;'*'符变色
mov dx,1
call rollp
;滚屏1行
mov cx,80
mov di,0f00h
roll2 :lodsb
stosw
loop roll2
;送单行字符
pop cx
loop roll1
;滚屏后,随即向最后一行送入数据,
;通过时间差,延时等,视觉上会感觉早已存在的数据
;七夕happy滚屏上移
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
push si
lea si,sec
and byte ptr [si],0
t4 :cmp byte ptr [si],15
jne t4
pop si
;延时
mov si,0
mov di,158
call close
;先显示一下内聚门
mov cx,19
poem :push si
lea si,sec
and byte ptr [si],0
t5 :cmp byte ptr [si],10
jne t5
pop si
;延时
add si,4
sub di,4
call close
;内聚
push si
push di
sub si,4
add di,4
call clear
;清除原来的图像
call discolor
;变色
pop di
pop si
loop poem
;内聚动画
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
call dclose
;先改变下图像方向
mov cx,19
poem1 :push si
lea si,sec
and byte ptr [si],0
t6 :cmp byte ptr [si],10
jne t6
pop si
;延时
sub si,4
add di,4
call dclose
;外散
push si
push di
add si,4
sub di,4
call clear
;清除原来图像
pop di
pop si
loop poem1
;外散动画
call clear
;清除残留图像
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
lea bx,het3
mov di,13*160+66
mov cx,14
mov ah,0eh
guess :mov al,[bx]
mov es:[di],ax
inc bx
add di,2
loop guess
push si
lea si,sec
and byte ptr [si],0
t6_1 :cmp byte ptr [si],100
jne t6_1
pop si
xor dx,dx
call rollp
;猜猜我的心
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
lovex :lea bx,het1
mov cx,66
lovex1 :mov di,[bx]
mov word ptr es:[di],0c2ah
;通过读取各个已经保存好的坐标
;来向预定位置送入字符
;以下同理
push si
lea si,sec
and byte ptr [si],0
t7 :cmp byte ptr [si],10
jne t7
pop si
add bx,2
loop lovex1
;单字符缓慢显示双层心。
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
cai1 :xor ax,ax
int 16h
cmp ah,17h
jz cai1_1
jmp short cai1 ;i
cai1_1 :mov ax,0e49h
mov word ptr es:[11*160+70],ax
mov ax,0720h
mov word ptr es:[11*160+72],ax
cai2 :xor ax,ax
int 16h
cmp ah,26h
jz cai2_1
jmp short cai2 ;l
cai2_1 :mov ax,0e4ch
mov word ptr es:[11*160+74],ax
cai3 :xor ax,ax
int 16h
cmp ah,18h
jz cai3_1
jmp short cai3 ;o
cai3_1 :mov ax,0e4fh
mov word ptr es:[11*160+76],ax
cai4 :xor ax,ax
int 16h
cmp ah,2fh
jz cai4_1
jmp short cai4 ;v
cai4_1 :mov ax,0e56h
mov word ptr es:[11*160+78],ax
cai5 :xor ax,ax
int 16h
cmp ah,12h
jz cai5_1
jmp short cai5 ;e
cai5_1 :mov ax,0e45h
mov word ptr es:[11*160+80],ax
mov ax,0720h
mov word ptr es:[11*160+82],ax
cai6 :xor ax,ax
int 16h
cmp ah,15h
jz cai6_1
jmp short cai6 ;y
cai6_1 :mov ax,0e59h
mov word ptr es:[11*160+84],ax
cai7 :xor ax,ax
int 16h
cmp ah,18h
jz cai7_1
jmp short cai7 ;o
cai7_1 :mov ax,0e4fh
mov word ptr es:[11*160+86],ax
cai8 :xor ax,ax
int 16h
cmp ah,16h
jz cai8_1
jmp short cai8 ;u
cai8_1 :mov ax,0e55h
mov word ptr es:[11*160+88],ax
;答案判断选定
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
xor dx,dx
mov cx,20
het6 :lea bx,het1
lea bp,het2
call flick1
;外层心变色
push si
lea si,sec
and byte ptr [si],0
t8 :cmp byte ptr [si],10
jne t8
pop si
call flick2
;内层心变色
push si
lea si,sec
and byte ptr [si],0
t8_1 :cmp byte ptr [si],2
jne t8_1
pop si
loop het6
;跳动
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
push si
lea si,sec
and byte ptr [si],0
t9 :cmp byte ptr [si],10
jne t9
pop si
;暂停一会,陶醉一下~
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
lea bx,het4
lea bp,het5
mov cx,37
lovex3 :mov di,[bx]
mov si,ds:[bp]
mov word ptr es:[di],0720h
mov word ptr es:[si],0720h
push si
lea si,sec
and byte ptr [si],0
ta :cmp byte ptr [si],10
jne ta
pop si
add bx,2
add bp,2
loop lovex3
;单字符缓慢分解心
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mov di,073ah
mov cx,11
lovex4 :mov byte ptr es:[di],20h
push si
lea si,sec
and byte ptr [si],0
tb :cmp byte ptr [si],10
jne tb
pop si
sub di,2
loop lovex4
;分解 i love you
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mov dx,0
call rollp
;清屏
;保证界面干净
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;此部分为语句边框
;
;原理同上边那个左右滑动门动画一样
;
push si
lea si,sec
and byte ptr [si],0
tc :cmp byte ptr [si],20
jne tc
pop si
;暂停一会
mov di,12*160+78
mov si,12*160+80
mov word ptr es:[di],0cc9h
mov word ptr es:[di+0a0h],0cc8h
;左
mov word ptr es:[si],0cbbh
mov word ptr es:[si+0a0h],0cbch
;右
sub di,2
add si,2
mov ax,0c2dh
mov cx,19
wind1 :mov word ptr es:[di],0cc9h
mov word ptr es:[di+0a0h],0cc8h
;左
mov word ptr es:[si],0cbbh
mov word ptr es:[si+0a0h],0cbch
;右
mov word ptr es:[di+2],ax
mov word ptr es:[di+0a2h],ax
mov word ptr es:[si-2],ax
mov word ptr es:[si+09eh],ax
push si
lea si,sec
and byte ptr [si],0
td :cmp byte ptr [si],20
jne td
pop si
;慢效果
sub di,2
add si,2
loop wind1
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mov si,12*160+40
mov di,13*160+40
mov cx,8
wind2 :push cx
mov cx,40
wind3 :mov ax,es:[si]
mov es:[si - 0a0h],ax
mov word ptr es:[si],0720h
mov ax,es:[di]
mov es:[di + 0a0h],ax
mov word ptr es:[di],0720h
add si,2
add di,2
loop wind3
;单次复制清除上下双行
push si
lea si,sec
and byte ptr [si],0
te :cmp byte ptr [si],18
jne te
pop si
;慢效果
add di,80
sub si,240
pop cx
loop wind2
;问题语句窗口框
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;此部分为提问机制
;
lea si,next
mov di,10*160+50
call pro_str
;提示语句显示
push si
lea si,sec
and byte ptr [si],0
tf :cmp byte ptr [si],50
jne tf
pop si
;暂停约5秒
;50次应该不到3秒,向显存送入字符,空格占一部分时间
call pro_cle
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
lea si,problem1
call pro_str
choose1 :xor ax,ax
int 16h ;读取按键
cmp al,31h
je prob1 ;第一选择可能
cmp al,32h
je prob2 ;第二选择可能
jmp short choose1
;第一问题
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
prob1 :call pro_cle ;清除上个问题
lea si,problem2
call pro_str ;显示当前问题
choose2 :xor ax,ax
int 16h
cmp al,31h
je prob3
cmp al,32h
je prob4
jmp short choose2
;第二问题(1号)
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
prob2 :call pro_cle
lea si,problem3
call pro_str
choose3 :xor ax,ax
int 16h
cmp al,31h
je prob3
cmp al,32h
je prob4
jmp short choose3
;第二问题(2号)
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
prob3 :call pro_cle
lea si,problem4
call pro_str
choose4 :xor ax,ax
int 16h
cmp al,31h
je joked
cmp al,32h
je joked
jmp short choose4
;第三问题(1号)
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
prob4 :call pro_cle
lea si,problem5
call pro_str
choose5 :xor ax,ax
int 16h
cmp al,31h
je joked
cmp al,32h
je joked
jmp short choose5
;第三问题(2号)
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
joked :call pro_cle
lea si,joke
call pro_str
;答案:结束语
push di
mov cx,5*80
colo :mov byte ptr es:[di+1],0eh
add di,2
loop colo
pop di
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
push si
lea si,sec
and byte ptr [si],0
t01 :cmp byte ptr [si],50
jne t01
pop si
;暂停约3秒
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;倒计时
call pro_cle
mov ax,0e35h
mov di,12*160+80
num1 :mov es:[di],ax
push si
lea si,sec
and byte ptr [si],0
t02 :cmp byte ptr [si],18
jne t02
pop si
;1s
cmp al,'0'
jz flie
dec ax
jmp short num1
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
flie :mov word ptr es:[di],0720h
;清除
call rose
;生成文件
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
lea si,gift
mov di,10*160+50
mov ah,0eh
mov cx,2
gift1 :push cx
mov cx,25
gift2 :lodsb
stosw
loop gift2
mov di,11*160+50
pop cx
loop gift1
;提示语:礼物
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
push si
lea si,sec
and byte ptr [si],0
t03 :cmp byte ptr [si],54
jne t03
pop si
;3s
xor dx,dx
call rollp
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
time1 :mov ax,4f03h
int 10h
push bx
;保存模式
mov ax,4f02h
mov bx,101h
int 10h
;设置模式 640*480 256 色
mov ax,04h ;设置颜色
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mov si,DG
mov ds,si
mov si,0a000h
mov es,si
lea si,love1
lea bp,segm
xor dx,dx
mov cx,21 ;图数
tim4 :call tim
cmp dx,4
jz stops
push si
lea si,sec
and byte ptr [si],0
te_1 :cmp byte ptr [si],5
jne te_1
pop si
;延时
back :inc dx
loop tim4
jmp short over
stops :push si
lea si,sec
and byte ptr [si],0
tf_1 :cmp byte ptr [si],40
jne tf_1
pop si
;延时
jmp short back
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
over :push si
lea si,sec
and byte ptr [si],0
tf_2 :cmp byte ptr [si],100
jne tf_2
pop si
mov ax,4f02h
pop bx
int 10h
;恢复模式
;像素
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mov di,DG
mov ds,di
mov di,0b800h
mov es,di
mov ax,0cc20h
mov di,164
way :mov cx,76
way1 :mov word ptr es:[di],ax
add di,2
loop way1
cmp di,23*160+78*2
je lon
mov di,23*160+4
jmp way
;设置两个横向边框
lon :mov cx,23
mov di,162
lon1 :mov word ptr es:[di],ax
mov word ptr es:[di+154],ax
add di,0a0h
loop lon1
;设置两个纵向边框
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
lea si,back1
lea bx,adrs
mov cx,7
xor dx,dx
ovspk1 :push cx
mov cx,27
mov di,[bx]
cmp dx,2
jz yellow
cmp dx,3
jz yellow
mov ah,0ah
ovspk :lodsb
stosw
cmp byte ptr es:[di-2],'Q'
jz red
red1 :loop ovspk
add bx,2
inc dx
pop cx
loop ovspk1
jmp sto
yellow :mov ah,0eh
jmp ovspk
red :mov byte ptr es:[di-1],0ch
jmp red1
;那几句话。
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
sto :call int1cov
xor ax,ax
int 16h
cmp ah,10h
jnz sto
mov ax,4c00h
int 21h
;结束
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;-------------------------------------------------|
;子程序 |
; |
;目录 |
; |
;1. 使所有'*'字符随机变色 |
;2. 上滚屏or清屏 |
;3. 截取1CH中断的安装程序 |
;4. 释放1CH中断 |
;5. 向内滑动门动画(双列1次) |
;6. 向外 |
;7. 配合5 and 6 清除专用 |
;8. 提问显示 |
;9. 提问清除 |
;A. 生成htm文件 |
;B and C.改变心形图案颜色,实现跳动。(内外层) |
;D. 转换点阵数据子程序 |
;-------------------------------------------------|
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;单字符随机变色
;
;功能:使‘*’字符变换颜色。
;
;默认参数:
;es = 0b800h
;
discolor:push bx
push cx
xor bx,bx
mov cx,2000
dicl2 :cmp byte ptr es:[bx],'*'
jnz dicl
in al,40h
mov es:[bx+1],al
and byte ptr es:[bx+1],0fh
;通过读取时钟控制端口,来实现随机变色
;若想整体变色,就需要把读取端口放到循环外
dicl :add bx,2
loop dicl2
pop cx
pop bx
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;上滚屏or清屏
;
;功能:上滚屏或清屏
;dx∈{0~24},当dx=0时,为清屏
;
;
;这个是我学习《汇编语言》第16章后
;自己写的算法
;自我感觉良好哈O(∩_∩)O~
;
;
;功能除了光标不重置
;其余都和 AH=06H/int 10h 一样。
;
;
rollp: push ds
push si
push di
push cx
mov si,0b800h
mov ds,si
mov si,160
xor di,di
mov cx,25
sub cx,dx
;计算复制行数
;
;总行数 - 需要上滚行数 = 需要保留行数(需要复制行数)
;
roll3: push cx
mov cx,160
rep movsb
pop cx
loop roll3
;复制
mov ax,80
mul dx
mov cx,ax
;计算清空的行数
;需要上滚行数*80 = 需要清除的字的次数
mov si,0f9eh
;指向最后一行最后一个字
roll4: mov word ptr [si],0720H
sub si,2
loop roll4
;覆盖 = 清除
pop cx
pop di
pop si
pop ds
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;计时器安装子程序
;
;截取1ch中断
;功能:设置参数到指定内存单元
;
;
int1cst :push ds
push si
push es
push di
push cx
push cs
pop ds
lea si,int1c
xor di,di
mov es,di
mov di,204h
mov cx,offset intend - offset int1c
cld
rep movsb
cli
push es:[1ch*4]
push es:[1ch*4+2]
pop es:[202h]
pop es:[200h]
mov word ptr es:[1ch*4],204h
mov word ptr es:[1ch*4+2],0
sti
pop cx
pop di
pop es
pop si
pop ds
ret
;安装程序
int1c :pushf
call dword ptr cs:[200h]
push ds
push si
mov si,DG
mov ds,si
lea si,sec
inc byte ptr [si]
;记录运行次数
;1CH中断会被系统在1秒内大约调用18次
;通过主程序检测次数来实现延时目的
pop si
pop ds
iret
intend :nop
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;计时器解除子程序
;
;功能:释放1CH中断
;
;
int1cov :push ds
push si
xor si,si
mov ds,si
mov si,200h
cli
push [si]
push [si+2]
pop ds:[1ch*4+2]
pop ds:[1ch*4]
sti
pop si
pop ds
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;close动画(内聚)
;
;si为1号列
;di为2号列
;
;原理:
;左列:每次送入字符,列增加一字符
; 每行输出完便指向下一行输出字符
;
;右列:每次输入字符,列减少一字符
; 每行输出完便指向下一行输出字符
;
;通过主程序设置di,si参数来进行列控制
;
;
;一下2个同系列子程序同理
;
close :push si
push di
push cx
mov ax,0b800h
mov es,ax
mov ax,0a3dh
mov es:[si],ax
mov es:[di],ax
inc al
mov es:[si+2],ax
sub al,2
mov es:[di-2],ax
;送入上 => and <=
add si,160
add di,160
mov cx,23
mov al,'|'
close1 :mov es:[si],ax
mov es:[di],ax
mov es:[si+2],ax
mov es:[di-2],ax
add si,160
add di,160
loop close1
;送入23行'||'
mov al,3dh
mov es:[si],ax
mov es:[di],ax
inc al
mov es:[si+2],ax
sub al,2
mov es:[di-2],ax
;送入下 => and <=
pop cx
pop di
pop si
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;close动画(外散)
;
;si为1号列
;di为2号列
;
dclose :push si
push di
push cx
mov ax,0b800h
mov es,ax
mov ax,0a3ch
mov es:[si],ax
add al,2
mov es:[di],ax
dec al
mov es:[si+2],ax
mov es:[di-2],ax
;送入上 <= and =>
add si,160
add di,160
mov cx,23
mov al,'|'
dclose1 :mov es:[si],ax
mov es:[di],ax
mov es:[si+2],ax
mov es:[di-2],ax
add si,160
add di,160
loop dclose1
;送入23行||
mov ax,0a3ch
mov es:[si],ax
add al,2
mov es:[di],ax
dec al
mov es:[si+2],ax
mov es:[di-2],ax
;送入下 <= and =>
pop cx
pop di
pop si
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;clear清除(配合左右滑动门)
;
;si为1号列
;di为2号列
;
clear :push cx
push si
push di
mov ax,0720h
mov cx,25
clear1 :mov es:[si],ax
mov es:[di],ax
mov es:[si+2],ax
mov es:[di-2],ax
;根据si,di清除列
add si,160
add di,160
loop clear1
pop di
pop si
pop cx
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;提问段显示
;
;参数:
;si = 问题偏移地址
;di = 显存偏移地址
pro_str :push di
mov cx,5
mov ah,0ah
pro1 :push cx
mov cx,32
pro2 :lodsb
stosw
push si
lea si,sec
and byte ptr [si],0
t00 :cmp byte ptr [si],2
jne t00
pop si
loop pro2
add di,96
pop cx
loop pro1
pop di
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;提问段清除
;与清屏同理
;
;参数:
;di = 显存偏移地址
pro_cle :push di
mov cx,5
mov ax,0720h
pro3 :push cx
mov cx,32
pro4 :mov es:[di],ax
add di,2
loop pro4
add di,96
pop cx
loop pro3
pop di
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;子程序:rose
;
;功能:生成rose.htm文件
;
rose :push dx
push ds
push es
push cx
mov dx,DG
mov ds,dx
mov es,dx
lea dx,rose1
xor cx,cx
mov ah,3ch
int 21h
;创建
jc rose_ret
mov bx,ax
mov cx,1338
lea dx,rose3
mov ah,40h
int 21h
;写文件
jc rose_ret
mov ah,3eh
int 21h
;关闭文件
rose_ret:pop cx
pop es
pop ds
pop dx
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;改变外层心字符颜色
;
;功能:无色与原色相互变换。
;
;参数:bp=坐标区偏移地址
;
flick1 :push bx
push cx
mov al,00H
mov cx,24
xor dl,1
jz reddd
flick1_1:mov di,ds:[bp]
mov es:[di+1],al
add bp,2
loop flick1_1
jmp short firet
reddd :mov al,0CH
jmp short flick1_1
firet :pop cx
pop bx
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;改变内层心字符颜色
;
;功能:无色与原色相互变换。
;
;参数:bx=坐标区偏移地址
;
flick2 :push bx
push cx
mov al,00H
mov cx,42
xor dh,1
jz redd
flick2_1:mov di,[bx]
mov es:[di+1],al
add bx,2
loop flick2_1
jmp short flret
redd :mov al,0CH
jmp short flick2_1
flret :pop cx
pop bx
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;按位写像素子程序(单图显示)
;
;参数:ds=DG bp=指定行数 bp+60=指定列数
; al=颜色
;
;返回参数:si=下一图的首字节 bp=下一图行数 bp=下一图列数
;
;
;功能:根据单色位图翻译工具生成的数据。来计算坐标并写像素。
;
tim :push cx
push dx
push ax
mov bx,ds:[bp]
mov ax,640
mul bx
add ax,word ptr ds:[bp+42]
adc dx,0 ;计算结果DX为页数,ax为偏移地址
mov di,ax
xor bx,bx
mov ax,4f05h
int 10h ;设置页数
add bp,2 ;指向下一图行列
pop ax
mov cx,25 ;行数
tim1 :push cx
mov cx,8 ;字节数
tim2 :push cx
mov cx,8 ;位数
mov ah,[si] ;取字节
tim3 :rcl ah,1
jnc zero ;检测每位
mov es:[bx+di],al ;当为1时,送入字节
zero :inc bx ;指向下一像素点
loop tim3
inc si ;指向下一字节
pop cx
loop tim2
xor bx,bx ;初始化辅助偏移
add di,640 ;指向下一行
pop cx
loop tim1
pop dx
pop cx
ret
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
CG ends
end start