技术__钱晓捷_第2版_课后习题答案

技术__钱晓捷_第2版_课后习题答案

ID:83478768

大小:4.48 MB

页数:46页

时间:2023-05-22

上传者:灯火阑珊2019
技术__钱晓捷_第2版_课后习题答案_第1页
技术__钱晓捷_第2版_课后习题答案_第2页
技术__钱晓捷_第2版_课后习题答案_第3页
技术__钱晓捷_第2版_课后习题答案_第4页
技术__钱晓捷_第2版_课后习题答案_第5页
技术__钱晓捷_第2版_课后习题答案_第6页
技术__钱晓捷_第2版_课后习题答案_第7页
技术__钱晓捷_第2版_课后习题答案_第8页
技术__钱晓捷_第2版_课后习题答案_第9页
技术__钱晓捷_第2版_课后习题答案_第10页
资源描述:

《技术__钱晓捷_第2版_课后习题答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

16/32ᳮஹᢈ᧽ᣩ2᱐⚪ᫀ(JJᦋ)1.1"#$%&'()*1.2"#,-.#/ᜧ12ஹ3ᜧ124ᡂᵯ789⌕;<&/4ᡂ=-.9⌕;<——?ᑴᘤBC.ᘤḄᜐᳮᘤ8᪶G&ᡠ᪀⌼KḄ-.LM஺PC#PC(PersonalComputer)]^☢ᔣabᓫdeᵨḄg஺ᓫᱏ#ᵨi?ᑴḄᜐᳮᘤjᱏ&ᑁ;◀CPU᜜o4ᡂ=-.Ḅᐸqr9⌕;<&᝞#ROMஹRAMஹxyᘤஹz{ஹ|{&ᨵḄjᱏo4ᡂ=A/DஹD/Aᣚᵯ7஺ᦪᜐᳮᘤDSP#9⌕☢ᔣᜧᦪḄyᜐᳮ&ᙠ9LMᐙᦪᜐᳮG&ᙠஹᵨ⚞ᑮᩭḄᵨ1.3"#9⌕ᨵ¡ᘤஹI/O£ᜓBI/OஹCPUஹLM¥¦ஹ§¨LMBᵨ©<ªᡂ&ᔜ;ᑖ®᝞¯#CPU#M°±B?ᑴLMḄᔜa;

1èᵨ?ᑴg&⌕é®þᢙᔜ᡾ஹ〉Ḅូ᛻ஹᙢ,⌕ᐸឋ⌕ஹᐸ!"⌕#ஹ$%&ᵨᐸḕᵯ஺1.6/:1.7/2I/O6⍝289CPU=>ᜓ@ᑴᘤCDᐸEḄFGHIJKᩭᵫCPUᜐᳮḄI/OPQDRSTCPURUᩖḄI/OPQW/ῃYᩭ஺ᵫ10᪷\]^_ᡂ(A9-A0)஺1.8/2BIOS2ijkᐭkYmn஺o⌕pq2ᵨᩭrs=tᳮu᝞wxஹyzᘤஹᡭᓺ}ஹ~xஹஹ6\ijḄkᐭkY>ᜓ1.9/:ijRAM:640KBᶇRAM2128KB᡽ROM2128KBijROM2128KB110/2(1)ஹᦪIᵨᩭ⊤Ḅᜧ#Dᒹ2ᦪஹᦪ஺(2)ஹṹIᵨᩭᢣᱥᡈᱥḄ᝱¢ឋDᒹ2£¤ᑴஹ¥¤ᑴஹᓝ¤ᑴஹᓝ§¤ᑴ஺¨2©ᵨᔠ«¬D®P16.

21.11/:(1)(174.66)=(10101110.10101)102(174.6610=(AE.A8)16(2)(100011101011.01011)=(2283.34375)210(100011101011.01011)=(8£¯58)162(3)(F18A6.6)=(11110001100010100110.0110)162(F18A6.6)=(98935O.375)16IO1.12/2Kṹ°ṹ⊡ṹ+3700100101/25H00100101/25H00100101/25H-3710100101/A5H11011010/DAH110110U/DBH1.13/:+37-371683281683280025H00000025HFF5BHFFFFFF5BH1.14/2²³]ᦪ270D⊡ṹᨵ³]ᦪ270DBCDṹ246DASCII:F1.15/21ஹµ¶·¸Y=ᜧ99,ᑣº=»¼10·½ᔣ¿8¤12ஹ¸Y_¤8DᑣºÀ8¶61.16/2®Áj16⚓஺1.17/:C34020001.18/:5050H

3ᓝ¤ᑴÄ5080£¤ᑴᓝ§¤ᑴ£¤ᑴᓝ§¤ᑴ00110010B32H01010000B50H1.19/:D24411d264HCR20DHLF20AH0230HSP220HNUL:00H1.20/2Ì᪗ṹ23650H}ᑁṹ2B6B0HÏ£Ð2.1ÑÒÓÔᓫᐗALUஹ×Øᘤ_=@ᑴᘤÙÚ^ᓫᐗBIU:tᳮ8088ÛmnÚ^ḄÜÝcpuÞ=᜜>¤àá᡻ᓫᐗEU:ÜÝᢣãäṹஹ᡻=ᦪåæÑÙ88cpuᙠᢣãäṹèéêëìᢣãíḄîᡂD8088W◤⌕äṹḄᢣãðñìᑮóᢣãôᑡD«◤⌕ëìᢣã஺SìᢣãFcpuᨬ÷⚣UḄíDùú8088Ḅû᪀=íý&⁚ḕóᜧëDÿ8cpu⁚ḕឋ஺2.288ᘤAHஹALஹBHஹBLஹCHஹCLஹDHஹDL816ᘤᘤAXஹᙬᘤBXஹᦪᘤCXஹᦪᘤDXஹᙢᙬᘤSIஹḄᙢᙬᘤDIஹᙬᢣ┐BPஹᚮ᪘ᢣ┐SP஺2.3᪗#ᵨ%&᧜ᢣ(᡻*+,ᡈὅ/ᑴᢣ(᡻*12஺3᝱᪗#ᵨ%56789*+,Ḅ3᝱:;

4ᙠᵨᡝ_7W7K[ᵨḄ“aᙢᙬbcᙢᙬ”Ḅ12RAefᙢᙬ஺gefᙢᙬKḄaᙢᙬhc4ibcᙢᙬjkᑮᱥᳮᙢᙬ஺1MBᨬnᑖᡂ65536efa஺2.6qṹas78Ḅᢣ(8ᑡ<ᚮ᪘auvᚮ᪘ᡠᙠḄxMy<ᦪasz{9*78Ḅᦪ<▬a▬ᦪaᵨ%ᦪ}஺~᜜@ᢣ(gᐸ@AḄ@ᦪḄsy஺2.78088ḄMᑖaᳮ78[ᵨefᙢᙬ஺ᵫ%aᙢᙬᙠḄᡈᢣvḄaᘤKᡠ◤⌕bcᙢᙬRAᨵᦔᙢᙬEA.@ᦪᙠxKᨵᙬ2ᙬஹᘤᙬஹᘤᙬஹᙬᙬᙬஹᙬᙬᙬ஺2.8(1)ᓽᦪᙬax:1200H(2)ᘤᙬax:0100H(3)Mᘤᙬax:4C2AH(4)ᘤᙬax:3412H(5)ᘤᙬax:4C2AH(6)ᙬᙬᙬax:7856H(7)ᙬᙬᙬax:65B7H2.9(1)exAᘤdlA⁚ᘤᓛ஺(2)movᢣ(ḄḄ@ᦪᘤᡈὅxᓫᐗipᢣ┐஺(3)ᐕ¢ᓽᦪᑮaᘤḄ£〈஺(4)ᐕ¢aᘤ¥Ḅ£〈஺(5)ᦪ¦H஺(6)spᵨ%ᘤᙬ஺(7)§2஺¨A:movax,[bx+di](8)movᢣ(Ḅ@ᦪᓽᦪ஺2.10(1)bxkᑮtableḄbcᙢᙬbx=200H.(2)gᓽᦪ8〈ᑮal஺(3)ᣚṹal=12H.2.11(1)al=89H(2)al=12H,cf=l,zf=0,sf=0,of=l,pf=l(3)al=0AFH,cf=0,zf=0,sf=l,of=0,pf=l

5(4)al=OAFH,cf=lzf=0sf=lof=l,pf=l///(5)al=0cf=0zf=l,sf=0of=0pf=l////(6)al=0FFHcf=0,zf=0sf=l,of=0,pf=l//(7)al=0cf=0zf=lsf=0of=0pf=l/////2.12(1)adddx,bx(2)addal,[bx+si](3)addwordptr[bx+0B2H],cx(4)addwordptr[0520H]3412H(5)addal^AOH2.139?¬2(V—Z—X*y+540)/X஺ᖪMᙠax,¯ᦪMᙠdx஺2.14(1)ax=1470H(2)ax=1470Hcf=0of=0sf=0,zf=0,pf=0///(3)ax=1470H,cf=0of=0,sf=0,zf=0pf=0//(4)ax=0,cf=0of=0,sf=0zf=lpf=l///(5)ax=0FFFFHcf=0of=0sf=0zf=l,pf=l////(6)ax=0FFFFH,cf=0of=0sf=lzf=0,pf=l///2.15ᙬ2ஹᙬ2ஹᙬ2஺2.16(1)1256H(2)3280H2.17(1)ax=lElEH(2)alḄDOஹD7ᐰA0(3)cx<64H2.18᡻*65536±஺2.19²gᦪ³KLᐗ´+,M%total஺2.20(1)leasi,stringMovdhjsi]Movdl,[si+5](2)movaxwordptrbufferl

6Subaxwordptrbuffer2Movdxwordptrbufferl+2Sbbdxwordptrbuffer2+2(3)testdx,OFOOOHjzeveneven:movax,0(4)movex,4again:sardx,lrcrax,lloopagain(5)movex,100movsi,0again:moval,OFFHaddal,array[si]movarray[si],alincsiloopagain2.21HtoascprocMovbl,alMoval,ahMovbh,10MuibhAndaxQOFFHAddal,blHtoend:retHtoascendp2.22?µ¶·ᑭᵨK¹Aᵨᡝº»¼ᜓ¾¿78஺ᙠIBM-PC¶ᑡÀµKÁÂᐭÂH¶·ROM-BIOSÄDOSźÆÇḄK¹ÈÉ78RA¶·²Êᵨ஺ÊᵨËÌ(1)AHKͶ·²ÊᵨD(2)ᙠᢣvᘤKÍᐭÎÏᦪ(3)ÐᵨK¹Êᵨᢣ(᡻*²Êᵨ(4)᪷HÎÏᦪᑖ᪆ÊᵨÓÔ2.23HtoascprocAndal.OFHAddal,90H

7DaaAdcal,40HDaaMovah,02HMovdl,alInt21HRetHtoascendp2.24NumoutprocXorah,ahAamAddax3030HMovdl,ahMovah,02HInt21HMovdl,alMovah,02HInt31HRetNumoutendp2.25Msgkeydb^inputnumberMsgwrgdb"eiror஻,"$"Movah,09HMovdx,offsetmsgkeyInt21HAgain:movah,01HInt21HCmpal,30HJbdispCmpal,39HJadispMovdl,alMovah,02HInt21HJmpdoneDisp:movdx,offsetmsgwrg

8Movah,09HInt21HJmpagainDone:movah,4cHInt21HÕ3×3.1ÚÛ_ÜÝQᜐᳮᘤᢣ(¶·AẠḄßà78ÜÝá[ᵨâ5C⊤äᢣ(@ṹ[ᵨ᪗åCD⊤æᢣ(@ᦪçஹᨵᦔᙢ/ᑴ?µ»¼èéê᧕ìíqṹ8ᑡîïஹ9*ðñḄç᡻*783.2Úó1ôõ᦮ḄÛ_ÜÝ78ᵫa³ᡂó2ôQÛ_ÜÝ78çᒹøùúqṹaஹᦪaஹ▬aᡈᚮ᪘aaûa¥Ḅü8çýþ᣸ᑡ3◤Ḅᒹṹᢣ᡻Ḅᨵ4ᡠᨵḄ!᡻ឋ#$%&'ṹᑁ)*ឋ#$!᪷,◤⌕%&.ᑁ5012◤⌕ᚮ᪘3.3789:;<ᱯTINYCOMEFᨵG&64KBḄKLMASM6.xPᢝSMALLGSᵨᨵṹUᦪ,ᚮ᪘WXᜧ&64KBCOMPACTṹ[ஹᦪ,]Ḅᨵṹ^ᨵ]ᦪ,MEDIUMṹ]ஹᦪ,[Ḅ!ᨵ]ṹᨵᦪ,LARGEᜧSᵨ!ᨵ]ṹU]ᦪ,☟᝱ᦪ,G&64KBHUGEgᜧSᵨ!ᨵ]ṹU]ᦪ,h☟᝱ᦪ,iᨵ▲ᑴFLAT32%Sᵨᙠ32%80x86CPUUWindows9xᡈNTz᛻

93.478|%}8ᵨ᪗ᢣ*DOS8ᑭᵨDOSᵨḄ4CHᩭ8᡻ᑮᩩENDᢣ3.578%ஹᔠUEF஺3.678stacksegmentstackdb1024(0)stackendsdatasegmentstringdbJHello,Assembly!OdH,OaH,'$'dataendscodesegment'code'assumecs:code,ds:data,ss:stackstart:movdx,offsetstringmovah,9int21hcodeendsendstart3.778(1).EXE!±ᨵ]ṹU]ᦪ,²³!±´µ64KB01¶ᡂEXE¸᪀Ḅ!᡻(2).COMᨵKL²³X´µ64KB◤⌕º»ᩩ¼½¶ᡂCOM¸᪀Ḅ!᡻(MASM6.x◤⌕¾ᵨTINY;<)3.878¿Àᢣᨵ“ÂÃEQU”U“Â=”8¿ÇEQUᦪÈ⊤Ê<¿ÇEQUீÌ¿ÍοÇ=ᦪÈ⊤Ê

10(4)al=41h(4)ax=7654h3.107:10h00hOfbhOffh????993.1178.datamylbdbJPersonalComputer'my2bdb20my3bdb14hmy4bdb00010100bmy5wdw20dup(?)my6c=100my7c=PersonalComputerà3.1278ᑭᵨ%ᢣáᑴ᝞org,even,align3.1378ᒹâKLᙢᙬUEFåæçឋ஺3.1478;ᦪ,orglOOhvarwdw1234h,5678hvarbdb3,4varddd12345678hbuffdd10dup(?)messdb'Hello';ṹmovax,offsetvarb+offsetmessmovax,typebuff+typemess+typevardmovax,sizeofvarw+sizeofbuff+sizeofmessmovax,lengthofvarw+lengthofvard3.1578(1)1000´µÌ⁚ᡠ⊤ÊḄᨬᜧ᦮ᦪ(2)SISíᏔᦪ

113åᑁ9ᓫᐗXñòó4Sᦋí[al+1]5ᩩ¼÷øᢣù☢Sò᪗ûXÛüý3.1678movah,1;ᐕÒþᐭᑏint21hsubal,20h;ᣚᜧᑏmovdl,almovah,2int21h;3.17movbx,offsetLEDtablemoval,lednumxlat3.18movax,bufXcmpax,bufYjaedonemovax,bufYdone:movbufZ,ax3.19.modelsmall.stack.databufXdw-7signXdb?.code.startupcmpbufX,0;testbufX,80hjlnext;jnznextmovsignX,0jmpdonenext:movsignX,-1done:.exit0end3.207:movdl,'2'movax,bufXcmpax,bufY

12jenextldecdlnext1:cmpax,bufZjenext2decdlnext2:movah,2int21h3.21;8ṹ:moval,numbermovbx,0;BX-=>1Ḅ@ᦪrestart:cmpal,0;AL=OEFjzdoneagain:shral,1;ᨬH@IJKᐭCFjcnext1,Jincbx;OLPQjmpagainnext:pushaxpushbxshlbx,1;@ᦪRS2TUJᙢᙬ⌕ᵨ2Z⁚ᓫᐗ^jmpaddrs[bx];abJIP<ߟ[table+BX];ShiᔜZᜐᳮmn:funO:movdl,'O'jmpdispfunl:movdl,'rjmpdispfun2:movdl,'2'jmpdispfun3:movdl,*3'jmpdispfun4:movdl,’4'jmpdispfun5:movdl,'5'jmpdispfun6:movdl,’6'jmpdispfun7:movdl,*Tjmpdispdisp:movah,2;uZvint21hpopbxpopax

13jmprestartdone:3.22wᑴmnyᡂ12Hஹ45Hஹ0F3Hஹ6AIK20HஹOFEHஹ90Hஹ0C8Hஹ57H~34H10Z⁚ᦪ~Eᐭ⁚SUMTOὃ⇋~K@^஺;wjxt322.asm.modelsmall.stack.databdatadb12h,45h,Of3h,6ah,20h,Ofeh,90h,0c8h,57h,34h;ᦪnumequ10ᦪZᦪsumdb?⚜ᶇEᓫᐗ.code•startupxorsi,si@Jxoral,aluZᦪmovex,numᦪagain:addal,bdata[si];incsiᢣᔣhuZᦪloopagain᝞¢yPQmovsum,aly£E.exit0end3.23¤¥0040h0¦ḄuZ64KBᱥᳮ:ᐳᨵª«Z¬®;wjxt323.asm.modelsmall,codestart:movax,0040h〈:ᙢᙬmovds,axmovsi,0UJᙢᙬmovex,si°ᦪT±²ᦪ^xorax,ax¬°ᦪᘤagain:empbyteptr[si],20h;µ¬ḄASCHṹ¶·jnenextOi¬incaxi¬¬ᦪ1next:incsi¸ᦋᙢᙬᢣ┐loopagainCX=CX—1,᝞cx=0⌨±².exit0endstart3.24wᑏ°½100Z16@¾᦮ᦪ~Ḅmn஺᝞~OÀÁ16@ḄÃT65535^,ᑣÅᐸ~ᑮwordsum,᝞ÀÁᑣ'overflow'஺È

14;ᦪ:countequ100parraydwcountdup(?);ᎷÌᨵ100Zᦪwordsumdw0msgdb'overflow',$:8ṹ:movex,countmovax,0movbx,offsetparrayagain:addax,[bx]jncnextmovdx,offsetmsgmovah,9int21h;ÎÏjmpdone;ᯠÑÒ±²Ónext:addbx,2loopagainmovwordsum,axdone:…3.25wmÕuZ16@Öv×ØKᑴᦪᣚᡂᵨ8421BCDṹ⊤Ḅ5@ᓝKᑴᦪ஺ᣚ½ÛÜSiᵨØKᑴᦪ◀S10000,ᖪ“à@”,âᵨãᦪ◀S1000,äᑮ''ᓟ@";çᵨãᦪ◀S100ஹ10~1,äᑮ“è@”ஹ“ᓝ@”~“Z@”஺;wjxt325.asm.modelsmall.stack256.dataarraydw?éᦪdbeddb5dup(?)ê@bedEëìëHìH.code.startupmovdx,arrayéᦪTãᦪ^movbx,10000◀ᦪmovex,10◀ᦪíᦪmovsi,4îḄᦪë@@Jagain:movax,dxdx.axïð◀ᦪmovdx,0divbx◀ñbx,ᖪax,ãᦪdxmovdbcd[si],alᖪò10,Epushdxᨚãᦪmovax,bx◀ᦪ◀ñ10movdx,0divexdx.ax◀ñex,ᖪaxஹãᦪ஺ᙠdxmovbx,axbxi◀ᦪ

15popdxdecsi;îḄᦪ@Jõ1jnzagainmovdbcd,dl;Z@ᦪ(<10).exit0end3.26(1)öw÷øùmn⌕ᵨuìÁmúᢣûPROC~ENDPþÿ᝞:PROC[NEARiFAR]……;ENDP(2)ᵨᑮḄ!"ᘤᑁ%&'()*+,-./0Ḅឮ2஺(3)ᦋ┯7crazyprocpishbxpushexxorax,axxordx,dxagain:adda,[bx]adcdx,0incbxincbxloopagainpopexpopbx3.27MNO◤QᵨHTOASC()U7again:movah,1int21hcmpal,Ibh[ESCḄASCIIṹ]Ibhjedonemovdl,almovah,2int21h[]ᜧᑏabᑣdᣚfgᑏabjmpagaindone:3.28Miasctot)procpushexanddh,Ofh.ᐜdlᓝnᦪshldh,1■ᓝnᦪq&10(rᵨsnᢣu)movch,dh

16shldh,1shldh,1adddh,chanddl,Ofh;dᣚvnᦪadddh,dl;ᓝnᦪwvnᦪmoval,dh;xyz{|ᦪpopexretasctobendp3.29M7DIPASCproc;ᐭ{|ᦪ7AL=⌕Ḅv16-ᑴᦪpushexpushdxpushaxmovcl,4;dᣚnshral,clcallHTOASCmovdl,al;movah,2int21hpopax:dᣚncallHTOASCmovdl,al;movah,2int21hmovdl,*H';vab“H”movah,2int21hpopdxpopexretDIPASCendpHTOASCproc[AL4n⊤Ḅn16-ᑴᦪdᣚfASCIIṹandal,Ofhempal,9jbehtoascladdal,37h;]OAH0FH,w37HdᣚfASCIIṹret[()*+htoascl:addal,30h[]09,w3011dᣚfASCIIṹret[()*+HTOASCendp3.30M:

17lucaseprocpushbxmovbx,offsetstringempal,0jecaseOempal,1jzeaselempal,2jzcase2jmpdonecaseO:empbyteptr[bx],0jedoneempbyteptr[bx],'A'jbnextOempbyteptr[bx],'Z'janextOaddbyteptr[bx],20hnextO:incbxjmpcaseOeasel:empbyteptr[bx],0jedoneempbyteptr[bx],'jbnextlempbyteptr[bx],'z'janextlsubbyteptr[bx],20hnextl:incbxjmpeaselcase2:empbyteptr[bx],0jedoneempbyteptr[bx],'A'jbnext2empbyteptr[bx],'Vjanext20addbyteptr[bx],20hjmpnext2next20:empbyteptr[bx],'a'jbnext2empbyteptr[bx],'z'janext2subbyteptr[bx],20hnext2:incbxjmpcase2done:popbx

18retlucaseendp3.31M7(1)ᵨ!"ᘤ⌴|ᦪ7ᨬᓫᵨḄ|ᦪ⌴]!"ᘤ⌕|ᦪ"Ḅ!"ᘤ¡¢£&7ᵫᵨ!"ᘤvᦪᨵ▲§¨©ª«ᦪ¬£&®⌴ᦪ¯°©ᜧ«ᦪ¬±⌴ᙢᙬrᵨ!"ᘤ⌴|ᦪ´µ¶ᨵz{|ᦪḄ!"ᘤO±ឮ2¶ᨵᐭ{|ᦪḄ!"ᘤ£&ஹ¸£&O¹ᨬº±»ᢝ½(2)ᵨᐳ¿À«⌴|ᦪ()Á)ÂᵨÃvÀ«"Äᦪ¬¢]ᑭᵨᐳ¿À«(ᐰÇÀ«)-.|ᦪ⌴᝞ÈÀ«ÉÂᵨOᙠÃvË)¡◤⌕ᑭᵨPUBLICஹEXTRENÏÐ᝞ÈÁ)Ñ⌕ᑭᵨÒᩭḄÀ«¯ᑣ◤⌕ឮ2ᑭᵨᐳ¿À«⌴|ᦪ()ḄᵨឋÕÖ¹ᱯØ〉ᔠᙠÛv)ÜÝஹÞᐸᙠOÃḄ)àᙽÝ⌴ᦪ¬(3)ᵨᚮ᪘⌴|ᦪ|ᦪ⌴Ñ£&ᚮ᪘§vä,"åæ஺Á)ᐭ{|ᦪçᐭᚮ᪘()èᚮ᪘¡Äz|ᦪ[()z{|ᦪçᐭᚮ᪘Á)ézᚮ᪘Äêëìrᵨᚮ᪘⌴|ᦪ]ᓄḄë]îï)ᜐᳮ|ᦪ⌴ஹ&òóîôõö÷ôõøᔠî,Ḅù3.32M77Á)ᐭ{|ᦪçᐭᚮ᪘()èᚮ᪘¡Äz|ᦪ[()z{|ᦪçᐭᚮ᪘Á)ézᚮ᪘Äêëì´µ7ç᪘öé᪘úû⌕©0஺3.33M717neg32proc[ᐭ{|ᦪ7DX.AX=32nᨵüýᦪnegax;þÿ0—DX.AXnegdxsbbdx,0ᩩᢣᵨdecdxretneg32endp"#$ᦪ&DX.AX=32(ᨵ*+ᦪḄ⊡ṹ/02&neg32proc;ᐭ#$ᦪ&DX.AX=32(ᨵ*+ᦪnotax56DX.AX7891notdxaddax,1adcdx,0ret

19neg32endp;"#$ᦪ&DX.AX=32(ᨵ*+ᦪḄ⊡ṹ3.34<&ᦪ=>arraydb12h,25h,OfOh,0a3h,3,68h,71h,Ocah,Offh,90h;ᦪJcountequ$-array;ᦪJᐗOPᦪresultdb?;᪥STṹ>movbx,offsetarray;BXXᦪJḄYZᙢᙬmovex,countCXXᦪJḄᐗOPᦪcallchecksum;_ᵨ7T`amovresult,al;ᜐᳮ"#$ᦪmovax,4c00hint21hefg⁚᪥STḄiᵨ`a;ᐭ#$ᦪ&DS:BX=ᦪJḄ>ᙢᙬ:YZᙢᙬlCX=ᐗOPᦪ;"#$ᦪ:AL=᪥ST;no&◀AX/BX/CX᜜lstuᐸwxyᘤchecksumprocxoral,al;{9ᘤ|0sum:addal,[bx]7TincbxᢣᔣXPg⁚loopsumretchecksumendpend3.35<&(1).modelsmall,stack.datawdatadw34abh.code.startupmovax,wdatacalldispa.exit0dispaprocpushexpushdxmovcl,4movdl,ah

20shrdl,clcalldldispmovdl,ahanddl,Ofhcalldldispmovdl,alshrdl,clcalldldispmovdl,alanddl,Ofhcalldldisppopdxpopexretdispaendpdldispprocpushaxordl,30hempdl,39hjbedldispladddl,7dldispl:movah,2int21hpopaxretdldispendpend(2).modelsmall,stack.datawdatadw34abhwordtempdw?.code•startupmovax,wdatamovwordtemp,axcalldispa.exit0»dispaprocpushexpushdx

21movcl,4movdl,byteptrwordtemp+1shrdl,clcalldldispmovdl,byteptrwordtemp+1anddl,Ofhcalldldispmovdl,byteptrwordtempshrdl,clcalldldispmovdl,byteptrwordtempanddl,Ofhcalldldisppopdxpopexretdispaendpdldispprocpushaxordl,30hempdl,39hjbedldispladddl,7dldispl:movah,2int21hpopaxretdldispendpend(3).modelsmall.stackdatawdatadw34abh.code.startuppushwdatacalldispapopax;addsp,2.exit0»dispaprocpushbp

22movbp,sppushaxpushexpushdxmovax,[bp+4]movcl,4movdl,ahshrdl,clcalldldispmovdl,ahanddl,Ofhcalldldispmovdl,alshrdl,clcalldldispmovdl,alanddl,Ofhcalldldisppopdxpopexpopaxpopbpretdispaendpdldispprocpushaxordl,30hempdl,39hjbedldispladddl,7dldispl:movah,2int21hpopaxretdldispendpend3.36<&᝞ᑭᵨᐳ⌴ᦪlTᵨsᙠXPal◤⌕ᑭᵨPUBLIC.EXTERN£o஺3.37<&(1)¥ᵫX§¥¨©ªᢣMACROTENDMᩭᡂl¯°᝞&¥±MACRO²³$⊤µ

23……¥·ENDM¥¸¹ºᵨ»lᓽ¥_ᵨ&¥±[5$⊤](2)¥_ᵨḄ¯°½ᢣX᪵&ᙠᵨ¥ᢣḄ(¿ᑏ¥±l¹Á5·$ᦪ;᝞ᨵÂP$ᦪlÃᢥ³$ÅÆᐭ5$lᵨ⌹+ᑖ◞(3)¥ÊË&ᙠ¨©Ìl¥ᢣͨ©aᵨ§ÃḄṹᑡlºÏ¥ÊË¥ÊËḄᐹ·`aÏ&Ѩ©aÒÓa⍗ᑮÖᨵḄ¥_ᵨÌlᓽᵨ×ÃḄ¥·ᐰaḄ¥ᢣlÌᵨ(¿ᓛÚḄ5$§³$ÛÜÝ3.38<:¥_ᵨḄ$ᦪi`³$ஹ5$ßᔠ56⌴láᣩãäஹᮣæÂ஺¥¨©ḄXᜧᱯ⁐Ï»Ḅ$ᦪ஺¥Ìêë$ᦪlᨵXPᡈÂP$ᦪ¥_ᵨÌ5$Ḅ³°íîᮣælÏîᦪஹஹyïᓫᐗஹᢣ(ñòṹ)ᡈ»óḄXôᑖlÏ⊤õ°ö⌕¥Ê˹*ᔠ¨©÷øḄ÷0ùᑣᓽ஺3.39<&¥&ûÏaüḄáᓄ&¥_ᵨᙠ¨©ÌÛÜa÷þḄÊËls◤⌕ÿ᪗᡻ᨵᦋஹᔠᦪ⌴ᣩ!ஹᮣ#$%&'(᪗)Ḅᓄ&%,ᵨᙠ᡻/ᵫCALLᢣ56ᔣஹRETᢣ5;

243.42º:utolmacrolocalnextempal,'A'½“A”6ᣚjbnextempal,'V;ᜧ½“A”6ᣚjanextaddal,20h(ᜧᑏÃᑣ6ᣚoᑏÃnext:endm3.43wxTmovestrstrn,dstr,sstr,ÅstrnxÆÇwxÆÈsstr〈ᑮÉwxÆÈdstrº&ÊᎷÌÍÎᙠᦪ_kÏmovestrmacrostrn,dstr,sstrmovex,dsmoves,exmovex,strnmovdi,offsetdstrmovsi,offsetsstreldrepmovsbÑÒ〈ES:[DI]-DS:[SI]endmÖ×Ø4.120A—A;65536;A—Ag;᡽Ú19aa4.4ÛÜᕜÞß8088ᙠÖàx/áᕜÞḄâãäåREADYæçèéᦔ⊤ëìíaḄÌᜓUCPUïðCPUñᐭQóᕜÞ஺4.5ᨬõ᝱÷ᵨ½ø÷ùúMN/MX*ûüᵯþᑖᵨADT-AD.,A/S-A/S,MN/MX*ᵯ8088᪀ᡂᨬᜧ᝱ᵨᜧᵨ஺lt)6i634.6᝱⌕┐!"#$%᝱&ᵯஹᵯ(&)஺!"&)*ᕡḼ-ᱏ/0Ḅ2ᑴ஺4᪵6ᡠ8Ḅ9ᜓ;<=>?@8ABḄ2ᑴᩗ஺4.7

25RESETEFG&ᵯᨵᦔCPUJᑮLM%᝱஺HOLDNBFG&ᵯᨵᦔᐸPNB29ᜓᔣCPUᵭFᓰᵨNB஺NMIT

26ᙢᙬBAoòAo4᪷ᦪdBI/O,òI/O,ᱏ⌱CS*_ᑏWE*5.4©:ᎷḄRAMᨵ12᪷ᙢᙬஹ4᪷ᦪᱏ⌱CS*ᡈCE*ᨵᦔᱏ!"ᑏ$%&'()*+ᙢᙬḄ,ṹᩭ⌱/ᔜ123ᱏ450E*7ᑴ"$%஺ᨵᦔᱏᑁᦪ457ᑴ;()Ḅ"7ᑴMEMR*(MRDC*)ᑏWE*7ᑴᑏ$%஺ᨵᦔᦪᐭᱏ/7ᑴ;()Ḅᑏ7ᑴMEMW*(MWTC*)5.5E:+ᱏG᪀I123ᓫᐗᐹᨵM1NMḄᙢᙬ231+஺(4116)QᱏG᪀I123ᓫᐗᐹᨵM1NMḄᙢᙬ23R+஺(2114)5.6E:SᡂᓫᐗUVWᡂV;ᵨSRAMYZᘤ\]^_`()DRAM᩽bᵯ_᠒*ᜧ_`()NVRAMhijᵯk᠒]^_`l᧕ᜫopROMrsᑴ%ᙠᱏ/uvᦋPROMᐕzM{|}~uvᦋEPROMᵨ᜜ᐝ◀◀|}ᐕzᵨᡝR{◀|}EEPROM(E2PROM)ᵨᵯᙠ!◀|}R{ᑏFlashMemory(2)\UᑏḄEEPROM,ᢥᙽ(Block)◀5.7E+᡽ᐙ——23ᘤᱏᦪ+ᦪ^§¨©ᦪᦪᑭᵨR123ᘤᱏᙠᦪ“+”ᔣḄ᡽ᐙᙢᙬ᡽ᐙ(Q᡽ᐙ)——®M123ᘤᱏu¯°()23_`ᑭᵨR123ᘤᱏᙠ“ᙢᙬ”ᔣḄ᡽ᐙSᡂ32KB23³bᵨSRAM2114(1KX4)◤⌕641ᱏSᡂ32KB23³bᵨDRAM4116(16KX1)◤⌕161ᱏ·¸¹◤⌕!+᡽ᐙᙢᙬ᡽ᐙ

275.8Eᱏ⌱rº»¼23ᘤᱏ½ᔲ¿⌱/ÀÁÂ%ÃÄ·ÅÆÇᙢÈÉR123ᘤᱏSᡂᜧ_`Ḅ23³b23ᘤᱏ⌱rº&ÁÊCPUᙢᙬËḄ*+ᙢᙬÌᐵὶᵨ“ᐰ,ṹ”ஹ“Ðᑖ,ṹ”ஹ“⌱,ṹ”Òᵨᐰ,ṹÒÓÔᙢᙬÕÖᵨÐᑖᡈ⌱,ṹ⁚ḕ,ṹÙÚ5.9E:24=165.10E■LJ-ᱏM1ᵨᙢᙬÕÛᙢᙬÜÝÞ20003FFFH4200043FFFHY1*8200083FFFH6264C2000-C3FFFH5.11E:A19A]6A15A”A1?A஺ᙢᙬ10100000ᐰ0ᐰ14OOOOH-41FFFH20100001ᐰ0ᐰ142000H-43EEFH

28而R3_⚪511IEI2YllElcY21BnlA1381D?D0A|2~A஺MEMWMEMR5.12E:5.13E:A19~A16Au,AwA]2~AOᙢᙬ11111100ᐰ஺ᐰ1F8000H,F9FFFH21111101ᐰ0ᐰ1FAOOOH,FBFFFH3mi110ᐰ0ᐰ1FCOOOH,FDFFFH41111111ᐰ஺ᐰ1FEOOOH-FFFFFH⚪5.13CECECECE2761(1)2764(2)2761(3)2761(1)D-,-0oOEOEOEOEA12~AOHEMK5.14Eß᝱á©2â23ᘤ(DRAM)Ḅ23ᓫᐗᵯãß᝱23ᓫᐗ½ᵫMOSåḄ᪕᩽ᵯ_Cç7åSᡂḄ஺ᦪᵯ₹ḄéÒ23ᙠ᪕᩽ᵯ_êᵯ_êḄᵯë*⊤í23ᦪ1;ᵯ_ïᨵ32ᵯ₹ᵯëð0,⊤¼23ᦪ0஺ñ2ᙠòᵯóᵯ_23Ḅrsuôõöᢝð■ùrsúᜫûüýþᙢÿᵯ⊡ᐙᵯ₹“ᑵ”ᵫ⌕ᙢᑵᡠ᝱஺ᵨ“"#ᙢᙬᨵᦔ”ᑵ'ᑵᕜ)15Mᑵ-ᦪ128

295.152:4256KBA19-A1645.16245Ḅ78ឋ:ᳮᙠ=>?@ḄABB◞ᑁᵫEFGHḄᙢᙬIIJKᙠᘤMNᙢᙬOBḄPQSᑁ஺ᢣUᙢᙬḄᑖWXᩭZ[\]Ḅ^_`abEFcdeEFc⌕fg᡻#i-஺jklmᙢᙬḄ45ZnᯠᙢᐹᨵAB`JKᑖWḄqᔣ஺ᦪsᑖWḄJKqᔣ᝞ᢣUuvwlᦪxḄd45yzᓫᐗḄ⌱~ᘤᙢᙬlJK஺l78SḄᘤᙢᙬ⚣45lkS᜜Ḅᙢᙬᑣ45ḄZEF45Ḅ78ឋ஺cacheḄᵨ:lᘤḄ45஺ᐸ᪗[᡽ᜧEFᕒKḄ஺6.1I/O,2,¡¢ᙬdDXB¡¢ᙬ஺6.21ᦪs£ᘤ¤ᐭA¦§᜜¨©ICPUḄᦪs¤ªA¦«§CPU©I᜜¨Ḅᦪs஺2¬᝱£ᘤ¦¬᝱ᦪs஺CPU®¯°¡±ᵯ²ᡈ᜜¨Ḅ¬᝱஺3´ᑴ£ᘤ¦´ᑴᦪs஺CPUᔣᐸᑏᐭ·U⌱~¡±ᵯ²z¸´ᑴ᜜¨஺6.4Taskmovdx,8000HInabdxNotalCmpaL1JzstatuslCmpal,2Jzstatus2Moval0zOutdx,alJmpdoneStatusl:rolal,lOutdx,alCalldelayJmpstatuslStatus2:roral,l

30Outdx,alCalldelayJmpstatus2Done:.....6.5CodeStart:movax,2000HMovds,axMovbx,2000HMovdx,0FFE2HMovex,100Next:inal,dxTestal,lJznextSubdx,2Inal,dxMov[bx],alIncbxAdddx,2Loopnext6.6CodeStart:movdx,80HLeabx,ADDRNext:inal,dxTestal,80HJnznextCmp[bx],$JzdoneMovaljbx]Outdx,alIncbxJmpnextDone:.....6.8ᢣḄḄᡈ஺᣸Ḅᐜ:(1)!"#ᔣCPUᵭ&'◤⌕*+ᐜ,-."஺(2)/"0ᨵ23'ᔲᐕ67Ḅᡭ9஺

316.9Interruptmovdx,8000HInal,dxCmpal,lJnznextlCallprodJmpdoneNextl:cmpal,2Jnznext2Callproc2JmpdoneNext2:cmpal,3JnzdoneCallproc3Done:.....6.10¡ᘤ®DMA¹ºHOLD,HLDA,»DMA஺¼7.12½¾ᢣᵫi>¿ÀᜐᳮᓫᐗᡠᐳÃḄ¿ÀÄ⍝஺ᵨᱯÇ(1)ᙠÈÉAÊËÌᵫ=>¨ᜓ´ᑴ½¾ᐸΨᜓkA§¨ᜓªফᙠÈ=AÊËÌᨵ=>¨ᜓᔣ½¾`©〈ᦪswᨵi>¨ᜓ§½¾`¡ᦈᦪs7.2ᙠᔜÓÔ½¾K᪷s½¾\¡lḄÖ×ØÙᑖÚÛÜØÙ[ᱏᑁ½¾ஹßᱏ½¾ஹàá½¾ஹ¨ᜓ½¾dâ.\½¾஺ä᝞ISA½¾åàá½¾,USB½¾å¨ᜓ½¾,12c½¾åᙠᵫ½¾஺½¾K◀ᵯèdᙢ¾᜜Ḅ¿é¾êᢥ줿ÀḄÖᑖÚ3Üᓽᦪs½¾ஹᙢᙬ½¾ஹîᑴ½¾஺7.32ᑖAgᵨZ[=>ïðᙠÖḄAÊᐹᨵñ>òi>ᵨ½¾gᵨḄḄ[óôl᜜ïð>ᦪᙠ45ᘤᡈ᜜¨Ḅ½¾ᕜ)Kmïðᙠ=>Aõᕜ)¤ªᘤᡈI/Oö±Ḅ÷8øᙢᙬA7~A0,ᐸÎABᵨì〈8øᦪs1)7~DO7.42ù#½¾iúᦪsÄûi᪷¿é¾ÖAü#ì⌴஺

32ù#Öþì¤ஹù#ÿP174஺7.5P174.7.6Ḅឋᢣ᪗ᒹஹ᪗ஹ/ஹᵨஹᦪஹᑴ!"#$ᢣᦪ%Ḅ᪷ᦪ'ᵨbit()*⊤,'᝞8)ஹ16)ஹ32)ஹ64)஺7.9DO.D78)/ᔣᦪ%A0-A1920)1ᙢᙬALEᙢᙬ┝5ᐕ7'89CPUᕜ;ᨵᦔI0R*I/O>'1I0W*I/Oᑏ'110CHRDYI/O@⍝ᜓC'ᐭEFG8.1(-*ᑁJKL஺ᵫ8088ᑁJ᡻OPQ1RSTU஺(1*◀W┯KL(2*ᢣYKL(3Z1KL(4*ᓫKL(\*᜜JKL஺ᵫ8088᜜J^1KL_`TU஺(1*abcdKL஺᜜J@eNMIᔣCPU^1KL_`'CPU᡻OfghᢣYijklm஺2bcdKL஺᜜J@eINTRᔣCPUn1_`஺gIF=1'CPUᙠghᢣYpqjklm஺bcdKLᔣrᵫ᜜J^s'ᜐᳮᘤwxKLlmᕜ;Ḅ>yz9{⁚ḄKLᔣrᦪ%'ᐸ~ḄKLᔣrᒹᙠᢣYKᡈὅ⚜஺8.2KLᔣr⊤$z⊤ᦪ%p᪀஺$KLᔣrmKLPQḄ⊤஺8.4IRRKL_`5ᘤ஺5᜜KL_`஺IsRKL5ᘤ஺5ᙠḄKL᝱஺IMRKLcd5ᘤ஺5KLḄcd᝱஺8.6IR3ᨵKL_`'IR3ᙠ'20H,05H8.8mova1,13H

33movdx,0FFDCHoutdx,a1jmpintr1intr1mova1,90Hmovdx,0FFDEHoutdx,a1Jmpintr2intr2mova1,1movdx,0FFDEHoutdx,a18.11moval,0bHout20H,a1nopinal,20H8.1380hProcfarstiPushdsPushaXPushdXint1chmoVa1f20H0ut20H,a1P0PaxP0PdxP0Pdsiretint80hendPE½G9.1¾¿ÀஹabÁPḄ¿ÃஹbÁPḄ¿Ã9.2CLKᐭ——ᙠÅᦪePK'ÆTÇÈ8ᐭz9(ÉÊË*'ÅᦪᘤḄÅᦪÌÍ1

34GATEÑᐭ——ᑴÅᦪᘤÒÓ'bᑖᡂᵯ×ᑴØÈᓣËᑴÚOUTÅᦪᘤ1—gzÝÅᦪePpq(ÅᦪÌÍÞ0*,OUTTÇÈßwxz919.3825389@⍝ᨵÈÒÓ!"bs⌱â஺ãäÃå@⍝Þ!"0æ'ᐸ1TÇÞᡈᵯ×çgᑏᐭÅᦪèÌ(éêᐭÍ1Åᦪᘤ*æ@⍝ëìÅᦪ,CLKï8ᩭz9ᾭòÍ1ÅᦪᘤiÍ1gÅᦪᘤÍÞ0,ᑣ1TÇ1&ᵯ×'⊤,Åᦪpq஺8253ḄCLKO1.5MHzḄ'÷øOUTOwx⚣᳛Þ300KHzḄ!û'ᑣ8253ḄÅᦪÌmÞ5(=1.5MHz+300KHz*,m⌱ᵨḄÒÓ!"$þ9.4:(1)moval,50hmovdx,207houtdx,almoval,12880hmovdx,205houtdx,al(2)moval,33hmovdx,207houtdx,almovax,3000h3000movdx,204houtdx,almoval,ahoutdx,al(3)moval,0b4hmovdx,207houtdx,almoval,02f0hmovdx,206houtdx,almoval,ahoutdx,al9.5moval,33houtOfbh,alᑏᐭ$ᦪᘤ0ᙢᙬOfbhmoval,80hout0f8h,al;ᑏᐭ*+⁚$ᦪ-.moval,50hout0f8h,al:ᑏᐭ/+⁚$ᦪ-.

350ᵨ$ᦪᘤ0Ḅ$ᦪ-.35080h9.6$ᦪᘤ0—5◞55ms89:;IRQO?@AB$ᦪᘤ1——5◞15HS89:;DRAMᑵIAB$ᦪᘤ2——JᑴLMᘤNO9.7101;PQRSTUVWᵨXY4GATE0]᜜_`a$ᦪᘤḄJᑴbcSUV⌱ᵨXY1ᡈXY5movdx,203hmoval,12h;XY53lahoutdx,almovdx,200hmoval,64houtdx,al9.8:$ᦪᘤ0Ḅ$ᦪ.5M/lK=5000=1388HXYJᑴ+00100101=25H>2DHஹ35Hஹ3DHkᓝmᑴ$ᦪn00100100=24H>2CHஹ34Hஹ3CHkpmᑴ$ᦪn$ᦪᘤ1Ḅ$ᦪ.1000XYJᑴ+:01101001=69H.79Hkᓝmᑴ$ᦪn01101000=68H>kpmᑴ$ᦪnMOVDX,0FFF3HMOVAL,25H;u⍝0,wᑏ/+⁚SXY2,ᓝmᑴOUTDX,ALMOVDX,OFFFOHMOVAL,50H$ᦪ-.5000OUTDX,ALMOVDX,0FFF3HMOVAL,69Hu⍝1,XY4OUTDX,ALMOVDX,0FFF1HMOVAL,10H$ᦪ-.1000OUTDX,AL9.9stacksegmentstackdw1024dup(?)

36stackendsdatasegmentfreqdw8,2277.1,2029.2,1807.9,1709.4,1521.9,1355.9,1207.7,1138.5dataendscodesegment'code'assumecs:code,ds:data,ss:stackstart:movax,datamovds,axagain:movah,Olhin21hcmpal,1BHjznextcmpal,31Hjbnextlcmpal,3811janextlandal,Ofhmovah,OOhmovsi,axmovbx,offsetfreqmovax,[BX+SI]cal]speakercal]speakonjmpagainnextl:callspeakoffjmpagainnext:movax,4c00hint21hspeakerprocpushaxmoval,0b6hout43h,alpopaxout42h,almoval,ahout42h,alretspeakerendpspeakonprocpushaxinal,61horal,03hout61h,alpopax

37retspeakonendpspeakoffprocpushaxinal,61handal,Ofchout61h,alpopaxretspeakoffendpcodeendsendstarts9.10:2,67ᓝ10.8movdx,0FFFEHmova1,81Houtdx,a1movdx,0FFFCHinal,dxanda1,0FHmovc1,4sh1al,c1outdx,a110.9movdx,0FFFEHmova1,86Houtdx,a1mova1,13Hout20H,a1mova1,08Hout21H,a1moval,1out21H,a1

38moval,08Hout21H,a110.16LED⊤tabledb0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h;8255A-ᓄmovdx,Offfbhmoval,10001001b=89houtdx,al;JᑴagainO:movdx,Offfahinal,dx;;ᐵᔠmovex,8movah,01hmovah,08hagainl:shraljshlaljjncdispOincahdecahloopagainljmpdispl;+dispO:movbx,offsettablemoval,ahxlatmovdx,0fff8houtdx,aldispl:movex,8moval,01hmovdx,0fff9hdisp2:outdx,alcalldelayshlal,lloopdisp2jmpagainO

39P274ᓝ:_ᑖ⚪ὃ¡ᫀ11.1¡24ᩩ10¤ᑖᡂ3;8¦Ḅ§¨§¨Aஹ§¨Bஹ§¨C஺ªU«¬3ᐭᡈ®Sᐳᨵ±²³0XY஺§¨A´§¨BU0310ᦪµ§¨஺§¨C03Jᑴᡈ¶᝱§¨SC¨/¸¦´*¸¦ᑖ¹ºA§¨´B§¨»ᔠ¼ᵨS³0ᙠXY1ᡈXY2஺§¨CḄ8;¾¿UÀ]Á¦Â¦ᡈæ஺11.2¡XYJᑴ+3lOllOHOBoXYJᑴ+Ä᜜ŦC¨Ḅ/4¦´*4¦?ḄÆǦḄI/O¶᝱஺10.3¡§¨CḄᔜ¦ᙠXY0Éᑖ/4¦´*4¦ᑖ¹¬I/O¶᝱ᙠXY1´XY2?_ᑖ¾¤ᵨÊËJᑴᡈ¶᝱Ì,C¨Ḅ/4¦´*4¦?ḄÆǦḄI/O¶᝱Íᑖ¹U«¬஺Χ¨CḄᔜ¦Uᑖ¹¦J®஺11.5¡Ï3Jᑴ+310110000B,ᑣÑÒ§¨A³0ᙠXY1ᐭSPC3ஹPC6ஹPC7ÔÕᵨSÖPC5Í3×ØI/OÌSÙÚ3®Ì஺DATASEGMENTAPORTEQU300HᎷ¬ᙢᙬ3300H-303HBPORTEQU301HCPORTEQU302HCONPORTEQU303HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,CONPORTMOVAL,10000001BOUTDX,ALREREAD:MOVDX,CPORTINAL,DXANDAL,OFHMOVCL,4ROLAL,CLOUTDX,ALJMPREREADMOVAX,4C00HINT21HCODEENDSENDSTART

40

4111.9¡:DATASEGMENTAPORTEQU300H;Ꮇ¬ᙢᙬ3300H-303HBPORTEQU301HCPORTEQU302HCONPORTEQU303HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,CONPORT8255-ᓄMOVAL,1OOOO11OBOUTDX,ALMOVAL,00000101B;ᐕà8255AḄB¨?@OUTDX,ALMOVAH,35Háâã?@ᔣåMOVAL,OBHINT21HPUSHESæçã?@ᔣåᐭ᪘POPBXCLIᐵ?@PUSHl)SMOVDX,OFFSETNEWOBH¬ÂI?@ᔣåMOVAX,SEGNEWOBHMOVDS,AXMOVAH,25HMOVAL,OBHINT21HPOPDSINAL,21H;êIMRPUSHAXæçãIMRᑁìANDAL,0F7H;¬ÂI1MRᑁìOUT21H,ALSTI;?@;í_ᑖCLI;ᐵ?@POPAXឮÃãIMROUT21H,ALPOPDXឮÃã?@ᔣåPOPDSMOVAH,25HMOVAL,OBHINT21HSTI?@MOVAX,4C00HïðDOSINT21HNEWOBHPROC?@ñòNEWOBHENDPCODEENDSENDSTART

42

4311.16¡DATASEGMENTAPORTEQU0FFF8HBPORTEQU0FFF9HCPORTEQUOFFFAHCWPORTEQUOFFFBHSEGBUFDB11HBITBUFDB01HSEGTABDBOCOH,0F9H,0A4H,OBOH,99H,92H,82H,0F8HDB80H,90H,88H,83H,0C6H,0A1H86H,8EHFDBOFFH,OBFHDATAENDSCODESEGMENTASSUMECSWCODE,DSWDATASTARTWMOVAX,DATAMOVDS,AXMOVDX,CWPORTMOVALf1OOO1001B;¬ÂA¨B¨3XY0®,C¨ᐭOUTDX.ALKEY1WCALLDISPOóô:¦õMOVDX,CPORTêö÷¨INAL,DXCMPAL,OFFHᑨᨵùöᢥPJZKEY1ùöᢥû,ïðüýþMOVCX,8ᨵöᢥPSþÿMOVAH,1KEY2WSTCSHRAL,1JNCKEY_NUMᑮ,INCAHLOOPKEY2JMPKEY1KEY_NUMW

44CMPSEGBUF,AH;ᑨᔲJZKEY1;ᢝMOVSEGBUF,AH;ᣚMOVBITBUF,O1HᢣᔣLEDJMPKEY1P_ENDWMOVAX,4C00HINT21HDELAY._1OMSPROCNEARPUSHAXPUSHCXPUSHDXMOVCX,0MOVDX,5000MOVAH,86HINT15HPOPDXPOPCXPOPAXRETDELAY._1OMSENDPDISPPROCPUSHAXPUSHBXPUSHCXPUSHDXMOVBX,OFFSETSEGTABMOVAL,SEGBUFXLATMOVDX,APORTOUTDX,ALMOVAL.BITBUFMOVDX,BPORTOUTDX,ALROLAL,1MOVBITBUF.AL

45CALLDELAY_10MSPOPDXPOPCXPOPBXPOPAXRETDISPENDPCODEENDSENDSTART

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
最近更新
更多
大家都在看
近期热门
关闭