汇编语言程序设计课后习题答案(第二版沈美明)

汇编语言程序设计课后习题答案(第二版沈美明)

ID:83467857

大小:17.74 MB

页数:140页

时间:2023-07-12

上传者:无敌小子
汇编语言程序设计课后习题答案(第二版沈美明)_第1页
汇编语言程序设计课后习题答案(第二版沈美明)_第2页
汇编语言程序设计课后习题答案(第二版沈美明)_第3页
汇编语言程序设计课后习题答案(第二版沈美明)_第4页
汇编语言程序设计课后习题答案(第二版沈美明)_第5页
汇编语言程序设计课后习题答案(第二版沈美明)_第6页
汇编语言程序设计课后习题答案(第二版沈美明)_第7页
汇编语言程序设计课后习题答案(第二版沈美明)_第8页
汇编语言程序设计课后习题答案(第二版沈美明)_第9页
汇编语言程序设计课后习题答案(第二版沈美明)_第10页
资源描述:

《汇编语言程序设计课后习题答案(第二版沈美明)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

苴程页一一序ᵯᫀ一员ὃẆ一ὅᩭ1.1ᵨ$'&'(◀'*ᑡᓝ-ᑴᦪ0ᣚ23-ᑴᦪ(ᓝ4-ᑴᦪ(1)369(2)10000(3)4095(4)32767(1)369=101110001B=171H(2)10000=10011100010000B=2710H(3)4095=111111111111B=FFFH(4)32767=111111111111111B=7FFFH1.2*ᑡ3-ᑴᦪ0ᣚ2ᓝ4-ᑴᦪ(ᓝ-ᑴᦪ(1)101101(2)10000000(3)1111111111111111(4)11111111(1)101101B=2DH=45(2)10000000B=80H=128(3)1111111111111111B=FFFFH=65535(4)11111111B=FFH=2551.3*ᑡᓝ4-ᑴᦪ0ᣚ23-ᑴᦪ(ᓝ-ᑴᦪ(1)FA(2)5BবFFFE(4)1234(1)FAH=11111010B=250ফ5BH=1011011B=91(3)FFFEH=1111111111111110B=65534(4)1234H=1001000110100B=46601.4Iᡂᑡᓝ4-ᑴᦪḄLMN0ᣚ2ᓝ-ᑴᦪ-O᪥᪶(1)3A+B7(2)1234+AF(3)ABCD-FE(4)7ABx6F(1)3A+B7H=F1H=241(2)1234+AFH=12E3H=4835(3)ABCD-FEH=AACFH=43727(4)7ABx6FH=35325H=2178931.5ᑡᔜᦪᙳ2ᓝ-ᑴᦪMXᵨ8Y3-ᑴ⊡ṹᑡᔜ⚪MNᵨᓝ4-ᑴᦪ⊤^ᐸL`a஺(1)(-85)+76(2)85+(-76)(3)85-76(4)85-(-76)(5)(-85)-76(6)-85-(-76)(1)(-85)+76=101010UB+01000111B=0F7HdCF=0dOF=0(2)85+(-76)=01010101B+10110100B=00001001B=09HdCF=1dOF=0(3)85-76=01010101B-01001100B=01010101B+10110100B=00001001B=09HCF=0dOF=0(4)85-(-76)=01010101B-I0110100B=01010101B+01CX)1100B=10100001B=0AlHdCF=0d

1OF=1(5)(-85)-76=10101011B-01001100B=10101011B+10I1OlOOB=OIOl11UB=5FHdCF=0dOF=1(6)-85-(-76)=10101011B-10I10100B=10101011B+01001IOOB=11110111B=0F7HdCF=0dOF=01.6ᑡᔜᦪ2ᓝ4-ᑴ⊤^Ḅ8Y3-ᑴᦪMXijklmᑖopqrᵨ⊡ṹ⊤^ḄstuᦪᡈwtuᦪxMlmᡠ⊤^Ḅᓝ-ᑴᦪrz{|(1)D8(2)FF(1)D8H⊤^Ḅstuᦪ2-40,D8H⊤^Ḅwtuᦪ2216dফFFH⊤^Ḅstuᦪ2-1,FFH⊤^Ḅwtuᦪ2255஺1.7ᑡᔜᦪᙳ2ᵨᓝ4-ᑴ⊤^Ḅ8Y3-ᑴᦪMXijklmᑖopqrᵨ⊡ṹ⊤^Ḅᦪᡈ}tḄASCHṹxMlmᡠ⊤^Ḅᓝ-ᑴᦪ~}trz{|(1)4F(2)2B(3)73(4)59(1)4FH⊤^Ḅᓝ-ᑴᦪ279,4FH⊤^Ḅ}t2Odফ2BH⊤^Ḅᓝ-ᑴᦪ243,2BH⊤^Ḅ}t2+d(3)73H⊤^Ḅᓝ-ᑴᦪ2115,73H⊤^Ḅ}t2sdভ59H⊤^Ḅᓝ-ᑴᦪ289,59H⊤^Ḅ}t2Y஺1.8Xᑏᑡ}tḄASCIIṹ஺Forexample,Thisisanumber3692.46H6FH72H20H65H78H61H6DH70H6CH65H2CH0AH0DH54H68H69H73H20H69H73H20H61H20H6EH75H6DH62H65H72H20H33H36H39H32H2EH0AH0DH32.1ᙠ80x86Ḅᐭ/ᢣMI/OurᵫDXᘤḄMᨵxᙠᢣᢣ00~FFHḄu஺ᵫᢣᢣḄI/Oᦪ஺ᵫᢣᢣḄI/Oᦪ2256஺2.2ᨵ¡16Y}1EE5H(2A3cHᑖo¢ᙠ80x86Ḅ£ᘤḄ000B0H(000B3HᓫᐗMXᵨ¦⊤^lmᙠ£ᘤ§Ḅ¢¨©஺£ᘤ§Ḅ¢¨©᝞«¦ᡠ^000B0HE5H000B1H1EH000B2H000B3H3CH000B4H2AH2.3ᙠIBMPCḄ£ᘤ¢¬᝞«¦ᡠ^஺®30022H(30024H}⁚ᓫᐗḄᑁ±M~30021H(30022H}ᓫᐗḄᑁ±஺30020H12H

230021H34H30022HABH3OO23HCDH30024HEFH:30022H}⁚ᓫᐗḄᑁ±2ABHd30024H}⁚ᓫᐗḄᑁ±2EFH஺30021H}ᓫᐗḄᑁ±2AB34Hd30022H}ᓫᐗḄᑁ±2CDABH஺2.4ᙠ²³´Mµᙢᙬ(¸¹ᙢᙬ23017:000AḄ£ᓫᐗḄᱥᳮᙢᙬrz{|᝞aµᙢᙬ(¸¹ᙢᙬr306002A(3010:007Aᕖ|3017:000Aஹ3015:002A(3010:007AḄ£ᓫᐗḄᱥᳮᙢᙬ¾r3017AH஺2.5᝞aᙠ¿ÀÁ᡻OÃ(CS)=0A7F0H,(᝞16-ᑴᦪḄᨬÅY2}ÆMᑣÈᙠᐸÃÉ0)(IP)=2B40H,Ê¿Ḅ}ḄᱥᳮᙢᙬrËÌ|Ê¿Ḅ}Ḅᱥᳮᙢᙬr0AAA40H஺2.6ᙠ²³´M£ᘤ͵ᨬËᨵ10000H}⁚஺᝞aᵨοDEBUGḄrÏᙠÐÑÒ^kÃᔜᘤḄᑁ±᝞MXÓÔx£ᘤᑖµḄ^Õ¦M~ᩩ᪗ØOFஹSFஹZFஹCFḄ஺C>debug-rAX=0000BX=0000CXÙ079DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZNAPONCÔx£ᘤᑖµḄ^Õ¦᝞«¦ᡠ^஺OFஹSFஹZFஹCFḄ¾20஺2.7ᑡÚÛᵨÜÝᘤ|(1)É'(Þ'ᦪßᘤà(2)áâᦪCX(3)ã'(◀'AXஹDX,ãᦪ(◀ᦪᵨᐸäᘤᡈ£ᘤ(4)åµᙢᙬµᘤ(5)⊤^L`a20ZF=l(6)*⌕᡻OḄᢣᙢᙬCS:IP(7)*⌕çᚮ᪘êᦪßḄᙢᙬSS:SPᫀë⚪ìḄ«í஺2.8ÜÝᘤᵨᩭᢣ^£ᘤᙢᙬ|BXஹBPஹSIஹDIஹᚮ᪘ÚxḄSPஹîÈḄµᙢᙬஹ386~ᐸïðñḄExx஺2.9X*ᑡòíḄ⚗(«íḄôõὶ÷øᩭ(ùᡠ⌱}Æ¢ᙠûu)(I)CPU(M)A.åkÃ᪘⚔ᙢᙬḄᘤ஺(2)£ᘤ(C)B.ᢣ^ᩩ⌕᡻OḄᢣḄᙢᙬ஺(3)ᚮ᪘(D)C.£¿ஹᦪßà¬ḄýþÿᨵRAMROM஺(4)IP(B)D.ᐜḄ஺মSP(A)E.ᡂᘤḄ#$஺(6)%᝱᪗((L)F.*+,⊤./01⁚ᓫᐗḄᙢᙬ஺(7)7ᑴ᪗((K)G9:;<=>?@Ḅ஺(8)ABᘤ(J)H.ᵨᢣFḄGHIஹIKᙢᙬஹ᪗KLIKMᑏḄ஺

3(9)ᱥᳮᙢᙬ(F)1.RS0TᙽV>WᩭᡂYZ᡻\ᦻ^Ḅ#$஺(10)(H)J._ᔜabAḄWcᙢᙬḄBᘤ8086/8088ᨵd0eCSஹDSஹSSஹESo(11)ᘤ(G)K.7ᑴfḄ᪗(᝞DFh஺(12)(E)L.HiᢣFfjkḄ᪗(ᐳ6heOFஹSFஹZFஹAFஹPFஹCF஺(13)V>পM.ᑖ᪆ஹ7ᑴp᡻\ᢣFḄq^ᵫ§ᙬ(3)¯ᵨBXḄBᘤ§ᙬ(4)¯ᵨBXḄ°>§ᙬ(5)¯ᵨBXḄBᘤ±²§ᙬ(6)³ᙬ´ᙬ§ᙬ(7)±²³ᙬ´ᙬ§ᙬe(I)fᦪᙠᢣF.ᓽᓽᦪµ(2)EA=D=7237Hµ(3)¶EA,fᦪY(BX)=637DHµ(4)EA=(BX)=637DHµ(5)EA=(BX)+D=0D5B4Hµ(6)EA=(BX)+(SI)=8E18Hµ·EA=(BX)+(SI)+D=1004FHµ¸v¹AḄº»ᨬ½hh¾ᜫÀÁEA=004FH஺3.2¥᪷Ã⌕Äᑏ±ÅḄᢣFপBXBᘤDXBᘤḄᑁDZÈjkᐭDXBᘤ.஺(2)ᵨBᘤBXSIḄ³ᙬ´ᙬ§ᙬᘤ.Ḅ+01⁚ÊALBᘤḄᑁDZÈ,pjk〈ᑮALBᘤ.஺

4(3)ᵨBᘤBXh£¤OB2HḄBᘤ±²§ᙬᘤ.Ḅ+01(CX)±Èpjk〈Îᘤ.஺(4)ᵨh£¤Y0524HḄ=>§ᙬᘤ.Ḅ+01Êᦪ2A59H±Èpjk〈Îᓫᐗ.஺মᦪOB5HÊ(AL)±Èpjk〈ÎAL.஺eপADDDX,BX(2)ADDAL,|BX]|SI](3)ADDIBX+0B2HJ,CX(4)ADDWORDPTR[0524H],2A59HমADDAL,0B5H3.3ᑏ✌ᙢᙬYBLOCKḄ1ᦪtḄ601〈ᑮDXBᘤḄᢣF஺⌕įᵨЧᙬe(1)Bᘤ>§ᙬ(2)Bᘤ±²§ᙬ(3)³ᙬ´ᙬ§ᙬe(1)MOVBX,OFFSETBLOCKADDBX,(6-l)*2MOVDX,[BX]ফMOVBX,OFFSETBLOCKᦋYeMOVBX,(6-l)*2MOVDX,[BX+(6-1)*2]ÓZMOVDX,BLOCKIBX](3)MOVBX,OFFSETBLOCKMOVSI,(6-l)*2MOVDX,[BX][SI]3.4Ôᨵ(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,¥ÕÖᑡᔜᩩᢣF᡻\ÙAXBᘤḄᑁÇ஺(l)MOVAX,1200H(2)MOVAX,BXবMOVAX,[1200H](4)MOVAX,[BX]মMOVAX,1100|BX](6)MOVAX,[BX][SI]·MOVAX,1100[BX][SI]e(1)(AX)=1200H(2)(AX)=0100H(3)(AX)=4C2AH(4)(AX)=3412H(5)(AX)=4C2AH(6)(AX)=7856H(7)(AX)=65B7H3.5¡¢(IP)=2BC0H,(CS)=0200H,h£¤D=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH,¥YḄÛ£ᢣFÜÛ£ḄÝ£ᙢᙬ஺(1)Aᑁ=>§ᙬ(2)¯ᵨBXÞBᘤ>§ᙬḄAᑁ>§ᙬ

5(3)¯ᵨBXÞBᘤ±²§ᙬḄAᑁ>§ᙬe(l)JMPNEARPTR5119Hµ(IP)=5119H+((IP)+03H)=7CDCH,ᱥᳮᙢᙬPA=09CDCH(IP)+03H©JMPNEARPTR5119HᢣFḄ+ᩩᢣFḄ✌ᙢᙬ஺(2)JMPWORDPTR[BX]µ(IP)=((DS)*10H+(BX))=0600H,PA=02600H(3)JMPD[BX]µ(IP)=((DS)*10H+(BX)+D)=098AH,PA=0298AH3.6ßàáᦪÃABᘤḄᑁÇY1B00H,ᙠᦪÃAḄÝ£ᙢᙬ2000Hᓫᐗᑁâᨵ+0ᑁÇYOFF1OH8000HḄᢣ┐äå©+016h´¤ḄÝ£ᙢᙬAᙢᙬ¥ᑏæ´¤çᐭAXḄᢣFᑡpèé⊤êᩭ஺eMOVBX,[2000H]µéê᝞ëᡠê஺MOVAX,[2000H+2]MOVES,AXMOVAX,ES:[BX]3.7ᙠ0624Hᓫᐗᑁᨵ+ᩩí1⁚JMPSHORTOBJᢣF᝞ᐸ.h£¤Y(1)27H,ফ6BH,ব0C6H,¥ïÛᔣᙢᙬOBJḄñ©òó¬e(1)OBJ=0624H+()2H+27H=064DH(2)OBJ=0624H+02H+6BH=0691H(3)OBJ=0624H+02H+0C6H=05ECHµC6H²ÅḄôᦪY-3AH(ᔣëÛ£ôh£¤)3.8Ꮇ¢(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,ᦪÃA.´¤VALḄÝ£ᙢᙬY0050H,¥ᢣᑡfᦪ1AḄ§ᙬ©ª«¬ᐸᱥᳮᙢᙬñ©òó¬(1)MOVAX,OABH(2)MOVAX,BX(3)MOVAX,[100H](4)MOVAX,VAL(5)MOVAX,[BX](6)MOVAX,ES:[BX](7)MOVAX,[BP](8)MOVAX,[SI](9)MOVAX,[BX+10](10)MOVAX,VAL[BX](11)MOVAX,[BX][SI](12)MOVAX,VAL[BX][SI]e(1)ᓽµfᦪᙠöᩩᢣF.(2)Bᘤ§ᙬµfᦪY(BX)=0100H(3)=>§ᙬµPA=20100H(4)=>§ᙬµPA=20050H(5)BXBᘤ>§ᙬµPA=20100H(6)▬ÈABXBᘤ>§ᙬµPA=21100H·BPBᘤ>§ᙬµPA=I5OIOH(8)SIBᘤ>§ᙬµPA=200A0HøBXBᘤ±²§ᙬµPA=20110H(10)BXBᘤ±²§ᙬµPA=20150H(11)BXS1Bᘤ³ᙬ´ᙬ§ᙬµPA=201A0H(12)BXS1Bᘤ±²³ᙬ´ᙬ§ᙬµPA=201F0H3.9ᙠARRAYᦪt.ùú¹û01ᦪÃü>Ḽ©YZEROḄ1ᓫᐗ⊤ê᝞eARRAYDW23,36,2,100,32000,54,0ZERODW?(1)᝞kBXᒹâᦪtARRAYḄÿᙢᙬᑏᢣᦪ0〈ZEROᓫᐗ஺(2)᝞BXᒹᦪ0ᙠᦪḄᑏᢣᦪ0〈ZEROᓫᐗ஺(1)MOVAX,[BX+(7-l)*2]

6MOV|BX+(7)*2],AX(2)MOVAX,ARRAY[BX]MOVARRAY[BX+2],AX3.10᝞TABLEᦪ!0032ᓫᐗḄ"#$ᐸ&'Ḅᑁ)1234H,*+,-.ᩩᢣᨵ12345ᢣ᡻789AX:&ᘤḄᑁ)<125MOVAX,TABLELEAAX,TABLEMOVAX,TABLE

73.17ᑏb᡻7,-ḄᢣᑡᐸXஹYஹZஹRஹWᙳ&'16"#ᦪᓫᐗḄᙢᙬ஺(1)Z-W+(Z-X)(2)Z-W-(X+6)-(R+9)(3)Z—(W*X)/(Y+6),R`ᦪ(4)Z-((W-X)/5*Y)*2(1)MOVAX,Z,-fὃ⇋"#ᦪḄbSUBAX,XADDAX,WMOVZ,AXফMOVBX,XADDBX,6MOVCX,RADDCR,9MOVAX,WSUBAX,BXSUBAX,CXMOVZ,AXবADDY,6MOVAX,WIMULXIDIVYMOVZ,AXMOVR,DX(4)MOVAX,WSUBAX,XCWDMOVBX,5IDIVBXIMULYSHLAX,1((DX),(AX))*2RCLDX,13.18VWf!᝞-:MOVAX,1234H(AX)=1234H,᪗|cMOVCL,4(AX)U᪗|cROLAX,CL(AX)=2341H,CF=1,SFUZFcDECAX(AX)=2340H,CF=1cSF=O,ZF=0MOVCX,4(AX)U᪗|cMULCX(AX)=8D00H,CF=OF=0,ᐸ᪗|INT20H*+(1)ᩩᢣ᡻789AX:&ᘤḄᑁ)<125(2)ᩩᢣ᡻789^ஹ"#U᪗|Ḅ~<125(3)fzAXUDXḄᑁ)<125(1)(2)

8(3)(AX)=8D00H,(DX)=O3.19-ᑡf!Ḅᩩᢣ᡻789AX:&ᘤCFஹSFஹZFUOFḄᑁ)<125MOVAX,0(AX)=0,᪗|cDECAX(AX)=OFFFFH,CFcSF=1,ZF=0,OF=0ADDAX,7FFFH(AX)=7FFEH,CF=1,SF=O,ZF=0,OF=0ADDAX,2(AX)=8000H,CF=0,SF=1,ZF=0,OF=1NOTAX(AX)=7FFFH,᪗|cSUBAX,OFFFFH(AX)=8000H,CF=1,SF=1,ZF=0,OF=1ADDAX,8000H(AX)=0,CF=1,SF=O,ZF=1,OF=1SUBAX,1(AX)=0FFFFH,CF=1,SF=LZF=0,OF=0ANDAX,58D1H:(AX)=58D1H,CF=0,SF=O,ZF=0,OF=0SALAX,1(AX)=OB1A2H,CF=0,SF=1,ZF=0,OF=1SARAX,1(AX)=OD8D1H,CF=0,SF=1,ZF=0,OF=0NEGAX(AX)=272FH,CF=1,SF=O,ZF=0,OF=0RORAX,1(AX)=9397H,CF=1,SFUZFcOF=1஺3.20cDATAXUcDATAYḄ᝞-DATAXDW0148HDW2316HDATAYDW0237HDW4052Hᢥ-ᑡ⌕qᑏbᢣᑡ(1)DATAXUDATAY.TQᦪU&'ᙠDATAY஺ফDATAXUDATAY.TQᦪU&'ᙠ¡DATAY¢ḄQᓫᐗ஺(3)£-ᑡᢣḄ¤ᵨSTCMOVBX,DATAXADCBX,DATAYভDATAXUDATAY.TQᦪ§(ᵨMUL)஺মDATAXUDATAY.TQᦪ§(ᵨMUL)஺(6)DATAX◀,23(ᵨDIV)஺ªDATAXQ◀,QDATAY(«DIV)O(l)MOVAX,DATAXADDDATAY,AXMOVAX,DATAX+2ADDDATAY+2,AX(2)MOVAX,DATAXADDDATAY,AXMOVAX,DATAX+2ADCDATAY+2,AXMOVDATAY+4,0ᵨ¬&'^ADCDATAY+4,0বDATAXUDATAY.TQᦪwU1,z&ᐭBX:&ᘤ஺(4)RESULTlDW0

9DWORESULT2DW0DWO1■τMOVAX,DATAXMULDATAYMOVRESULT1,AXMOVRESULT1+2,DXMOVAX,DATAX+2MULDATAY+2MOVRESUET2,AXMOVRESUET2+2,DX(5)AADWOBBDWOCCDWODDDWO■ττMOVAX,DATAXMULDATAYMOVAA,AXMOVBB,DXMOVAX,DATAXMULDATAY+2ADDBB,AXADCCC,DXMOVAX,DATAX+2MULDATAYADDBB,AXADCCC,DXADCDD,0MOVAX,DATAX+2MULDATAY+2ADDCC,AXADCDD,DX(6)MOVAX,DATAXMOVBL,23DIVBL(7)MOVDX,DATAX+2MOVAX,DATAXDIVDATAY3.21ᑏb&'ᙠDXUAXḄQ®ᦪq⊡Ḅᢣ°lj஺NEGDX±²NOTDXNEGAXNOTAXSBBDX,0ADDAX,1

10ADCDX,03.22*ᑏ`fqbQ®ᦪḄ³~஺Q®ᦪᙠAUA+2ᓫᐗz&'ᙠBUB+2ᓫᐗ஺f!᝞-MOVAX,AMOVDX,A+2CMPDX,0JNSZHENSHU<´ᦪᑣ¶·NEGDXNEGAXSBBDX,0ZHENSHU:MOVB,AXMOVB+2,DXINT20H3.23Ꮇl(BX)=0E3H,cVALUE&'Ḅᑁ)79H,¹-ᑡᔜᩩᢣᓫº᡻79Ḅz஺(l)XORBX,VALUE(BX)=9AH,CFஹOF0,AFSF=1,ZF=0,PF=1(2)ANDBX,VALUE(BX)=61H,CFஹOF0,AFSF=O,ZF=0,PF=0(3)ORBX,VALUE(BX)=0FBH,CFஹOF0,AFSF=1,ZF=0,PF=0(4)XORBX,OFFH(BX)=1CH,CFஹOF0,AFSF=O,ZF=0,PF=0(5)ANDBX,0(BX)=00H,CFஹOF0,AFSF=O,ZF=1,PF=1(6)TESTBX,01H(BX)=0E3H,CFஹOF0,AFSF=1,ZF=0,PF=0஺3.24*ᑏb᡻7-ᑡᢣᑡ9BX:&ᘤḄᑁ)஺᡻7»(BX)=6D16H஺MOVCL,7SHRBX,CL(BX)=00DAHo3.25*ᵨᢣ\ᓝ^ᑴᦪ+53U-49ᑖ4§,2஺¼½¾ᵨ12ᢣ5¿ᑮḄz<125᝞⌕◀,2ᕖ5MOVAL,53SALAL,1(AL)=(+53*2)=6AHMOVAL,-49SALAL,1(AL)=(-49*2)=9EHMOVAL,53SARAL,1(AL)=(53/2)=1AHMOVAL,-49SARAL,1(AL)=(-49/2)=0E7H3.26*ᑖ᪆-☢Ḅf!8ᡂ12ÅÆ5MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL

11Çf!•((DX),(AX))ḄQÉk4ᓽËQ§,10H(16)஺3.27Ꮇ(DX)=0B9H,(CL)=3,(CF)=1,¹-ᑡᔜᩩᢣᓫº᡻79DXḄ~஺(l)SHRDX,1(DX)=05CH(2)SARDX,CL(DX)=17HবSHLDX,CL(DX)=5C8H(4)SHLDL,1(DX)=72H(5)RORDX,CL(DX)=2017H(6)ROLDL,CL(DX)=0CDH(7)SALDH,1(DX)=0B9H(8)RCLDX,CL(DX)=2CCHভRCRDL,1(DX)=0DCH஺3.28-ᑡf!᡻789BX:&ᘤḄᑁ)<125MOVCL,3MOVBX,0B7HROLBX,1RORBX,CL(BX)=0C02DH஺3.29Ꮇlᦪ!᝞-CONAMEDB'SPACEEXPLORERSINC/PRUNEDB20DUP(“)ᵨIᢣᑏf!ᑖ48ᡂ,-ÅÆ(1)¡kᑮC\CONAMEḄQ"I〈ᑮPRLINE஺ফ¡Cᑮk\CONAMEḄQ"I〈=ljPRUNE஺ব\CONAMEḄS3US4TQ⁚oᐭAX஺(4)\AX:&ᘤḄᑁ)&ᐭ¡PRLINE+5¢ḄQ⁚஺(5)ÌÍCONAMEQ"IᨵLMQ"᝞ᨵᑣ\S`TLMQ"Ḅᙢᙬ〈BX:&ᘤ஺পMOVCX,20CLDMOVSI,SEGCONAMEMOVDS,SIMOVES,SILEASI,CONAMELEADI,PRUNEREPMOVSBফMOVCX,20STDMOVSI,SEGCONAMEMOVDS,SIMOVES,SILEASI,CONAMEADDSI,20-1LEADI,PRLINE

12ADDDI,20-1REPMOVSB(3)MOVAX,WORDPTRCONAME+3-1(4)MOVWORDPTRPRUNE+5,AX(5)MOVAL,49LMḄASCIIṹ〈AL:&ᘤCLDMOVDI,SEGCONAMEMOVES,DILEADI,CONAMEREPNESCASBJNENEXTDECDIMOVBX,DINEXT:3.30ᑏf!\Q"ISTRINGḄ&Q"ᵨLM"ÐÑ஺STRINGDB'ThedateisFEB&03'f!᝞-MOVCX,18MOVAL,CLDMOVDI,SEGSTRINGMOVES,DILEADI,STRINGREPNESCASBJNENEXTDECDIMOVESBYTEPTR[DI],…〈LM"NEXT:3.31Ꮇlᦪ!ᦪ᝞-STUDENT_NAMEDB30DUP(?)STUDENT_ADDRDB9DUP(?)PR1NT.LINEDB132DUP(?)ᑖ4ᑏ-ᑡf!পᵨLM"Ò◀PRINT_LINEÓ஺ফᙠSTUDENT_ADDRÍÔS`TবᙠSTUDENT_ADDRÍÔᨬ9`T(4)᝞STUDENT_NAMEÓᐰ

13CLDLEADI,PRINT_LINEREPSTOSBফMOVCX,9MOVAL.,CLDLEADI,STUDENT_ADDRREPNESCASBJNENO_DASHDECDINO_DASH:jবMOVCX,9MOVAL.JÛSTDLEADI,STUDENT.ADDRADDDI,9-1REPNESCASBJNENO_DASHINCDINO_DASH:(4)MOVCX,30MOVAL,`LMḄASCIIṹ〈AL:&ᘤCLDLEADI,STUDENT_NAMEREPESCASBJNENEXTMOVCX,30MOVAL,®"”ḄASCIIṹ〈AL:&ᘤLEADI,STUDENT_NAMEREPSTOSBNEXT:(5)MOVCX,30CLDLEASI,STUDENT_NAMELEADI,PRINT_LINEREPMOVSBMOVCX,9STDLEASI,STUDENT_ADDR+9-lLEADI,PRINT_LINE+132-1REPMOVSB3.32ᑏ`f!Þß.T5Q⁚ḄQ"IOLDSUNEWS,᝞OLDSQ"IɬNEWSQ"Iᑣ᡻7NEW_LESSᔲᑣá᡻7f஺f!᝞-

14MOVCX,5CLDMOVDI,SEGOLDSMOVDS,DIMOVES,DILEASI,OLDSLEADI,NEWSREPECMPSBJNENEW_LESSτ■■NEW_LESS:;3.33ᎷAXUBXḄᑁ)"#ᦪCXUDXḄᑁ)"#ᦪᵨÞßᢣUᩩâ¶ᢣãä,-ᑨæ(1)çDXḄᑁ)èeCXḄᑁ)ᑣ¶é᡻7EXCEED஺ফçBXḄᑁ)ᜧ¬AXḄᑁ)ëIJ¶é᡻7EXCEED஺(3)çCXḄᑁ)ì¬0,ᑣ¶é᡻7ZERO஺ভBXvAXḄᑁ)Þß<ᔲíîb5çbᑣ¶OVERFLOWoমçBXḄᑁ)ï¬ì¬AXḄᑁ)ᑣ¶EQ_SMA஺(6)çDXḄᑁ)ð¬ì¬CXḄᑁ)ᑣ¶EQ_SMAo(l)CMPDX,CXJAEXCEED(2)CMPBX,AXJGEXCEED(3)JCXZZEROভCMPBX,AXJOOVERFLOWমCMPBX,AXJLEEQ_SMA(6)CMPDX,CXJBEEQ_SMA3.34*ᑖ᪆-ᑡf!ADDAX,BXJNOL1JNCL2SUBAX,BXJNCL3JNOL4JMPSHORTL5᝞AXUBXḄᑁ)᝞-AXBX(1)147BH80DCHফB568H42C8H(3)42C8H608DH(4)D023H9FD0H

15ম94B7HB568H+¾fᑖ4ᙠn☢5ñòó-᡻79f¶ᔣõBö5প¶ᔣL1ফ¶ᔣL1(3)¶ᔣL2(4)¶ᔣL5÷øᢣ9AXVù<6FF3H(5)¶ᔣL5÷øᢣ9AXVù<4Al4H3.35ᢣCMPAX,BX9☢úḼ`ᩩMBJ...L1Ḅᩩâ¶ᢣᐸ…²,JLE(4)JNBஹJNBEஹJNLஹJNLE(5)JNB>JNBEஹJLஹJLE(6)JBஹJBEஹJLஹJLE(7)JBஹJBEஹJNLஹJNLE(8)JNB>JNBEஹJLஹJLE3.36ᎷXX+2ᓫᐗḄᑁᦪp,YY+2ᓫᐔḄᑁᦪq,(XY)!ᑡ#$%&'()*+MOVDX,X+2MOVAX,XADDAX,XADCDX,X+2CMPDX,Y+2JLL2JGL1CMPAX,YJBEL2LIMOVAX,1JMPSHORTEXITL2MOVAX,2EXITINT20H,#$%ᑨ.p*2>q,ᑣ0(AX)$1⌨3;p*2᝞@A1ஹ3ஹ5ᙳ1ᑣᑮROUTINECD᝞

16@,E:ᨵG1ᑣᑮR0UTINE_2D᝞@,E:Hᨵ;1ᑣᑮROUTINE_3D᝞@,Eᐰ0JIJᑮROUTINE_4஺K3L#M>NOᑴQRḄ#$%஺#$%᝞!MOVAL,STATUSANDAL,00010101BDHSᶇA1ஹ3ஹ5JZROUTINE_4D3ᐰ0ROUTINE_4JPEROUTINE_2DG1ROUTINE_2CMPAL,00010101BJZROUTINE.ID3ᐰ1ROUTINECROUTINE_3:;DU;1᡻WROUTINE_3JMPEXITROUTINE.1::JMPEXITROUTINE_2:JMPEXITROUTINE.4:EXIT:INT20H3.38ᙠ!ᑡ#$ḄXY:ᑖ[\ᐭ᝞!ᢣ_(l)LOOPL20(2)LOOPEL20(3)LOOPNEL20ᙠE`ab!>c#$᡻Wd1>AXஹBXஹCXஹDXe

17(2)SUBAmᵨNEARḄSUBBo#(pqḄrᙢᙬOAOO)DবSUBBmᵨFARḄSUBCo#(pqḄ%ᙢᙬB200,pqḄrᙢᙬ0100)D(4)vSUBCpqSUBBD(5)SUBBmᵨNEARḄSUBDo#(pqḄrᙢᙬ0C00)D(6)vSUBDpqSUBBDwvSUBBpqSUBA(8)vSUBApqMAINDxvMAINmᵨSUBC(pqḄ%ᙢᙬ1000,pqḄrᙢᙬ0600)DyK3z{mᵨ|pq}Ḅᚮ᪘᝱஺z{mᵨ|pq}Ḅᚮ᪘᝱M᝞!ᡠ3.40Ꮇ(EAX)=00001000H,(EBX)=00002000H,(DS)=0010H,!ᑡᢣ_ᑁgḄᱥᳮᙢᙬi'(+(l)MOVECX,[EAX+EBXI(2)MOVLEAX+2*EBX],CL(3)MOVDH,[EBX+4*EAX+1OOOHJ(1)PA=(DS)*10H+EA=00100H+00001000H+00002000H=000031OOH(2)PA=(DS)*10H+EA=00100H+00001000H+2*00002000H=000051OOH(3)PA=(DS)*1OH+EA=00100H+00002000H+4*00001000H+1000H=000071OOH3.41Ꮇ(EAX)=9823F456H,(ECX)=1F23491H,(BX)=348CH,(Sl)=2000H,(DI)=4044H«ᙠDS%:vrᙢᙬ4044HᓫᐗḄ4<⁚ᓫᐗ:>{gḄᑁ92H,6DH,0A2H4cH,!ᑡᔜᩩᢣ_᡻Wd1ḄḄᙢᙬ|ᐸ:Ḅᑁi'(+(l)MOV[SI],EAX(2)MOV[BX],ECX(3)MOVEBX,[DI](1)FlḄᙢᙬDS:2000H,ᑁ{56H,0F4H,23H98HফḄᙢᙬDS:348cH,ᑁ{9iH,34H,OF2H01HবḄ*ᦪEBXfgᘤ>(EBX)=4CA26D92H3.42!ᑡᢣ_Ḅ*(l)PUSHAX(AX)ᐭᚮ᪘(2)POPESIDᚮ᪘:Ḅ3ᑮESIfgᘤ:বPUSH[BX]D((BX))Rgᓫᐗ:Ḅᐭᚮ᪘(4)PUSHADD32ᵨfgᘤ{᪘(5)POPDSDᚮ᪘:Ḅ3ᑮDSfgᘤ:(6)PUSH4Dᓽᦪ4lḄᐭᚮ᪘஺3.43y3!ᑡᔜᢣ_$ᑡ᡻Wd1ḄfgᘤḄᑁ஺(l)MOVEAX,299FF94HADDEAX,34FFFFHD(EAX)=2CEFF93H(2)MOVEBX,40000000SUBEBX,1500000D(EBX)=3EB00000H(3)MOVEAX,39393834HANDEAX,0F0F0F0FHD(EAX)=09090804H(4)MOVEDX,9FE35DHXOREDX,0F0F0F0HD(EDX)=6F13ADH

18஺3.44y3!ᑡᔜᢣ_$ᑡ᡻Wd1ḄfgᘤḄᑁ஺(l)MOVBX,-12MOVSXEBX,BXD(EBX)=0FFFFFFF4HফMOVCL,-8MOVSXEDX,CLD(EDX)=OFFFFFFF8H(3)MOVAH,7MOVZXECX,AHD(ECX)=00000007H(4)MOVAX,99HMOVZXEBX,AXD(EBX)=00000099H஺3.45y3!ᑡᢣ_$ᑡ᡻Wd1EAXEBXḄᑁ஺MOVECX,307F455HBSFEAX,ECXD(EAX)=0DBSREBX,ECXD(EBX)=25D஺3.46y3!ᑡᢣ_$ᑡ᡻Wd1AXDXḄᑁ஺MOVBX,98HBSFAX,BXD(AX)=3DBSRDX,BXD(DX)=7D஺3.47yOᑏ;#$%>⌕7ECXஹEDXESIḄᑁQ¡>ᐸgᐭEDIfgᘤ:(¢ὃ⇋£3)஺MOVEDL0¤¥MOVEDLECXADDEDI,ECXADDEDI,EDXADDEDI,EDXADDEDI,ESIADDEDI,ESI3.48yIMULBX,DX,100Hᢣ_Ḅ*஺(BX)<-(DX)*100H3.49Oᑏ;#$%>⌕7BL:Ḅᦪ◀lCL:Ḅᦪ>Nᐸᖪ¨l2,ᨬ1Ḅª@gᐭDXfgᘤ:஺MOVAL,BLMOVAH,0DᎷ«¬Yᦪ>ᔲᑣᵨCBWᢣ_ᓽ¥DIVCLMOVAH,0SHLAX,1MOVDX,AX3.50yJMPDIJMP[DI]ᢣ_Ḅ¯[஺JMPDIiᑮl(DI)ᑁrᙢᙬḄᓫᐗ°᡻Wᢣ_DJMP[DI]iᑮl(DI)±²³ᙬḄᑁgᓫᐗᑁrᙢᙬḄᓫᐗ°᡻Wᢣ_஺3.51Oᑏ;#$%>⌕7ᙠ´100H⁚Ḅᦪµ:>¶3ᜧ¸42HḄ¬YᦪḄ<ᦪNgᐭ⁚ᓫᐗUP:D¶3¹¸42HḄ¬YᦪḄ<ᦪNgᐭ⁚ᓫᐗDOWN:஺JMPBEGINUPDB0

19DOWNDB0TABLEDB1(X)HDUP(?)DᦪµBEGINMOVCX,100HMOVBX,-1MOVSI,0MOVDI,0LIINCBXCMPTABLEIBX],42HJAL2JBL3JMPL4L2INCSIJMPL4L3INCDIL4LOOPLIMOVUP,SIMOVDOWN,DI3.52yᵨM⊤ENTER16,0ᡠ»ᡂḄᚮ᪘½Ḅab஺ᫀ¿M஺ÀᐭÂÅÆÇÅÆÇᵯÊËÌÍÎÓÔÕ#ᫀ⚓Ö⚣ᦟ#ÙÐÃÄὃẆÏ!ÐÑÒÑÒ!ÐAeÚ*ὅÜÝᩭßÍÎ4.1ᢣ3!ᑡᢣ_Ḅ┯á(l)MOVAH,BXDfgᘤâã¢ᓛå(2)MOV[BX],[SI]D¢æçigᘤ*ᦪ(3)MOVAX.|SI][D1|;[SI][DI]¢æ;0ᵨভMOVMYDAT|BX]|SI],ES:AXDAXfgᘤ¢æ0ᵨ%éê(5)MOVBYTEPTR[BX],1000;1000éoë;<⁚Ḅí(6)MOVBX,OFFSETMYDAT[SI]DMYDAT[SI]îïirᙢᙬ>¢æð0ᵨOFFSET(7)MOVCS,AXDCS¢æᵨ*Ḅfgᘤ(8)MOVECX,AXDG<*ᦪḄᦪñâã¢ò஺

204.2!☢ôõᢣ_iö÷Ḅ+(ᎷOP1,OP2iîïᵨDB«øḄùú)(l)CMP15,BXD┯>ᓽᦪ¢æ*Ḅ*ᦪ(2)CMP0P1,25(3)CMPOP1,OP2D┯>¢æçigᘤ*ᦪ(4)CMPAX,0P1D┯>âã¢ᓛå>RCMPax,wordptropl஺4.3Ꮇ!ᑡᢣ_:Ḅᡠᨵ᪗ÒᙳâãüឋḄùú>yᢣ3!ᑡôõᢣ_iö÷Ḅ+þÿḄ┯(1)MOVBP,AL┯ᘤᓛফMOVWORD_OP[BX+4*3][DI],SP(3)MOVWORD_OP1,W0RD_0P2┯ᘤᦪ(4)MOVAX,WORD_OP1[DX]┯DXᵨᘤᙬ(5)MOVSAVE_WORD,DS(6)MOVSP,SS:DATA_WORD[BX][SI](7)MOV2┯[BX][SI]ᢣᦪMOVAX,WORD_OP1+WORD_OP2(9)MOVAX,WORD_OP1-WORD_OP2+100(10)MOVWORD_OP1,WORD_OP1-WORD_OP2!"#$%஺4.4Ꮇ(VARI)VAR2*+,-LAB*᪗/0ᢣ1ᑡᢣ3Ḅ┯4ᜐ"(l)ADDVARI,VAR2ᘤᦪ(2)SUBAL,VAR1ᦪᓛ(3)JMPLAB[SI]LAB᪗/7,-89☢;[SI](4)JNZVAR1VARI,-7᪗/(5)JMPNEARLAB<=ᵨNEARPTR!"#$%஺4.5>?@A1ᑡBCᡠᑖḄFGHIJᓄḄᦪL஺(1)BYTE_VARDB'BYTE\12,-12H,3DUP(0,?,2DUP(1,2),?)ফWORD_VARDW5DUP(0,1,2),?,-5MBY'MTE',256H!"!ᫀ᝞1?ᡠP஺4.60ᑡᔜRST=UVWXY5150Hᐭ[\ᘤ+](᝞"DW5150H)஺4.5⚪!ᫀ42H59H54H45H0DHEEH00H01H02H01H

2102HOOHO1H02HO1H02HBYTE_VAROOHOOHO1HOOH02HOOHFBHFFHOOH59H42H45H54H56H02HWORD_VARtu☢ᑁwxy:{4|!"DW5150HDB5OH,51HDBPQ'DW'QP'

22ORG5150HDW$4.7([\ᦪDATASG,ᐸ]1+,-ᡈᦪ,-஺(1)FLD1B*+,-"'personalcomputer5(2)FLD2B*ᓝᑴᦪ+⁚,-"32বFLD3B*ᓝᑴᦪ+⁚,-"20(4)FLD4B*ᑴᦪ+⁚,-"01011001(5)FLD5B*ᦪ+ḄASCH++⁚,-"32654(6)FLD6B*10\Ḅ+⁚,-FLD7B*8(ASCIIṹ)Hᐸᦪ-(ᓝᑴᦪ)Ḅ⊤"PART120PART250PART314(8)FLD1W*ᓝᑴᦪ+,-"FFF0(9)FLD2W*ᑴᦪḄ+,-:01011001(10)FLD3W*(7)⊤Ḅᙢᙬ,-(1DFLD4W*ᒹ5\ᓝᑴᦪḄ+,-"5,6,7,8,9(12)FLD5W*5\Ḅ+,-(13)FLD6W*]+ᦪ,-)+⁚ᦪ,-4GḄᙢᙬ஺!"DATASGSEGMENTFLDIBDB'personalcomputer'FLD2BDB32FLD3BDB20HFLD4BDB01011001BFLD5BDB'32654'FLD6BDB10DUP(0)FLD7BDBTART1\20DBTART2\50DB'PART3',14FLD1WDW0FFF0HFLD2WDW01011001BFLD3WDWFLD7BFLD4WDW5,6,7,8,9FLD5WDW5DUP(0)FLD6WDWFLD1W-FLD1BDATASGENDS4.8Ꮇ(WX]Ḅᦪ᝞1"PARTNODW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-PARTNOPLENTHḄL*¡⊤P¢!"PLENTH=22=16H,¡⊤P,-PARTNOஹPNAMEஹCOUNT¤ᐳᓰᵨḄᓫᐗᦪ(+⁚ᦪ)஺

234.9ᨵ/BC᝞1"BUFFDB1,2,3J123'EBUFFDB0LEQUEBUFF-BUFFLḄL!"L=6஺4.10Ꮇ(WX]Ḅᦪ᝞1"LNAMEDB30DUP(?)ADDRESSDB30DUP(?)CITYDB15DUP(?)CODE_LISTDB1,7,8,3,2(1)ᵨ[ᩩMOVᢣ3tLNAMEḄ«¬ᙢᙬᐭAX஺(2)ᵨ[ᩩᢣ3tCODE_LISTḄᜮ¯\+⁚ḄᑁwᐭSLবᵨ[ᩩ°=CODE_LENGTHḄL±CODE.LIST²Ḅ³▭µ¶஺!"(1)MOVAX,OFFSETLNAME(2)MOVSI,WORDPTRCODE_LIST(3)CODE_LENGTHEQU$-CODE_LIST·ᓃBC¹ஹºᙠCODEJLISTBC494.110ᑏ[\½᦮ḄᦪDATA_SEG,¡Y᦮ᦪ5¿À[\+⁚ÁY᦮ᦪ-1,0,2,5)4ᙠ10+ᦪÂDATAJL1STḄᜮ5\ᓫᐗ]஺ᯠ9ᑏ½᦮ḄÄṹᐸÅ*"YDATA_LIST]ᜮ5\ᦪ]ḄᨬᜧL)ᨬÈLᑖÉᐭMAX)MINᓫᐗ]஺!"DATA_SEGSEGMENTNUMDB5DATA_LISTDW-1,0,2,5,4,5DUP(?)MAXDW?MINDW?DATA_SEGENDSCODE_SEGSEGMENTMAINPROCFARASSUMECS:CODE_SEGDS:DATA_SEGSTART:PUSHDS(ÊËDOSSUBAX,AXPUSHAXMOVAX,DATA_SEGÌDS¿LMOVDS,AX♦MOVCX,4WXÍJLEABX,DATA_LISTMOVAX,|BX]MOVMAX,AXMOVMIN,AXROUT1:ADDBX,2MOVAX,[BX]CMPAX,MAX

24JNGER0UT2MOVMAX,AXROUT2:CMPAX,MINJNLEROUT3MOVMIN,AXROUT3:LOOPROUT1WXÎÏRETMAINENDPCODE.SEGENDSENDSTART4.12̱LBC᝞1"ALPHAEQU100BETAEQU25GAMMAEQU21ᑡ⊤ÐÑḄL(1)ALPHA*100+BETA=2729H(2)ALPHAMODGAMMA+BETA=19H(3)(ALPHA+2)*BETA-2=9F4H(4)(BETA/3)MOD5=3H(5)(ALPHA+3)*(BETAMODGAMMA)=67H(6)ALPHAGEGAMMA=0FFFFH(7)BETAAND7=01H(8)GAMMAOR3=03H!"#$%஺4.13Ò1☢ḄᦪÓᩩMOVᢣ3ᑖÉUVᡂ(ÕᵨÖᓽᦪSÑ⊤P)TABLEADW10DUP(?)TABLEBDB10DUP(?)TABLECDBØ234'τ■MOVAX,LENGTHTABLEAUVᡂMOVAX,000AHMOVBL,LENGTHTABLEBUVᡂMOVBL,000AHMOVCL,LENGTHTABLECUVᡂMOVCL,0001H!"#$%஺4.14Ò1☢ḄᦪᔜᩩMOVᢣ3ᓫÙ᡻Û9ᨵᐵᘤḄᑁwFLDBDB?TABLEADW20DUP(?)TABLEBDB'ABCD'(1)MOVAX,TYPEFLDB(AX)=0001H(2)MOVAX,TYPETABLEA(AX)=0002H(3)MOVCX,LENGTHTABLEA(CX)=0014HভMOVDX,SIZETABLEA(DX)=0028H(5)MOVCX,LENGTHTABLEB(CX)=0001H!"#$%஺

254.15ᢣ1ᑡ°⊤ÐSÑḄ┯ÁᦋÞ4஺(1)DATA_SEGSEGDATA_SEGSEGMENT(°┯)(2)SEGMENT4CODE'SEGNAMESEGMENT'CODE'(ß8+)(3)MYDATASEGMENT/DATAMYDATASEGMENTIIIENDSMYDATAENDS(ß8+)(4)MAIN_PROCPROCFARᑤ◀ENDMAIN_PROCâÕIIIENDMAIN_PROCMAIN_PROCENDPu1¯CãᣚåMAIN_PROCENDPENDMAIN_PROC!"#$%஺4.16ᢥ1☢Ḅ⌕èᑏWXḄ᪾ê(1)ᦪḄåë0E000HÍJᦪ][\100+⁚ḄᦪÂᐸìឋî+ï+⁚(2)ᚮ᪘ëÈÍJÂ8*STACK(3)Äṹ]ᢣᘤᢣòWXë1000HÍJÌᨵᐵᘤ¿L(4)WXÎÏ஺!"WXḄ᪾ê᝞1"DATA_SEGSEGMENTAT0E000HARRAY_BLABELBYTEARRAY_WDW50DUP(?)DATA.SEGENDSuᦪSTACK.SEGSEGMENTPARASTACK'STACK;DW100HDUP(?)TOSLABELWORDSTACK_SEGENDSuᚮ᪘CODE_SEGSEGMENTMAINPROCFARASSUMECS:CODE_SEGDS:DATA_SEGSS:STACK_SEGORG1000HSTART:MOVAX,STACK_SEGMOVSS,AXÌSS¿LMOVSP,OFFSETTOSÌSP¿LPUSHDS(ÊËDOSSUBAX,AXPUSHAXMOVAX,DATA_SEGMOVDS,AXÌDS¿L";WXôᑖRETMAINENDPCODE_SEGENDSuÄṹ

26ENDSTART4.17ᑏ[\½᦮ḄWXᙠÄṹC_SEG]⌕èYᦪD_SEG]ḄAUGEND)▬;E_SEG]ḄADDENDö;ÁYÎ÷ᙠD_SEG]ḄSUM]஺ᐸ]AUGENDஹADDEND)SUMᙳ*ùú¶ᦪAUGEND¿L*99251,ADDEND¿L*-15962஺!"WX᝞1"D_SEGSEGMENTAUGWLABELWORDAUGENDDD99251SUMDD?D_SEGENDSuᦪE_SEGSEGMENTADDWLABELWORDADDENDDD-15962E_SEGENDSu▬;C_SEGSEGMENTMAINPROCFARASSUMECS:C_SEGDS:D_SEGES:E_SEGSTART:PUSHDS(ÊËDOSSUBAX,AXPUSHAXMOVAX,D_SEGMOVDS,AXÌDS¿LMOVAX,E_SEGMOVES,AXÌES¿LMOVAX,AUGW16ᩩᢣ3Û;TûüMOVBX,AUGW+2ADDAX,ES:ADDWADCBX,ES:ADDW+2ὃ⇋ᨵ/ᦪÿMOVWORDPTRSUM,AXMOVWORDPTR[SUM+2],BXRETMAINENDPC_SEGENDSṹENDSTART4.18⊤Ḅ᡻ḄḄ஺!"ᙠ$%&᝞(⊤)*+⊤Ḅ,ᢣ./MASM./Ḅ᪗12ᙠ$%ᵨEND⊤᡻Ḅ,456789Ḅᢣ:2ᙠ$%ᨵ<=⊤>?2@᝞INT20HᡈMOVAX,4COOHINT21HBRETC஺

274.19DEFᢣ:%GH◤⌕KPTRL+BVALDB10H,20HWVALDW1000H(l)MOVAL,BVALM◤⌕(2)MOVDL,[BX]M◤⌕(3)SUB[BX],2◤⌕,SUBBYTEPTR[BX],2(4)MOVCL,WVAL◤⌕2᝞MOVCL,BYTEPTRWVAL(5)ADDAL,BVAL+1M◤⌕*+OPQ஺✌”ᐭU,VWXVWXᵯZ[\]^_`a*ᫀcdefᓝᓶ⚓T7T-~~k----~~~TT-T—-------------m⚣ᦟEp^3.~ᡃrEpststEp~uvwὅ+yzᩭ$+]^4.1ᢣEᑡᢣ:Ḅ┯~+(l)MOVAH,BXᘤMᓛ(2)MOV[BX],|SI|M,ᘤᦪ(3)MOVAX,|SI][D1|[SI][DI]Mkᵨ(4)MOVMYDAT[BX][SI],ES:AXAXᘤMᵨ(5)MOVBYTEPTR[BX],10001000k⁚Ḅ(6)MOVBX,OFFSETMYDAT[SI]MYDATব],ᙢᙬ2MᵨOFFSET(7)MOVCS,AXCSMᵨḄᘤ(8)MOVECX,AXᦪḄᦪM*+OPQ஺4.2E☢GHᢣ:,¢?Ḅ)(Ꮇ¥OP1,OP2,ᵨDBḄ¦§)(1)CMP15,BX┯2©ᓽᦪM«Ḅᦪ(2)CMPOP1,25(3)CMPOP1,OP2┯2M,ᘤᦪ(4)CMPAX,OP1┯2Mᓛ2&«CMPax,wordptropl*+OPQ஺4.3Ꮇ¥Eᑡᢣ:%Ḅᡠᨵ᪗tLᙳ«®ឋ«Ḅ¦§2ᢣEᑡGHᢣ:,¢?Ḅ)!"Ḅ┯~,°±)(1)MOVBP,AL┯2ᘤMᓛফMOVWORD_OP[BX+4*3][DI],SP(3)MOVWORD_OP1,WORD_OP2┯2M,ᘤᦪ(4)MOVAX,WORD_OP1|DX]³2DXMᵨ´ᘤµᙬ

28(5)MOVSAVE_WORD,DS(6)MOVSP,SS:DATA_WORD[BX][SI](7)MOV[BX][SI],2┯2[BX][SI]¶ᢣᦪMOVAX,WORD_OP1+WORD_OP2(9)MOVAX,WORD_OP1-WORD_OP2+100(10)MOVWORD_OP1,WORD.OP1-WORD_OP2*+OPQ஺4.4Ꮇ¥VARIVAR2«¦§2LAB«᪗·2DᢣEᑡᢣ:Ḅ┯~ᜐ+(l)ADDVARLVAR2M,ᘤᦪ(2)SUBAL,VARIᦪMᓛ(3)JMPLAB[SI]LAB,᪗·5M,¦§z2¹☢MK[SI](4)JNZVAR1VAR1,¦§5M,᪗·(5)JMPNEARLAB&ᵨNEARPTR*+OPQ஺4.5º»EᑡᡠᑖḄ½B¾¿ᓄḄᦪÁ஺(1)BYTE_VARDB'BYTE<12,-12H,3DUP(0,?,2DUP(1,2),?)ফWORD.VARDW5DUP(0,l,2),?,5,'BY'ÂTE',256H*+*ᫀ᝞E»ᡠ஺4.6Dᑡᔜ=>?2./Ä5150Hᐭkᘤ%(᝞+DW5150H)o4.5⚪*ᫀ42H59H54H45H0DHEEH00H01H02H01H02H00H01H02H01H02HBYTEVAR

29OOHOOHO1HOOH02HOOHFBHFFHOOH59H42H45H54H56H02HWORD_VARÆ☢ᑁÈÉÊ4Ë*+DW5150HDB5OH,51HDBTQ'DW2QP'ORG5150HDW$4.7¥ÌkᦪDATASG,ᐸ%EL¦§ᡈᦪ¦§஺(1)FLD1B«LΦ§+"personalcomputer'(2)FLD2B«ᓝÏᑴᦪ⁚¦§+32(3)FLD3B«ᓝÑÏᑴᦪ⁚¦§+20(4)FLD4B«ÒÏᑴᦪ⁚¦§+01011001মFLD5B«ᦪḄASCHL⁚¦§+32654(6)FLD6B«10ÔḄ⁚¦§ÕFLD7B«Ô\z(ASCIIṹ)Bᐸᦪ§(ᓝÏᑴᦪ)Ḅ⊤Ö+PART120PART250

30PART314(8)FLD1W«ᓝÑÏᑴᦪ¦§+FFFO×FLD2W«ÒÏᑴᦪḄ¦§+01011001(10)FLD3W«ÕÔ\⊤Ḅᙢᙬ¦§(11)FLD4W«ᒹÙ5ᓝÏᑴᦪḄ¦§:5,6,7,8,9(12)FLD5W«5ÔḄ¦§(13)FLD6W«Û%ᦪ¦§⁚ᦪ¦§Ḅᙢᙬ஺*+DATASGSEGMENTFLD1BDB4personalcomputer5FLD2BDB32FLD3BDB20HFLD4BDB01011001BFLD5BDB32654'FLD6BDB10DUP(0)FLD7BDBTARTT,20DB'PART2',50DB4PART3\14FLD1WDW0FFF0HFLD2WDW01011001BFLD3WDWFLD7BFLD4WDW5,6,7,8,9FLD5WDW5DUP(0)FLD6WDWFLD1W-FLD1BDATASGENDS4.8Ꮇ¥%Ḅᦪ᝞E+PARTNODW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQUS-PARTNOÜPLENTHḄÁ«<Ý)!⊤°±Þ)*+PLENTH=22=16H,!⊤¦§PARTNOஹPNAMEஹCOUNTàᐳᓰᵨḄᓫᐗᦪ(⁚ᦪ)஺4.9ᨵL·᝞E+BUFFDB1,2,3J123'EBUFFDB0LEQUEBUFF-BUFFÜLḄÁ,<Ý)*+L=6஺4.10Ꮇ¥%Ḅᦪ᝞E+LNAMEDB30DUP(?)ADDRESSDB30DUP(?)CITYDB15DUP(?)CODE_L1STDB1,7,8,3,2পᵨkᩩMOVᢣ:ÆLNAMEḄᙢᙬçᐭAX஺

31(2)ᵨkᩩᢣ:ÆCODE_LISTḄᜮ⁚ḄᑁÈçᐭSLবᵨkᩩéCODE_LENGTHḄÁC´CODE_LISTêḄë▭íî஺*+(1)MOVAX,OFFSETLNAME(2)MOVSI,WORDPTRCODE.LIST(3)CODE_LENGTHEQU$-CODE_LISTïᓃñòçᙠCODEJLIST¹4.11Dᑏkô᦮ḄᦪDATA_SEG,!Ä᦮ᦪ5ö÷⁚2øÄ᦮ᦪ-1,0,2,54çᙠ10ᦪùDATA-LISTḄᜮ5ᓫᐗ%஺ᯠ¹2ᑏô᦮Ḅṹ2ᐸû«+ÄDATA_LIST%ᜮ5ᦪ%ḄᨬᜧÁᨬþÁᑖᐭMAXMINᓫᐗ%஺*+DATA_SEGSEGMENTNUMDB5DATA.LISTDW-1,0,2,5,4,5DUP(?)MAXDW?MINDW?DATA_SEGENDSCODE_SEGSEGMENTMAINPROCFARASSUMECS:CODE_SEGDS:DATA.SEGSTART:PUSHDS¥Ì67DOSSUBAX,AXPUSHAXMOVAX,DATA_SEGÿDSMOVDS,AXMOVCX,4LEABX,DATAJUSTMOVAX,[BX]MOVMAX,AXMOVMIN,AXROUT1:ADDBX,2MOVAX,[BX]CMPAX,MAXJNGEROUT2MOVMAX,AXROUT2:CMPAX,MINJNLEROUT3MOVMIN,AXROUT3:LOOPROUT1RETMAINENDPCODE_SEGENDSENDSTART4.12᝞:

32ALPHAEQU100BETAEQU25GAMMAEQU2ᑡ⊤Ḅ(1)ALPHA*100+BETA=2729H(2)ALPHAMODGAMMA+BETA=19H(3)(ALPHA+2)*BETA-2=9F4H(4)(BETA/3)MOD5=3H(5)(ALPHA+3)*(BETAMODGAMMA)=67H(6)ALPHAGEGAMMA=0FFFFH(7)BETAAND7=01H(8)GAMMAOR3=03H஺4.13"#☢Ḅᦪ&'()*ᩩMOVᢣ-ᑖ/01ᡂ34(6ᵨ8ᓽᦪ:⊤;)TABLEADWI0DUP(?)TABLEBDB10DUP(?)TABLECDB'1234'1τMOVAX,LENGTHTABLEA01ᡂMOVAX,000AHMOVBL,LENGTHTABLEB01ᡂMOVBL,000AHMOVCL,LENGTHTABLEC01ᡂMOVCL,0001H஺4.14"#☢Ḅᦪ&'()ᔜᩩMOVᢣ-ᓫ?᡻AB)ᨵᐵEFᘤḄᑁI34FLDBDB?TABLEADW20DUP(?)TABLEBDB'ABCD'(1)MOVAX,TYPEFLDB(AX)=0001H(2)MOVAX,TYPETABLEA(AX)=0002H(3)MOVCX,LENGTHTABLEA(CX)=0014H(4)MOVDX,SIZETABLEA(DX)=0028H(5)MOVCX,LENGTHTABLEB(CX)=0001H஺4.15ᢣᑡJKL⊤:Ḅ┯N)OᦋQR஺(1)DATA_SEGSEGDATA_SEGSEGMENT(JKL┯)(2)SEGMENTCODE)SEGNAMESEGMENT'CODE’(STU)(3)MYDATASEGMENT/DATAMYDATASEGMENT■■τENDSMYDATAENDS(STU)(4)MAIN_PROCPROCFARᑤ◀ENDMAIN_PROCX6YIIIENDMAIN_PROCMAIN_PROCENDPZ[\ᣚ^_MAIN_PROCENDPENDMAIN_PROC஺4.16ᢥ☢Ḅ⌕bᑏḄ᪾e

33(1)ᦪ&Ḅ^_fOEOOOH)ᦪ&g'(hi100U⁚Ḅᦪk)ᐸmnoឋqUrU⁚ফᚮ᪘fv)kTwSTACK(3)xṹgᢣ'EFᘤ)ᢣ'zf1000H)ᨵᐵEFᘤ(4)஺Ḅ᪾e᝞DATA_SEGSEGMENTATOEOOOHARRAY_BLABELBYTEARRAY_WDW50DUP(?)DATA_SEGENDSYZ'(ᦪ&STACK_SEGSEGMENTPARASTACK'STACK;DW100HDUP(?)TOSLABELWORDSTACK_SEGENDSYZ'(ᚮ᪘CODE_SEGSEGMENTMAINPROCFARASSUMECS:CODE_SEGDS:DATA_SEGSS:STACK_SEGORG1000HSTART:MOVAX,STACK_SEGMOVSS,AXSSMOVSP,OFFSETTOSSPPUSHDS{_|}DOSSUBAX,AXPUSHAXMOVAX,DATA_SEGMOVDS,AXDS!;ᑖRETMAINENDPCODE_SEGENDSYZ'(xṹENDSTART4.17ᑏhi᦮ḄᙠxṹC_SEGg)⌕bᦪ&D_SEGgḄAUGEND▬E_SEGgḄADDEND)OFᙠD_SEGgḄSUMg஺ᐸgAUGENDஹADDENDSUMᙳwᦪ)AUGENDw99251,ADDENDw-15962஺᝞D_SEGSEGMENTAUGWLABELWORDAUGENDDD99251SUMDD?D_SEGENDSYZ'(ᦪ&

34E_SEGSEGMENTADDWLABELWORDADDENDDD-15962E_SEGENDSYZ'(▬C_SEGSEGMENTMAINPROCFARASSUMECS:C_SEG,DS:D_SEQES:E_SEGSTART:PUSHDS{_|}DOSSUBAX,AXPUSHAXMOVAX,D_SEGMOVDS,AXDSMOVAX,E_SEGMOVES,AXESMOVAX,AUGWY6ᩩᢣ-AMOVBX,AUGW+2ADDAX,ES:ADDWADCBX,ES:ADDW+2ὃ⇋ᨵᦪMOVWORDPTRSUM,AXMOVWORDPTR[SUM+2],BXRETMAINENDPC_SEGENDSYZ'(xṹENDSTART4.18⊤;ḄKL᡻AḄRḄ/஺¡ᙠ¢g£᝞¤⊤;⊤;ḄKLᢣ;01MASM01Ḅ᪗¦)ᙠ¢gᵨEND⊤;᡻AḄ§A¨|}KL©ªḄᢣ-)ᙠ¢gᨵ«⊤;:)¬᝞INT20HᡈMOVAX,4C00HINT21HY®RET஺4.19¯°ᢣ-g±²◤⌕ZPTRKLBVALDB10H,20HWVALDW1000H(l)MOVAL,BVAL◤⌕(2)MOVDL,[BX]◤⌕(3)SUB[BX],2◤⌕)SUBBYTEPTR[BX],2(4)MOVCL,WVAL◤⌕)᝞MOVCL,BYTEPTRWVAL(5)ADDAL,BVAL+1◤⌕஺

35·ᳮᐭº½½ᵯ¿ÀÁÂÃÄÅÆᫀ¸µÍ⚣ᦟÊ»¼ὃẆÉÊËÌËÌÊᕒÐÑÒLὅÔTᩭ¢ÂÃ5.1¯1ᑏhi01Ö)⌕b"×ØÙᐭḄvᑏUÚᵨᜧᑏUÚÜ;ᩭ஺᝞BEGIN:MOVAH,1f×ØÙᐭhiUḄDOSÝᵨINT21HCMPALJa'ÙᐭU'a'ᔩJBSTOPCMPAL,'z*ÙᐭU2,ᔩJASTOPSUBAL,20H:ßᣚwᜧᑏUÚ)ᵨANDAL,1101U11BX6MOVDL,ALÜ;hiUḄDOSÝᵨMOVAH,2INT21HJMPBEGINSTOP:RET5.21ᑏ)f×ØàᦈhivᑏUÚ)ᯠBãḄäåUBæU)çᢥèÜ;é*iU஺᝞BEGIN:MOVAH,1f×ØÙᐭhiUḄDOSÝᵨINT21HCMPALJa'ÙᐭUீᓃ’ᔩ?JBSTOPCMPAL,ÙᐭUZᔩJASTOPDECALîᑮäåUMOVDL,ALðᜓÜ;*iUMOVCX,3DISPLAY:MOVAH,2Ü;hiUḄDOSÝᵨINT21HINCDLLOOPDISPLAYSTOP:RET

365.3òAXEFᘤgḄ16^ᦪᑖᡂ4k)ók4^)ᯠBéôkᦪᑖ/ᙠALஹBLஹCLDLg஺᝞DSEGSEGMENTSTOREDB4DUP(?)DSEGENDS■ττBEGIN:MOVCL,4õöô÷MOVCH,4øùô÷LEABX,STOREA10:MOVDX,AXANDDX,OFHúAXḄûô^MOV|BX],DLûô^FᐭSTOREgINCBXSHRAX,CLüöô÷DECCHJNZA10øùô÷ýṹBIO:MOVDL,STOREôkᦪᑖ/ᙠALஹBLஹCLDLgMOVCL,STORE+1MOVBL,STORE+2MOVAL,STORE+3STOP:RET5.4¯1ᑏh)⌕b¬þ[iUÿSTRING1STRING2ᡠᔲᐰᑣMATCH"ᑣNOMATCH஺᝞DSEGSEGMENTSTRING1DBiamastudent/STRING2DBiamastudent!?YESDB'MATCH,ODH,OAH,$NODB'NOMATCH',ODH,OAH,'$'DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGES:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSMOVES,AXES»BEGIN:LEASI,STRING1!"#ᢣ%Ḅ'LEADI,STRING2

37CLDMOVCX,STRING2-STRING1REPECMPSB!"#JNEDISPNOLEADX,YESMATCHJMPDISPLAYDISPNO:LEADX,NONOMATCHDISPLAY:MOVAH,9()!ḄDOS*ᵨINT21HRETMAINENDPCSEGENDS,-./0ṹ2ENDSTART5.534ᑏ(⌕789:;<ᦈ())>ᦪN,ᯠABCND(BCḄASCIIṹF07)஺2᝞BEGIN:MOVAH,19:;Gᐭ()ḄDOS*ᵨINT21HSUBAL,'0'JBSTOPGᐭᔩJCMPAL,9Gᐭ9ᔩJJASTOPCBWMOVCX,AXBCDᦪNJCXZSTOPBELL:MOVDL,07HKᜓBCMOVAH,2()ḄDOS*ᵨM▭FBCINT21HCALLDELAY100msOP100msLOOPBELLSTOP:RET5.64ᑏQ()ᒹᨵ20)ᦪTḄᦪUMᑖᡂX)ᦪUYᦪᦪUPZᦪᦪUN,[ᑖ\]^X)ᦪU_ᦪTḄ)ᦪ`ᩭ஺᝞DSEGSEGMENTCOUNTEQU20ARRAYDW20DUP(?)bcᦪUCOUNT1DB0bcYᦪḄ)ᦪARRAY1DW20DUP(?)bcYᦪCOUNT2DB0bcZᦪḄ)ᦪARRAY2DW20DUP(?)bcZᦪZHENDB0DH,0AH,*ThepositivenumberisYᦪḄ)ᦪFUDB0DH,0AH,ThenegativenumberisZᦪḄ)ᦪCRLFDB0DH,0AH,'$'

38DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSBEGIN:MOVCX,COUNTLEABX,ARRAYLEASI,ARRAY1LEADI,ARRAY2BEGIN1:MOVAX,[BX]CMPAX,0ZᦪṹJJSFUSHUMOV[SI],AXYᦪbᐭYᦪᦪUINCCOUNT1Yᦪ)ᦪ+1ADDSI,2JMPSHORTNEXTFUSHU:MOV[DI],AXZᦪbᐭZᦪᦪUINCCOUNT2Zᦪ)ᦪ+1ADDDI,2NEXT:ADDBX,2LOOPBEGIN1LEADX,ZHENYᦪ)ᦪMOVAL,COUNT1CALLDISPLAY*dLEADX,FUZᦪ)ᦪMOVAL,COUNT2CALLDISPLAY*dRETMAINENDPDISPLAYFROCNEARdMOVAH,9()!ḄDOS*ᵨINT21HAAMQ(AL)_ḄefᑴᦪhᣚFe)jklBCDṹADDAHJO,mF09ḄASCIIṹMOVDL,AHMOVAH,2()ḄDOS*ᵨINT21HADDAL,t0,mF09ḄASCHṹ

39MOVDL,ALMOVAH,2()ḄDOS*ᵨINT21HLEADX,CRLFnᣚoMOVAH,9()!ḄDOS*ᵨINT21HRETDISPLAYENDPdpqCSEGENDS,-./0ṹ2ENDSTART5.734ᑏ()r4st7`✌ᙢᙬFDATAḄ100DᦪU_ḄᨬyᏔᦪ[]{bcᙠAX_஺2᝞BEGIN:MOVBX,0MOVCX,100COMPARE:MOVAX,DATA[BX]}ᦪUḄ~()ᏔᦪADDBX,2TESTAX,01HᏔᦪᔩJLOOPNZCOMPARE"#()ᦪJNZSTOPᨵᏔᦪ⌨`JCXZSTOPᨬA)ᦪᏔᦪᓽFᨬyᏔᦪ⌨`COMPARE1:MOVDX,DATA[BX]:}ᦪUḄ()ᏔᦪADDBX,2TESTDX,01HᏔᦪᔩJJNZNEXT"#()ᦪCMPAX,DX(AX)<(DX)ᔩJJLENEXTMOVAX,DX(AX)<(DX),ᑣᣚ(AX)FᨬyᏔᦪNEXT:LOOPCOMPARE1STOP:RET5.8]AX_bcḄ16>efᑴᦪK8)efᑴḄ“ᑖ(⁚”஺34ᑏ⌕7ᦪ(F3(ᓽ11B)Ḅᑖ(⁚ᦪ[Qᦪ(ᓽ11BḄ)ᦪ)ᙠ-`ᩭ஺2᝞BEGIN:MOVDL,0:ᦪ'MOVCX,8COMPARE:TESTAX,03Hᦪ03ᔩJJNZNOEQUALhINCDLᦪNOEQUAL:RORAX,1Kᜓᑨ()ᦪRORAX,1LOOPCOMPAREADDDL,OQᦪhᣚFASCIIṹMOVAH,2fo

401NT21HSTOP:RET5.934ᑏ()r4st⌕79:;<ᦈ•)>Ḅ16fᑴᦪ[ᙠ-{Ḅefᑴᦪ஺2᝞BEGIN:MOVBX,0ᵨbc>Ḅ16fᑴᦪMOVCH,4MOVCL,4INPUT:SHLBX,CLQ☢GᐭḄᦪ4>MOVAH,19:;}ᦪINT21HCMPAL,30H<0ᔩJJBINPUT஺FḄᦪGᐭCMPAL,39H‘09’ᔩJJAAFhAFḄᜐᳮANDAL,OFHhᣚF0000B1001BJMPBINARYAF:ANDAL,1101HUB:hᣚFᜧᑏCMPAL,41H¡FᔩJJAINPUTAFḄᦪGᐭANDAL,OFHhᣚF1010B-1111BADDAL,9BINARY:ORBL,ALQ:;GᐭḄᦪfoUᔠDELCHJNZINPUTDISPN:MOVCX,16Q16>efᑴᦪ(>>ᙢhᣚᡂASCIIṹDISP:MOVDL,0ROLBX,1RCLDL,1ORDL,30HMOVAH,2foINT21HLOOPDISPSTOP:RET5.10ᨵ(2£ᦻᐸm¦§FENG,[,$pq஺34ᑏ(©ªᓫ¬SUNᙠᦻ_Ḅ`Dᦪ[,®¯“SUNxxxx”`Dᦪ஺᝞DSEGSEGMENTENGDB'Hereissun,sunDISPDBlSUN'DATDB'0000',0DH,0AH,'$'KEYWORDDB'sun'

41DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEG,ES:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSMOVES,AXESBEGIN:MOVAX,0MOVDX,DISP-ENG-2°ENGḄ±²³´D"#sun,µ¶"#Dᦪ2LEABX,ENGCOMP:MOVDI,BXLEASI,KEYWORDMOVCX,3REPECMPSB!"#JNZNOMATCHINCAXSUNḄ)ᦪ·1ADDBX,2NOMATCH:INCBXᢣᔣENGḄ()DECDXJNZCOMPDONE:MOVCH,4QDᦪhᣚF16fᑴᦪḄASCIIṹMOVCL,4LEABX,DAThᣚp¹bᐭDATᓫᐗ_DONE1:ROLAX,CLMOVDX,AXANDDL,OFH}(>16fᑴᦪADDDL,30HCMPDL,39HJLESTOREADDDL,07H“AF”ᡠ,⌕·7STORE:MOV[BX],DLhᣚp¹bᐭDATᓫᐗ_INCBXDECCHJNZDONE1DISPLAY:LEADX,DISP!³QDISPDAT(»¼MOVAH,09HINT21HRETMAINENDPCSEGENDS,-./0ṹ2

42ENDSTART5.119:;Gᐭ(½ᑡ,$FpqḄ!ᯠAªᐸ_Ḅjᦪᦪ[`ᦪp¹஺2᝞DSEGSEGMENTBUFFDB50DUP))COUNTDW0DSEGENDSτ■■BEGIN:LEABX,BUFFMOVCOUNT,0INPUT:MOVAH,019:;Gᐭ()Ḅ¿8*ᵨINT21HMOV[BX],ALINCBXCMPALJ$$pqᔩJJNZINPUTÀÁGᐭLEABX,BUFFªjᦪfoᦪNEXT:MOVCL,[BX]INCBXCMPCL,T$pqᑣhÂJZDISPCMPCL,30Hy0jᦪJBNEXTCMPCL,39Hᜧ9jᦪJANEXTINCCOUNT)ᦪ+1JMPNEXTDISP:"16fᑴᦪ2(ḕᶍ)5.12ᨵ()✌ᙢᙬFMEMḄ100DᦪU34ᑴᑤ◀ᦪU_ᡠᨵF஺Ḅ⚗[QAÁ⚗ᔣklᨬAQᦪUḄᒕÉÊᑖ⊡-0஺᝞DSEGSEGMENTMEMDW100DUP(?)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEG

43MOVDS,AXDSBEGIN:MOVSI,(100-1)*2(SI)ᢣᔣMEMḄÌᐗÍḄ✌ᙢᙬMOVBX,-2ᙢᙬᢣ┐Ḅ'MOVCX,100COMP:ADDBX,2CMPMEM[BX],0JZCONSLOOPCOMPJMPFINISH"#ÏÐÑ0ᑣpqCONS:MOVDI,BXCONS1:CMPDI,SIᑮÏᨬAᓫᐗṹJJAENOMOVMOVAX,MEMIDI+2]A☢ḄᐗÍᔣ>MOVMEM[DI],AXADDDI,2JMPCONS1NOMOV:MOVWORDPTR[SI],0ᨬAᓫᐗ⊡0LOOPCOMPFINISH:RETMAINENDPCSEGENDS,-./0ṹ2ENDSTART5.13ᙠSTRINGᑮSTRING+99ᓫᐗ_bcḼ()!34ᑴ()Ô3!_ᔲbᙠᦪ᝞ᨵᑣ]CLḄ~5>1,ᔲᑣQ>0஺᝞DSEGSEGMENTSTRINGDB100DUP(?)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSBEGIN:MOVSI,0(SI)Fᙢᙬᢣ┐ḄmᓄMOVCX,100REPEAT:MOVAL,STRING[SI]CMPAL,30HJBGO_ONCMPAL,39H

44JAGO_ONORCL,20Hbᙠᦪ]CLḄ~5>1JMPEXITGO_ON:INCSILOOPREPEATANDCL,ODFHbᙠᦪ]CLḄ~5>0EXIT:RETMAINENDPCSEGENDS,-./0ṹ2ENDSTART5.14ᙠ✌ᙢᙬFTABLEḄᦪU_ᢥ⌴ØDbcḼ100H)16>⊡ṹᦪ34ᑏ()]`DᦪᨬÙḄᦪÚᐸ`Dᦪᑖ\bcAXCX_஺᝞DSEGSEGMENTTABLEDW100HDUP(?)ᦪU_ḄᦪTᢥØ᣸ᑡḄDATADW?COUNTDW0DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSBEGIN:MOVCX,100HÜÝᦪᘤMOVSI,0NEXT:MOVDX,0MOVAX,TABLE[SI]COMP:CMPTABLE[SI],AX°()ᦪḄ`DᦪJNEADDRINCDXADDSI,2LOOPCOMPADDR:CMPDX,COUNT¶ᦪ`ḄDᦪᨬÙᔩJJLEDONEMOVCOUNT,DX߶ᦪ`ḄDᦪᨬÙàDᦪMOVDATA,AXà¶ᦪDONE:LOOPNEXTKᜓ}()ᦪMOVCX,COUNT`ᨬÙḄDᦪbᐭ(CX)MOVAX,DATA`ᨬÙḄᦪbᐭ(AX)

45RETMAINENDPCSEGENDS,-./0ṹ2ENDSTART5.15ᦪT2_Ð./Ï()ᨵn)ᦪTḄᦪUM,34ᑏ(7`M_áªᨬᜧḄᦪ]{cᙠᦪT2ḄM+2nᓫᐗ_[QᦪḄâᙢᙬbcᙠM+2(n+l)ᓫᐗ_஺᝞DSEGSEGMENTnEQU100HᎷn=100HMDWnDUP(?)DATADW?M+2nᓫᐗADDRDW?M+2(n+I)ᓫᐗDSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEGDS:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSBEGIN:MOVCX,nÜÝᦪᘤLEAD1,MMOVAX,|DI]}~()ᦪMOVADDR,DIàáªᨬᜧḄᦪḄᙢᙬCMPAX,0¶ᦪYᦪᔩJJNSZHENYᦪᓽFáªhÂᑨ()ᦪNEGAXYᦪmFᐸáªZHEN:MOVBX,|DI]CMPBX,0¶ᦪYᦪᔩJJNSCOMPYᦪᓽFáªhÂ"#áªᜧyNEGBXYᦪmFᐸáªCOMP:CMPAX,BXᑨáªᜧyJAEADDRESSMOVAX,BX(AX)<(BX),ä(AX)_FáªᨬᜧḄᦪMOVADDR.DIàáªᨬᜧḄᦪḄᙢᙬADDRESS:ADDDI,2LOOPZHENMOVDATA,AXà¶ᦪRETMAINENDPCSEGENDS,-./0ṹ2

46ENDSTART5.16ᙠ✌ᙢᙬFDATAḄᦪU_bcḼ100H)16>⊡ṹᦪ34ᑏ()7`{åḄæᙳcᙠAXèbᘤ_[7`ᦪU_ᨵÙé)ᦪy¶æᙳQp¹cᙠBXèbᘤ_஺᝞DSEGSEGMENTDATADW100HDUP(?)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSBEGIN:MOVCX,100HÜÝᦪᘤMOVSI,0MOVBX,0((DI),(BX))Ḅ'MOVDI,0NEXT:MOVAX,DATA[SI]CWDADDBX,AX7ADCDI,DX·-f>>ADDSI,2LOOPNEXTMOVDX,DIQ((DI),(BX))_Ḅê·cᐭ((DX),(AX))_MOVAX,BXMOVCX,100HIDIVCXëìᦪ7æᙳcᐭ(AX)_MOVBX,0MOVSI,0COMP:CMPAX,DATA[SI]íîyæᙳḄᦪJLENOINCBXyæᙳᦪḄ)ᦪ+1NO:ADDSI,2LOOPCOMPRETMAINENDPCSEGENDS,-./0ṹ2ENDSTART

475.1734ᑴ()]AX_Ḅ16fᑴᦪhᣚFASCIIṹ[QªïḄASCIIṹðDbcᑮMEMᦪU_Ḅ)⁚_஺ñ᝞ò(AX)=2A49HP᡻oAMEM_Ḅ4)⁚ᑁõF39H,34H,41H,32H஺᝞DSEGSEGMENTMEMDB4DUP(?)NDW2A49HDSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEGDS:DSEGSTART:PUSHDSDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXDSBEGIN:MOVCH,4ÜÝᦪᘤMOVCL,4MOVAX,NLEABX,MEMROTATE:MOVDUAL9ᨬö>÷hᣚFASCIIṹANDDL,OFHADDDL,30HCMPDL,3AH09ᔩJJLNEXTADDDL,07HAFNEXT:MOV[BX],DLhᣚḄASCIIṹ〈ᐭMEM_INCBXRORAX,CLKᜓhᣚ(>DECCHJNZROTATERETMAINENDPCSEGENDS,-./0ṹ2ENDSTART5.18]0100DùḄ30)ᦪbᐭ,GRADEF✌ᙢᙬḄ30ᦪU_GRADE+i⊤ûìFi+1ḄûüḄᡂý஺þ()ᦪURANKF30)ûüḄ§D⊤ᐸ_RANK+iḄᑁõûìFi+1ḄûüḄ§D஺4ᑏ(᪷GRADEḄᡂᐭRANKᦪ஺(ḄᡂḄᦪ1஺)᝞!DSEGSEGMENTGRADEDW30DUP(?)"Ꮇ$%⚜ᐜ()30Ḅᡂ

48RANKDW30DUP(?)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0BEGIN:MOVDI,0MOVCX,30"᜜234ᦪᘤLOOPI:PUSHCXMOVCX,30"ᑁ234ᦪᘤMOVSI,0MOVAX,GRADE[DI]MOVDX,1"789:1LOOP2:CMPGRADE[SI],AX"ᡂ;?@AṹCENDSTART5.19%DᦪAᒹF15GHIḄ᦮ᦪᦪBᒹF20GHIḄ᦮ᦪ஺KLᑴNOᙠAQᙠBRSḄ᦮ᦪ(TᦪC஺᝞!DSEGSEGMENTADW15DUP(?)BDW20DUP(?)CDW15DUP஺’)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEG

49START:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0BEGIN:MOVSI,0MOVBX,0MOVCX,15"᜜234ᦪᘤLOOP1:PUSHCXMOVCX,20"ᑁ234ᦪᘤMOVDI,0MOVAX,A[SI]"VAᦪḄᦪLOOP2:CMPB[DI],AX"WBᦪḄᦪIᔩYJNENOMOVC[BX],AX"I(ᐭCᦪADDBX,2NO:ADDDI,2LOOPLOOP2ADDSI,2POPCXLOOPLOOP1RETMAINENDPCSEGENDS"=>?@AṹCENDSTART5.20$ᙠAஹBWCᓫᐗᑖ](TḼ_ᦪ஺`_ᦪaHb0,ᑣdR._ᦪfW(TᙠDᓫᐗ"`ᐸᨵᦪ90,ᑣNᐸijᓫᐗkl0஺mLᑏo஺᝞!DSEGSEGMENTADW?BDW?CDW?DDW0DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0

50BEGIN:CMPA,0JENEXTCMPB,0JENEXTCMPC,0JENEXTMOVAX,AADDAX,BADDAX,CMOVD,AXJMPSHORTEXITNEXT:MOVA,0MOVB,0MOVC,0EXIT:RETMAINENDPCSEGENDS"=>?@AṹCENDSTART5.21KLᑏ⌕d;<ᦪARRAYḄ_16q⊡ṹᦪs᪷;y᝞!z{(1)᝞v_ᦪaHIᑣy0:(2)᝞v_ᦪᨵ|ᦪIᑣy1"(3)᝞v_ᦪaIᑣy2஺᝞!DSEGSEGMENTARRAYDW3DUP(?)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEGDS:DSEGSTART:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0BEGIN:LEASI,ARRAYMOVDX,0"(DX)ᵨ(TᡠdḄuvMOVAX,[SI]MOVBX,[SI+2]CMPAX,BX";<:W:|jᦪbᔲIJNENEXT1INCDX

51NEXTl:CMP[SI+4],AX";<:W:_jᦪbᔲIJNENEXT2INCDXNEXT2:CMP[SI+4],BX";<:|W:_jᦪbᔲIJNENUMINCDXNUM:CMPDX,3JLDISPDECDXDISP:ADDDL,30H"ᣚ9ASCIIṹMOVAH,2"yINT21HRETMAINENDPCSEGENDS"=>?@AṹCENDSTART5.22ᐭ•ᑡ=,usᢥஹᦪஹᐸiᑖ4ᦪᨬyR_Ḅ4ᦪuv஺᝞!DSEGSEGMENTALPHABETDBᐭḄᦪ9$NUMBERDBᐭḄᦪᦪ9‘$OTHERDBᐭḄᐸiᦪ9$CRLFDBODH,0AH,$DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0BEGIN:MOVBX,0"4ᦪᘤMOVSI,0"ᦪ4ᦪᘤMOVDI,0"ᐸi4ᦪᘤINPUT:MOVAH,1"ᐭINT21HCMPAL,ODH"b,ᔩYJEDISPCMPAL,30H"ீᦪ0ᔩYJAENEXT1

52OTHER:INCDI"bᐸiJMPSHORTINPUTNEXT1:CMPAL,39H"ᦪ9ᔩYJANEXT2INCSI"bᦪJMPSHORTINPUTNEXT2:CMPAL,41H"ீAᔩYJAENEXT3JMPSHORTOTHER"bᐸiNEXT3:CMPAL,5AH"ZᔩYJANEXT4INCBX"bAZJMPSHORTINPUTNEXT4:CMPAL,61HீaᔩYJAENEXT5JMPSHORTOTHER"bᐸiNEXT5:CMPAL,7AH2ᔩYJASHORTOTHER"bᐸiINCBX"ba~zJMPSHORTINPUTDISP:LEADX,ALPHABETCALLDISPLAYLEADX,NUMBERMOVBX,SICALLDISPLAYLEADX,OTHERMOVBX,DICALLDISPLAYRETMAINENDPDISPLAYPROCNEARMOVAH,09H"yᵨINT21HCALLBINIHEX"NBX|ᑴᦪᣚ916ᑴyLEADX,CRLFMOVAH,09H"y,ᣚINT21HRETDISPLAYENDPBINIHEXPROCNEAR"BX|ᑴᦪᣚ916ᑴᦪyMOVCH,4ROTATE:MOVCL,4

53ROLBX,CLMOVDL,BLANDDL,OFHADDDL,30HCMPDL,3AH"bAFᔩYJLPRINT_ITADDDL,07HPRINT¡T:MOVAH,02H"yINT21HDECCHJNZROTATERETBINIHEXENDPCSEGENDS"=>?@AṹCENDSTART5.23%?@¢j᦮ᦪ£¤AWB,KLᑏ¥ᡂ!ᑡ(1)`jᦪᨵb᜻ᦪᑣ᜻ᦪ(ᐭAᏔᦪ(ᐭB;(2)`jᦪᙳ9᜻ᦪᑣjᦪ1(,ª£¤"(3)`jᦪᙳ9Ꮤᦪᑣj£¤ᙳHᦋ£஺᝞!DSEGSEGMENTADW?BDW?DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0BEGIN:MOVAX,AMOVBX,BXORAX,BXTESTAX,00()1HAWB¬9᜻ᦪᡈᏔᦪᔩYJZCLASSAWBa9᜻ᦪᡈᏔᦪ®TESTBX,0001HJZEXIT"B9Ꮤᦪ,®XCHGBX,A"A9Ꮤᦪ᜻ᦪ(ᐭA"¡MOVB,BX"Ꮤᦪ(ᐭBJMPEXIT

54CLASS:TESTBX,0001HAWBa9᜻ᦪᔩYJZEXIT"AWB¬9Ꮤᦪ®INCBINCAEXIT:RETMAINENDPCSEGENDS"=>?@AṹCENDSTART5.24Ꮇ$%Lᑴ)5°±i²ḄCᙢᙬWµ¶ᙢᙬ(TᙠᦪCḄ·¸⊤SINGLIST஺KLᑴ᪷ᐭḄ°±Lº»5,¼᡻¾°±Ḅ¿-஺᝞!DSEGSEGMENTSINGLISTDDSING1DDSING2DDSING3DDSING4DDSING5ERRMSGDB'Error!Invalidparameter!’,ODH,OAH,'$'DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEGDS:DSEGSTART:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0BEGIN:MOVAH,1"ᐭḄ°±Lº15INT21HCMPAL,ODHJZEXIT"b,ᑣuSUBALJIb15ᔩYJBERROR"ÁR┯ÃCMPAL,4JAERRORᜧ5,┯ÃMOVBX,OFFSETSINGLISTMULAX,4"(AX)=(AL)*4,Å°±Ḅ✌ᙢᙬᓰ4⁚ADDBX,AXJMPDWORDPTR[BX]"¼᡻°±ERROR:MOVDX,OFFSETERRMSGMOVAH,09HINT21H"y┯Ãz{

55JMPBEGINSING1:JMPBEGINSING2:JMPBEGINSING3:«JMPBEGINSING4::JMPBEGINSING5:JMPBEGINEXIT:RETMAINENDPCSEGENDS"=>?@AṹCENDSTART5.25Kᵨ8086ḄÉÊᢣÌLᑴ32qᦪW16qᦪIÉḄ"Íᵨ80386ḄÉÊᢣÌLᑴ32qᦪW16qᦪIÉḄs?ឋ;qEXIT:RETMAINENDP

56CSEGENDS"=>?@AṹCENDSTART80386Ḅ᝞!(Ꮇ$9Ѻᦪ).386DSEGSEGMENTMUL1DD?"32qÒÉᦪMUL2DW?"16qÉᦪMULODD0,0"ÉÓᵨ64qᓫᐗ(TDSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS"$*+,DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX".DS/0BEGIN:MOVZXEBX,MUL2"VÉᦪs0᡽Øᡂ32qMOVEAX,MUL1"VÒÉᦪMULEBXMOVDWORDPTRMULO,EAX"Õ(ÓḄÔqÙMOVDWORDPTR[MUL0+4],EDX"Õ(ÓḄqÙEXIT:RETMAINENDPCSEGENDS"=>?@AṹCENDSTART80386Ú32qÉÊÛÜᵨᩩᢣÌᓽߥᡂà8086ᑣ◤ᵨÖᑖÓÚj¥ᡂ஺5.26᝞ᦪCᙠ✌ᙢᙬ9MESS1Ḅᦪâᑁ(TḼãä935Ḅ⌕dNi²å〈ᑮ▬CḄéêâMESS2¼஺9᡻ᦔ᳛ëìí⌕îᵨMOVSDᢣÌᩭðS஺KLᑏ஺80386Ḅ᝞!.386.MODELSMALL.STACK100H.DATAMESSIDBt123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\?"ãä935Ḅ.FARDATAMESS2DB36DUP(?).CODESTART:MOVAX,@DATAMOVDS,AX".DS/0

57MOVAX,@FARDATAMOVES,AX".ES/0ASSUMEES:@FARDATABEGIN:LEAESLMESSILEAEDI,MESS2CLDMOVECX,(35+1)/4"Vå〈ḄᦪREPMOVSDMOVAX,4COOH"+ñIDOSINT21HENDSTART5.27Kᵨ;ò£ᙬóᙬôõLᑏ386⌕dNj64q᦮ᦪIsÕ(uv஺80386Ḅ᝞!.386.MODELSMALL.STACK100H.DATADATA1DQ?DATA2DQ?.CODESTART:MOVAX,@DATAMOVDS,AX".DS/0BEGIN:MOVESI,0MOVEAX,DWORDPTRDATA2|ESI*4]ADDDWORDPTRDATA1|ESI*4],EAXINCESIMOVEAX,DWORDPTRDATA2[ESI*4]ADCDWORDPTRDATA1[ESI*4],EAXMOVAX,4COOH"+,DOSINT21HENDSTART苴s页入门一学习序4Üö4Üöᵯøùúûüýþᫀ-⚣ᦟ员ὃẆHf一

58ὅᩭ6.1☢Ḅᨵ┯ᔩᨵ!"ᢣ$┯%஺CRAYPROCPUSHAXADDAX,BXRETENDPCRAY'ᨵ┯஺ᦋ)᝞CRAYPROCADDAX,BXRETCRAYENDP+CRAY,-!./ᙠENDPḄ1☢6.29BHF7H57H80HF0A0:00B0HᐜPUSH,SP-23PUSH,SP-2POP,SP+26.2⚪ᚮ᪘7SPᑁ9Ḅ:ᓄ-<ᚮ᪘=>ᘤSSḄᑁ9,0F0A0H,ᚮ᪘ᢣ@ᘤSPḄᑁ9,00B0H,ᐜ᡻BCᩩE8057HF0F79BHᑖHᐭ᪘ḄPUSHᢣJ!ᯠL᡻BMᩩPOPᢣJ஺NO$@PQRSᚮ᪘7SPᑁ9Ḅ:ᓄ-஺':ᓄ-᝞TQᡠ@6.3ᑖ᪆☢Ḅ!O$ᚮ᪘ᨬXYᔜᓫᐗḄᙢᙬ7ᑁ9஺S_SEGSEGMENTAT1000H+_`ᚮ᪘DW200DUP(?)+200*2=190HTOSLABELWORDS_SEGENDSC_SEGSEGMENT+_`aṹASSUMECS:C_SEGSS:S_SEGSTART:MOVAX,S_SEG

59(FLAGS)(AX)T_ADDR0000(DS)1000:0184:0186:0188:018A:018C:018ESP:01866.3⚪ᚮ᪘ᨬXYᔜᓫᐗḄᙢᙬ7ᑁ9MOVSS,AXMOVSP,OFFSETTOSPUSHDSMOVAX,0PUSHAXττ■PUSHT_ADDRPUSHAXPUSHF(■τPOPFPOPAXPOPT_ADDRRETC_SEGENDS+aṹcdENDSTART+cd'ᚮ᪘ᨬXYᔜᓫᐗḄᙢᙬ7ᑁ9᝞TQᡠ@6.4ᑖ᪆☢Ḅ!ᑏ$ᚮ᪘ᨬXYᔜᓫᐗḄᙢᙬ7ᑁ9஺STACKSEGMENTAT500H+_`ᚮ᪘DW128DUP(?)TOSLABELWORDSTACKENDS

60CODESEGMENT+_`aṹMAINPROCFAR+fgᑖASSUMECS:CODE,SS:STACKSTART:MOVAX,STACKMOVSS,AXMOVSP,OFFSETTOSPUSHDSSUBAX,AXPUSHAX+MAINPARTOFPROGRAMGOESHEREMOVAX,4321HCALLHTOARETMAINENDP+fgᑖcdHTOAPROCNEAR+HTOAhCMPAX,15JLEB1PUSHAX0500:00EC:00EE:00F0:00F2:00F4:00F6:00F8:00FA:00FC:00FESP:OOEEijPOPBPᙢᙬ0003HijPOPBPᙢᙬ0002HijPOPBPᙢᙬ0001Hfijᙢᙬ0000(DS)

616.4⚪ᚮ᪘ᨬXYᔜᓫᐗḄᙢᙬ7ᑁ9PUSHBPMOVBP,SPMOVBX,[BP+2]ANDBX,000FHMOV[BP+2],BXPOPBPMOVCL,4SHRAX,CLCALLHTOAPOPBPBl:ADDAL,30HCMPAL,3AHJLPRINTITADDAL,7HPRINTIT:MOVDL,ALMOVAH,2INT21HRETHOTAENDP+HOTAhcdCODEENDS+aṹcdENDSTART+cd'ᚮ᪘ᨬXYᔜᓫᐗḄᙢᙬ7ᑁ9᝞TkQᡠ@6.5☢,Mlmᓫ!"ᙠ☢ḄQnoᐭp᡻B-nḄᚮ᪘:ᓄ஺0000STACKSGSEGMENT000020|.DW32DUP(?)????]0040STACKSGENDS0000CODESGSEGMENTPARA'CODE'0000BEGINPROCFARASSUMECS:CODESG,SS:STACKSG0000IEPUSHDS00012BCOSUBAX,AX000350PUSHAX0004E80008RCALLB10

620007CBRET0008BEGINENDP0008BIOPROC0008E8000CRCALLCIO000BC3RET000CBIOENDP000CCIOPROC000CC3RET000DCIOENDP000DCODESGENDSENDBEGIN'᡻B-nḄᚮ᪘:ᓄ᝞Qᡠ@஺(0016H)(0018H)(001AH)(001CH)(001EH)(0020H)SP(DS)(0016H)(0018H)(001AH)(001CH)(001EH)(0020H)0000(DS)(0016H)(0018H)

63(001AH)(OO1CH)(OO1EH)(0020H)00070000(DS)0020H001EH001CH001AH(0016H)(0018H)(001AH)(001CH)(001EH)(0020H)OOOB00070000(DS)(0016H)(0018H)(001AH)(001CH)(001EH)(0020H)SPOOOB00070000(DS)

64(0016H)(0018H)(001AH)(001CH)(OO1EH)(0020H)OOOB00070000(DS)(0016H)(0018H)(001AH)(001CH)(001EH)(0020H)OOOB00070000(DS)0018H001AH001CH0020H(0016H)(0018H)(00IAH)(001CH)(001EH)(0020H)BEGINPUSHDSPUSHAXCALLBIO

65qrᙢᙬᚮ᪘6.6ᑏMhSKIPLINES,sᡂu$vBḄwx஺v$ḄBᦪᙠAX=>ᘤn஺'᝞CSEGSEGMENTSKIPLINESPROCFARASSUMECS:CSEGBEGIN:PUSHCXPUSHDXMOVCX,AXDISP:MOVDL,ODH+z@j{ᣚB!ᓽu$vBMOVAH,2+z@Ml~ḄDOSᵨINT21HMOVDL,0AHMOVAH,2+z@Ml~ḄDOSᵨINT21HLOOPDISPPOPDXPOPCXRETSKIPLINESENDPEND6.7ᨵ10lḄᡂᑖH,76,69,84,90,73,88,99,63,100F80ᑖ஺NᑴMlh6069ᑖ!7079ᑖ!8089ᑖ!9099ᑖF100ᑖḄᦪ!ᑖH>/ᑮS6,S7,S8,S9FS10ᓫᐗn஺'᝞DSEGSEGMENTRECORDDW76,69,84,90,73,88,99,63,100,80S6DW0S7DW0S8DW0S9DW0S10DW0DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS+ijDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX+DS

66BEGIN:MOVCX,10CALLCOUNT;LRETMAINENDPCOUNTPROCNEAR+ᡂhMOVSI,0NEXT:MOVAX,RECORD[SI]MOVBX,10+5,᪷ᡂS6Ḅᙢᙬ:ᓄDIVBL+((ᡂ)/106)ᡂ〈(BX)MOVBL,AL+pY(BH)ᢝ0¢:SUBBX,6+.£60ᑖkᡂSALBX,1+(BX)*2INCS6[BX]+S6,S6,S7,S8,S9FSI0ᓫᐗḄ✌ᙢᙬADDSI,2LOOPNEXTRETCOUNTENDP+COUNThcdCSEGENDS+k_`aṹENDSTART6.8ᑏMlᨵfFhc᪀Ḅ¦ᙽ஺hḄ¨ᦪ,MlN~⁚ᦪªḄ✌ᙢᙬTABLE,ᦪN7~CHAR஺⌕¬ᙠN~⁚ᦪªn®~CHAR,¯°±²~$³Ḅ´ᦪ஺fᑣ⌕¬¶·¸¹ᦈM»~¼½~⁚ᦪªTABLE,¯⌲lz@¶·¸uᐭḄ¿l~CHAR7ÀᙠTABLEᦪªn$³Ḅ´ᦪ஺(ÁᓄÂÃ!Ꮇ$³´ᦪW5,Åᵨ16ÆᑴÇEÀz@$ᩭ஺)'᝞DSEGSEGMENTTABLEDB255DUP(?)NDW255CHARDB?CHAR_NDB0+ᵨÉ°±CHAR$³Ḅ´ᦪCRLFDBODH,OAH,$DSEGENDS+k_`ᦪSTACKSEGMENTDW100DUP(?)TOSLABELWORDSTACKENDS+k_`ᚮ᪘CSEGSEGMENTMAINPROCFAR

67ASSUMECS:CSEG,DS:DSEG,SS:STACKSTART:MOVAX,STACKMOVSS,AX+SSMOVSP,OFFSETTOS+SPPUSHDS+ijDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX+DSBEGIN:MOVBX,0MOVCX,255+ᨬÊuᐭ255l~INPUT:MOVAH,1+¶·¸¹ᦈMl~ḄDOSwxᵨINT21HCMPAL,ODH+uᐭj{cduᐭJZIN_NMOVTABLE[BX],ALINCBXLOOPINPUTIN_N:MOVN,BX+TABLEᦪªnḄ~lᦪ〈NCALLDISP_CRLFIN_CHAR:MOVAH,1+¶·¸¹ᦈMl~¯jzḄDOSwxᵨINT21HCMPAL,0DH+uᐭj{cdJZEXITMOVCHAR,AL+uᐭḄ~>ᐭCHARᓫᐗCALLSEARCH+ËÌ~hMOVDL,Í+z@“:"!ᙠ~CHARÑuᐭYjzÒḄL☢MOVAH,2+z@Ml~INT21HMOVDL,CHAR_N+3z@CHAR$³Ḅ´ᦪÑ´ᦪS15ANDDL,0FHADDDL,30HCMPDL,39HJBENEXTADDDL,07H+,AFNEXT:MOVAH,2z@Ml~INT21HCALLDISP.CRLFJMPSHORTIN_CHAREXIT:RETMAINENDPSEARCHPROCNEAR+ËÌ~hMOVSI,0

68MOVCX,NMOVCHAR_N,0MOVAL,CHARROTATE:CMPAL,TABLE[SI]JNZROTATE1INCCHAR_N+ËÌᑮ~!ᑣ$³´ᦪ+1ROTATE1:INCSILOOPROTATERETSEARCHENDP+SEARCHhcdDISP_CRLFPROCNEAR+z@j{ᣚBhLEADX,CRLFMOVAH,09HINT21HRETDISP_CRLFENDP:DISP_CRLFhcdCSEGENDS+k_`aṹENDSTART6.9ᑏMlhÓᝅc᪀Ḅ¦ᙽ!ᑖH¶·¸uᐭÕ78l~Ḅᵯ×Øṹ!¯M_ḄÙz@$ᩭ஺fTELISTz@Ú@“INPUTNAME"ᵨhINPUT_NAMEuᐭÕ+z@Ú@“INPUTATELEPHONENUMBER"+ᵨhINPHONEuᐭᵯ×Øṹ+ᵨhPRINTLINEz@Õ7ᵯ×Øṹ஺hINPUT_NAMEᵨ·¸uᐭhGETCHAR,EuᐭḄÕ>/ᙠ1NBUFÛÜÝn+EINBUFnḄÕrᐭu$BOUTNAME஺hINPHONEᵨ·¸uᐭhGETCHAR,EuᐭḄ8Þᵯ×Øṹ>/ᙠINBUFÛÜÝn+EINBUFnḄØṹrᐭu$BOUTPHONE஺hPRINTLINEz@Õ7ᵯ×Øṹ!ÙNAMETEL.XXXxxxxxxxx'᝞DSEGSEGMENTINBUFDB12DUPO+uᐭÛÜÝ!ßàvÙOUTNAMEDB16DUP(l,),+Õu$B!ßàvÙOUTPHONEDB12DUP஺)0DH,0AH,$+Øṹu$B!ßàvÙ

69MESG1DB'INPUTNAME\$MESG2DB'INPUTATELEPHONENUMBERM$'MESG3DB'NAME!!12DUPã)JTELäODH,OAH,$CRLFDBODH,OAH,$DSEGENDS+k_`ᦪSTACKSEGMENTDW1OODUP(?)TOSLABELWORDSTACKENDS+k_`ᚮ᪘»******,***********************************CSEGSEGMENTTELISTPROCFAR+fTELISTASSUMECS:CSEG,DS:DSEG,ES:DSEG,SS:STACKSTART:MOVAX,STACKMOVSS,AX+SSMOVSP,OFFSETTOS+SPPUSHDS+ijDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX+DSMOVES,AX+ESBEGIN:LEADX,MESG1MOVAH,09H+z@~»wxᵨINT21HCALLINPUT_NAME+uᐭÕLEADX,MESG2MOVAH,09H+z@~»wxᵨINT21HCALLINPHONE+uᐭᵯ×ØṹCALLPRINTLINE+z@Õ7ᵯ×ØṹRETTELISTENDPINPUT.NAMEPROCNEAR+uᐭÕhCALLGETCHAR+uᐭ~huᐭÕLEASI,INBUF+EINBUFnḄÕrᐭu$BOUTNAMELEADI,OUTNAMEMOVCX,12CLDREPMOVSBRETINPUT_NAMEENDP+INPUT_NAMEhcd

70INPHONEPROCNEAR+uᐭᵯ×ØṹhCALLGETCHAR+uᐭ~huᐭᵯ×ØṹLEASI,INBUF+EINBUFnḄᵯ×Øṹrᐭu$BOUTPHONELEADI,OUTPHONEMOVCX,12CLDREPMOVSBRETINPHONEENDP+INPHONEhcdGETCHARPROCNEAR+·¸uᐭhMOVAL,20H+ᐜèINBUFnoXvÙ~MOVCX,12LEADI,INBUFCLDREPSTOSBMOVCX,12+ᔣINBUFuᐭ~MOVDI,0INPUT:MOVAH,1+¶·¸¹ᦈMl~¯jzḄDOSwxᵨINT21HCMPAL,0DH+uᐭj{ijJZQUITMOVINBUF[DI],ALINCDILOOPINPUTQUIT:CALLDISP.CRLFRETGETCHARENDP+GETCHARhcdPRINTLINEPROCNEAR+z@Õ7ᵯ×ØṹhLEADX,MESG3MOVAH,09H+z@~»wxᵨINT21HLEADX,OUTNAME+z@Õ7ᵯ×ØṹMOVAH,09H+z@~»wxᵨINT21HRETPRINTLINEENDP+PRINTLINEhcdDISP_CRLFPROCNEAR+z@j{ᣚBhLEADX,CRLFMOVAH,09HINT21H

71RETDISP_CRLFENDP+DISP_CRLFhcdCSEGENDS:k_`aṹ♦******************************************ENDSTART6.10ᑏhÓᝅc᪀Ḅ!E᦮ᦪᑖHᵨäÆᑴFëÆᑴÇz@$ᩭ஺fBANDOE᦮ᦪ~:VALI>ᐭᚮ᪘!¯ᵨhPAIRS+hPAIRS¶ᚮ᪘nì$VALI+ᵨäÆᑴz@OUTBINz@$íᐸïᦔḄäÆᑴᦪ+u$8lvÙ+ᵨëÆᑴz@OUTOCTz@$íᐸïᦔḄëÆᑴᦪ+ᵨu$j{7ᣚBh஺'᝞DSEGSEGMENTVALIDW?CRLFDBODH,OAH,$DSEGENDS+k_`ᦪ;******************************************CSEGSEGMENTBANDOPROCFAR+fBANDOASSUMECS:CSEG,DS:DSEGSTART:PUSHDS+ijDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX+DSPUSHVALICALLPAIRSRETBANDOENDPPAIRSPROCNEAR+PAIRShPUSHBPMOVBP,SPPUSHBXMOVBX,[BP+4]+¶ᚮ᪘nì$VALICALLOUTBIN:ᵨäÆᑴz@hMOVCX,8+z@8lvÙSPACE:MOVDL,''MOVAH,2INT21HLOOPSPACECALLOUTOCT+ᵨëÆᑴz@hCALLDISP_CRLFPOPBX

72POPBPRET2PAIRSENDP+PAIRShcdOUTBINPROCNEAR+äÆᑴz@hPUSHBXMOVCX,16ONEBIT:ROLBX,1MOVDX,BXANDDX,1ORDL,30H+ñᣚASCIIṹMOVAH,2INT21HLOOPONEBITPOPBXRETOUTBINENDP+OUTBINhcdOUTOCTPROCNEAR+ëÆòIz@hROLBX,1+16ÞäÆᑴᦪᒹô6ÞëÆᑴᦪᨬõÞö1ÞMOVDX,BXANDDX,1ORDL,30H+ñᣚASCIIṹMOVAH,2INT21HMOVCX,5+÷øᨵ5ÞëÆᑴᦪNEXT:PUSHCXMOVCL,3+1ÞëÆᑴᦪᒹô3ÞäÆᑴᦪROLBX,CLMOVDX,BXANDDX,07HORDL,30H+ñᣚASCIIṹMOVAH,2INT21HPOPCXLOOPNEXTRETOUTOCTENDP+OUTOCThcdDISP.CRLFPROCNEAR+z@j{ᣚBhLEADX,CRLFMOVAH,09HINT21HRET

73DISP_CRLFENDP+DISP_CRLFhcdCSEGENDS+k_`aṹENDSTART6.11Ꮇ_MlMAINPROḄ⌕ᵨhSUBPRO,Nù(1)MAINPROnḄúûᢣJüýþSUBPRO,ᙠ᜜ḄফSUBPRO⍝MAINPRO⌕ᵨ(1)EXTRNSUBPRO:FAR(2)PUBLICSUBPRO6.12ᎷMAINPROSUBPROᙠᙽMAINPRO⁚QTYVALUEPRICE஺SUBPRO⌕"VALUE◀$QTY,%"ᖪ'ᙠPRICE஺()(1)MAINPRO*+,-᜜/⌕ᵨ012(2)SUBPRO*+,-0123ᙠ42,-56Ḅ(1)PUBLICQTY,VALUE,PRICE(2)EXTRNQTY:BYTE,VALUE:WORD,PRICE:WORD6.13Ꮇ8(1)ᙠᙽ19:VARI,✌ᙢᙬ>VAR2Ḅ⁚ᦪ@NEAR᪗BLABI,CDᵫᙽ2ᙽ3ᡠGᵨHফᙠᙽ29VAR3FAR᪗BLAB2,Iᙽ1⌕ᵨᑮVAR3,ᙽ3⌕ᵨKILLAB2H(3)ᙠᙽ39FAR᪗BLAB3,Iᙽ2⌕ᵨᑮ஺(MN2OᙽPQR⌕ḄEXTRNPUBLICST஺ᙽ1EXTRNVAR3:WORDPUBLICVARI,VAR2,LABIᙽ2EXTRNVARI:DWORD,VAR2:BYTE,LABI:NEAR,LAB3:FARPUBLICVAR3,LAB2ᙽ3EXTRNVARI:DWORD,VAR2:BYTE,LABI:NEAR,LAB2:FARPUBLICLAB36.14UCALLMULᚮ᪘Xஹᦪ@XZṹX%"X\'ᘤ^_ᓄᦪ@XQTYPRICEHZṹXDPRICEaᐭAX,QTYaᐭBX,ᯠdᵨ/SUBMUL஺SUBMULeᨵghᦪ@ijᓫᙢ"AXḄᑁm(PRICE)n$BXḄᑁm(QTY),nopᙠDX:AX஺q-ᑴ0s2⌕tuvᩭḄ஺᝞yTITLECALLMULHUEXTRNSUBMUL:FARSTACKSEGMENTPARASTACK'STACK'DW64DUP(?)TOSLABELWORD

74STACKENDSDATASGSEGMENTPARA'DATA'QTYDW0140HPRICEDW2500HDATASGENDSCODESGSEGMENTPARA'CODE'CALLMULPROCFARASSUMECS:CODESGDS:DATASG,SS:STACKSTART:MOVAX,STACKMOVSS,AXHPSSz{MOVSP,OFFSETTOSHPSPz{PUSHDSSUBAX,AXPOPAXMOVAX,DATASGMOVDS,AXMOVAX,PRICEMOVBX,QTYCALLSUBMULRETCALLMULENDPCODESGENDSENDCALLMULH**ஹ***************************************************ஹTITLESUBMULH/PUBLICSUBMULCODESG1SEGMENTPARA'CODEASSUMECS:CODESGISUBMULPROCFARASSUMECS:CODESG1MULBXRETSUBMULENDPCODESG1ENDSEND6.15(-ᑏ-2᡻$yḄ/COMPUTER-X+Y-3ᐸX,YRᙳ>ᦪ஺Ꮇ8COMPUTEᐸᵨᙠZṹXᦪ@XD.SEGᒹXYᦪᦪ@XE_SEGᒹRᦪᑏQUᵨCOMPUTEḄ

75ᑖ஺᝞UCOMPUTEᙠᙽᙠZṹX᝞hᦋ᝞UCOMPUTEᙠᙽ᝞hᦋ(1)UCOMPUTEᙠZṹXḄ᝞yTITLEADDITIONHUD_SEGSEGMENTPARADATACOUNTEQU10HXDWCOUNTDUP(?)YDWCOUNTDUP(?)D_SEGENDSE_SEGSEGMENTPARADATARDWCOUNTDUP(?)E_SEGENDSC_SEGSEGMENTPARA'CODE'ADDITIONPROCFARASSUMECS:C_SEGDS:D_SEQES:E_SEGSTART:PUSHDSSUBAX,AXPUSHAXMOVAX,D_SEGMOVDS,AXMOVAX,E_SEGMOVES,AXCALLCOMPUTEHᵨ/RETADDITIONENDPCOMPUTEPROCNEARHXḄ/MOVCX,COUNTMOVBX,0REPEAT:MOVAX,X[BX]ADDAX,Y[BX]SUBAX,3MOVES:R|BX],AXRETCOMPUTEENDPC_SEGENDSENDSTART(2)UCOMPUTEᙠᙽᙠZṹXḄ᝞y:

76TITLEADDITIONHUD_SEGSEGMENTPARA'DATACOUNTEQU10HXDWCOUNTDUP(?)YDWCOUNTDUP(?)D_SEGENDSE_SEGSEGMENTPARA'DATARDWCOUNTDUP(?)E_SEGENDSC_SEGSEGMENTPARA'CODE'ADDITIONPROCFARASSUMECS:C_SEGDS:D_SEQES:E_SEGSTART:PUSHDSSUBAX,AXPOPAXMOVAX,D_SEGMOVDS,AXMOVAX,E_SEGMOVES,AXCALLFARPTRCOMPUTEHᵨ/RETADDITIONENDPC_SEGENDSH**ஹ**************************ஹ*********CODESGSEGMENTPARA,CODE'ASSUMECS:CODESGCOMPUTEPROCFARHXḄ/MOVCX,COUNTMOVBX,0REPEAT:MOVAX,X[BX]ADDAX,Y[BX]SUBAX,3MOVES:R[BX],AXRETCOMPUTEENDPCODESGENDSENDSTARTবUCOMPUTEᙠᙽḄ᝞y:TITLEADDITIONHU

77EXTRNCOMPUTE:FARPUBLICCOUNT,X,Y,RD_SEGSEGMENTPARA'DATACOUNTDW10HXDW10HDUP(?)YDW10HDUP(?)D_SEGENDSE_SEGSEGMENTPARA'DATA'RDW10HDUP(?)E_SEGENDSC_SEGSEGMENTPARA'CODE'ADDITIONPROCFARASSUMECS:C_SEGDS:D_SEQES:E_SEGSTART:PUSHDSSUBAX,AXPOPAXMOVAX,D_SEGMOVDS,AXMOVAX,E_SEGMOVES,AXCALLFARPTRCOMPUTEHᵨ/RETADDITIONENDPC_SEGENDSENDSTARTTITLECOMPUTEH/EXTRNCOUNT:WORD,X:WORD,Y:WORD,R:WORDPUBLICCOMPUTECODESGSEGMENTPARA'CODE'ASSUMECS:CODESGCOMPUTEPROCFARHᙽḄ/MOVCX,COUNTMOVBX,0REPEAT:MOVAX,X[BX]ADDAX,Y[BX]SUBAX,3MOVES:R[BX],AXRET

78COMPUTEENDPCODESGENDSENDAJ1ᵯ/¡¢ᫀ⚓ὃẆ¦y§¨¨y§©ª«¬ὅ®¯ᩭO7.1-ᑏᩩ±ᢣ³CLRB,´ᡂᵨ¶·¸D¸¹Ḅ¸ºZḄ»¬஺¸¹✌ᙢᙬᐸ¼½>ᐗ஺±᝞yCLRBMACRON,CFILMOVCX,NCLDMOVAL,HHº¶·¸ḄASCIIṹLEADI,CFILREPSTOSBENDM7.2¿»ᔆᕜ»ÂḄÃÄ3NÅḄ»Â᳛RATEn$»¬ÇHOUR,4᜜N»¬È10ÅÉᝄË3ᐗ»ÂÌᦪ'pᙠWAG஺qDᕜ»ÂḄ-ᑏᡂᩩ±ᢣ³WAGES,%ÍαᵨWAGESRl,42,SUM±᝞yWAGESMACRORATE,HOUR,WAGMOVAL,HOURHHᕜ»Â(WAG),ÏÐ>HOUR*RATEMOVBL,RATEMULBLMOVWAGAXMOVAL,HOURHHᝄË'ᐭ(AX),ÏÐ>HOUR/10Ḅᖪ*3MOVAH,0MOVBL,10DIVBLMOVBL,3

79MULBLADDWAG,AXHHᕜ»ÂÌᦪENDM±ᵨWAGESRI,42,SUM±ÍÎ1MOVAL,421MOVBL,RI1MULBL1MOVSUM,AX1MOVAL,421MOVAH,01MOVBL,101DIVBL1MOVBL,31MULBL1ADDSUM,AX7.3P±᝞y(ÑÒÓ±ᢣ³ḄÔÕ3V3—|V1-V2I)DIFMACROX,YMOVAX,XSUBAX,YENDMABSDIFMACROV1,V2,V3LOCALCONTPUSHAXDIFV1,V2CMPAX,0JGECONTNEGAXCONT:MOVV3,AXPOPAXENDM(ÍÎ$yᵨ%ᑨᵨ3ᔲᨵᦔ஺(1)ABSDIFPl,P2,DISTANCEফABSDIF[BX],[SI],X[DI],CX(3)ABSDIF[BX][SI],X[BX][SI],240H(4)ABSDIFAX,AX,AX(1)±ᵨABSDIFPl,P2,DISTANCEḄ±ÍÎ᝞yÓ±ᵨᨵᦔ஺1PUSHAX1DIFPUP21MOVAX,Pl1SUBAX,P21CMPAX,01JGE??0000

801NEGAX1??0000:MOVDISTANCE,AX1POPAXফ±ᵨABSDIF[BXL[SI],X[DI],CXḄ±ÍÎ᝞yÓ±ᵨᨵᦔ஺1PUSHAX1DIF[BX],[SI]1MOVAX,[BX]1SUBAX,[SI]1CMPAX,01JGE??00011NEGAX1??0001:MOVX[DI],AX1POPAX(3)±ᵨABSDIF[BX][SI],X[BX][SI],240HḄ±ÍÎ᝞yÓ±ᵨÙᦔ஺1PUSHAX1DIF[BX][SI],X[BX][SI]1MOVAX,[BX][SI]1SUBAX,XfBX][SI]1CMPAX,01JGE??00021NEGAX1??0002:MOV240H,AX1POPAX(4)±ᵨABSDIFAX,AX,AXḄ±ÍÎ᝞yÓ±ᵨᨵᦔÙÚᜧÒ஺1PUSHAX1DIFAX,AX1MOVAX,AX1SUBAX,AX1CMPAX,01JGE??00031NEGAX1??0003:MOVAX,AX1POPAX7.4(-ᑴ±⌕"'ÜᘤḄ2ᵨEOT(ASCIIṹ04H)¸ÝÞḄ¸ßà〈ᑮ42'ܹâ஺±᝞ySENDMACROSCHARS,DCHARSLOCALNEXT,EXITPUSHAXPUSHSIMOVSI,0NEXT:MOVAL,SCHARSfSI]MOVDCHARS[SI],ALCMPAL,04HHH3EOT¸ᔩ

81JZEXITINCSIJMPNEXTEXIT:POPSIPOPAXENDM7.5±ᢣ³BIN_SUB´ᡂÚ2⁚ᦪ@täḄÔÕRESULT-(A-B-C-D-...)⌕åäḄ⁚ᦪ@æ'pᙠ✌ᙢᙬ>OPERANDḄᦪ@¹äᦪḄ2ᦪ'pᙠCOUNTᓫᐗᨬdÝ'ᐭRESULTᓫᐗ஺q-ᑏÓ±ᢣ³஺±᝞yBIN_SUBMACRORESULT,A,OPERAND,COUNTLOCALNEXT_SUBPUSHCXPUSHBXPUSHAXMOVCX,COUNTMOVAL,ALEABX,OPERANDCLCNEXT_SUB:SBBAL,|BX]INCBXLOOPNEXT.SUBMOVRESULT,ALPOPAXPOPBXPOPCXENDM7.6qᵨ±ᢣ³•2éêë¸ßGOOD:'GOODSTUDENTS:CLASSXNAME:ᐸXNAMEᙠ±ᵨPQ஺±᝞yDISP_GOODMACROX,NAMEGOODDB'GOODSTUDENTS:CLASS&X&NAME\ODH,OAH,$ENDM7.7y☢Ḅ±ᢣ³CNTINCI´ᡂåí'Ü஺CNTMACROA,BA&BDW?ENDMINCIMACROA,BCNTA,%BB=B+1ENDMqÍÎyᑡ±ᵨC=0

821NC1DATA,CINCIDATA,C±ÍÎ᝞yC=0INCIDATA,C1DATAODW?INCIDATA,C1DATAODW?ïÑÒC>0eᨵð7.8±ᢣ³%Íαᵨ஺±ᢣ³JOE"ßñòMESSAGENO.K'ᐭᦪ@'ܹXK஺±ᵨ>1=0JOETEXT,Iτ■JOETEXT,I1■■JOETEXT,I■ττ±᝞yMARYMACROX,KX&KDB'MESSAGENO.&K'ENDMJOEMACROA,IMARYA,%I1=1+1ENDM±ᵨ±ÍÎ1=0JOETEXT,I1TEXTODB'MESSAGENO.O'■τJOETEXT,I1TEXT1DB'MESSAGENO.Tτ1τJOETEXT,I1TEXT2DB'MESSAGENO.2'7.9±ᢣ³STORE᝞ySTOREMACROX,NMOVX+I,I1=1+1IFLNSTOREX,NENDIFENDM(ÍÎyᑡ±ᵨ

831=0STORETAB,7±ÍÎ᝞y1=0STORETAB,71MOVTAB+O,01MOVTAB+1,11MOVTAB+2,21MOVTAB+3,31MOVTAB+4,41MOVTAB+5,51MOVTAB+6,67.10(-ᑏó⌴õḄ±ᢣ³Gᐸ´ᡂḄ»¬7.9⚪ḄSTOREå஺±᝞ySTOREMACROKMOVTAB+K,KENDM±ᵨ1=0REPT7STORE%I1=1+1ENDM7.11(-ᑏX´ᡂ$yÔÕ᝞P¯>XḄ¸ß¼½ᜧ÷5yᑡᢣ³D,-10ø஺ADDAX,AXX᝞yXDB'ABCDEFG'IF($-X)GT5REPT10ADDAX,AXENDMENDIF7.12±ᢣ³FINSUMùús2ᦪXY(XஹY>ᦪI3ᙢᙬ)üX>Yᑣ᡻SUM-X+2*YHᔲᑣ᡻SUM-2*X+Y஺±᝞yCALCULATEMACROA,BRESULT"RESULT-2*A+B,MOVAX,ASHLAX,1ADDAX,BMOVRESULT,AXENDMFINSUMMACROX,Y,SUMIFXGTY

84CALCULATEY,X,SUMELSECALCULATEX,Y,SUMENDIFENDM7.13(-ᑏ-X´ᡂ$yÔÕ᝞ᐗXTVT55Lᑣ,-MOVTERMINAL,0Hᔲᑣ,-MOVTERMINAL,lo±᝞yBRANCHMACROXIFIDN,MOVTERMINAL,0ELSEMOVTERMINAL,1ENDIFENDM7.14M÷DOSÔÕᵨᡠᨵḄÔÕᵨ◤⌕ᙠAHᘤṹᐸᨵ◤⌕ᙠDX஺ᢣDOS2L⌕ᨵᙠ!"#$%&MOVAH,DOSFUNCMOVDX,OFFSETBUFFINT21Hᔲᑣ)MOVDX,OFFSETBUFFᢣ஺*+,-./ᵨ&DOS2101DOS210AH,IPF1ELD1&᝞.&DOS21MACRODOSFUNC,BUFFMOVAH,DOSFUNCIFDEFBUFFMOVDX,OFFSETBUFFENDIFINT21HENDM+,&DOS21011MOVAH,011INT21HDOS21OAH,IPFIELD1MOVAH,OAH1MOVDX,OFFSETIPFIELD1INT21H7.15$ᑏ45#$᪷7SIGN"8Ḅᑁ;ᑖ=>?@AḄᢣ஺᝞B(SIGN)=0,ᑣᵨC⁚EFDIVDḄ)GHᦪ◀-C⁚EFSCALEKB(SIGN)=1,ᑣᵨC⁚EFDIVDḄMGHᦪ◀-C⁚EFSCALE,NBOᙠC⁚EFRESULT஺

851&4᝞.&MOVAL,DIVDIFSIGNMOVAH,0DIVSCALEELSECBWIDIVSCALEENDIFMOVRESULT,AL7.16$ᑏSUMMING,⌕QRCᦪSᡠᨵᐗVWX*YNBZ.ᩭ஺\Ḅ]ᐗ^%ᦪS✌ᙬARRAY,ᦪSabCOUNTXNBᓫᐗRESULTo1&᝞.&SUMMINGMACROARRAY,COUNT,RESULTLOCALADDITIONMOVESI,0MOVECX,COUNTADDITION:MOVEAX,ARRAY[ESI*4]ddRC%4C⁚ADDRESULT,EAXADCRESULT+4,0ddefghᑮNBḄjgRCINCESILOOPADDITIONENDM7.17%.ᑡᦪ74ḄᦪS$ᑴ•/ᵨ⚪7.16ḄSUMMING,Q\ᦪSᔜᐗVWXODATADD101246,274365,843250,475536SUMDQ?1&᝞.&SUMMINGMACROARRAY,COUNT,RESULTLOCALADDITIONMOVESI,0MOVECX,COUNTADDITION:MOVEAX,ARRAY[ESI*4JddRC%4C⁚ADDRESULT,EAXADCRESULT+4,0ddefghᑮNBḄjgRCINCESILOOPADDITIONENDM.MODELSMALL.386.DATADATADD101246,274365,843250,475536SUMDQ?.CODE

86START&MOVAX,@DATAMOVDS,AXSUMMINGDATA,4,SUMMOVAX,4C00HINT21HENDSTART7.18᝞Y⚪7.16Ḅᙠpᑣ⚪7.17Ḅ^᝞qrᦋ?1&rᦋ᝞.&INCLUDEMACRO.MACdᎷvḄpw%MACRO.MAC,MODELSMALL.386.DATADATADD101246,274365,843250,475536SUMDQ?.CODESTART&MOVAX,@DATAMOVDS,AXSUMMINGDATA,4,SUMMOVAX,4C00HINT21HENDSTART苴B页一序|}~|}~ᵯ1ᫀ-⚣ᦟ员ὃẆI.if一ὅ&wᩭK&8.1ᑏQᑖ.ᑡHᙠᔣF⊤Ḅᱥᳮᙢᙬ஺(l)INT12H(2)INT81&পH12HᙠᔣF⊤Ḅᱥᳮᙢᙬ%00048Hஹ00049Hஹ0004AHஹ0004BHdফH8ᙠᔣF⊤Ḅᱥᳮᙢᙬ%00020Hஹ00021H.00022Hஹ00023H஺8.2ᵨCALLᢣᩭ¦§¨©INT21Hª«CGTḄ஺1&MOVAH,2MOVDL,TPUSHDSPUSHFd¬®Ḅ¯°ᢣ±IRET,@±RET

87MOVBX,0MOVDS,BXCALLDWORDPTR[2IH*4]dᵨCALLᢣ/ᵨ21HḄ®POPDS8.3ᑏQᢣeC⁚ᦪ7²Qᑮ³´25H஺1&ᢣ%&OUT25HAL8.4ᑏQᢣeCᦪ7µ³´1000H²ᐭ஺1&ᢣ%&MOVDX,1000HINAX,DX8.5Ꮇ·¸¹º´Ḅ²ᐭᦪ7ᘤḄ³´ᙢᙬ%50H,»᝱ᘤḄ³´ᙢᙬ%51H,»᝱ᘤᔜg%1"½᝞¾¿ᡠ«À$ᑏ&²ᐭ·CG*ᐭ!BUFF,A"Á²ᐭḄÃÄឋ᝞ᨵ┯ᑣÇQ┯ᜐᳮERROR_OUTo²ᐭᦪ7ÉᜓË76543210²QᘤÌ᜻Ꮤ᪥Â┯ÐQ┯ÑÒ┯8.3»᝱ᘤᔜg½1&4᝞.&MOVDI,0MOVCX,80:ᨬÔ²ᐭ80CGBEGIN:INAL,51HdÕÖ²ᐭ±ᔲÉᜓË×TESTAL,02HJZBEGININAL,50Hd²ᐭᦪ7*ᐭ!BUFFMOVBUFF[DI],ALINCDIINAL.51Hdᑨ±ᔲᨵ┯×TESTAL,00111000BJNZERROR_OUTLOOPBEGINIII8.6$ᑏÙÚÛÜÝvᜓḄ»᝱ᘤ⌕»᝱ᘤḄ0g%1,ᑣÞßᐸà^Ḅvᜓ²ᐭCGd᝞Bᐸá•»᝱ᘤḄ3g%1,ᑣ᦮²ᐭãNä஺Ý»᝱ᘤḄ³´ᙢᙬᑖ=±0024HXOO36H,ßᐸà^Ḅᦪ7²ᐭᘤḄ³´ᙢᙬᑣ%0026HX0038H,²ᐭCGᑖ=ᐭ✌ᙢᙬ%BUFFERBUFF2Ḅå!஺

881&4᝞.&MOVDI,0MOVSI,0BEGIN:INAL,24HTESTAL,08HdÕÖvᜓḄ²ᐭ±ᔲNä×JNZEXITTESTAL,01HdÕÖvᜓḄ²ᐭ±ᔲÉᜓË×JZBEGIN1INAL,26Hd²ᐭᦪ7*ᐭ!BUFFIMOVBUFFI[DI],ALINCDIBEGIN1:INAL,36HTESTAL,08HdÕÖævᜓḄ²ᐭ±ᔲNäJNZEXITTESTAL,01HdÕÖævᜓḄ²ᐭ±ᔲÉᜓË×JZBEGININAL,38Hd²ᐭᦪ7*ᐭ!BUFF2MOVBUFF2[SI],ALINCSIJMPBEGINEXIT:■8.7Ꮇ᜜èvᜓᨵéêᐟᣚᘤᐸ»᝱ᘤḄ³´ᙢᙬ%0006H,ᦪ7²ᐭᘤḄ³´ᙢᙬ%0005H,ᦪ7²QᘤḄ³´ᙢᙬ%0007H஺ᵨÕÖíÒ$ᑴ\Ìîïðñòóê²ᐭô»᝱ᘤ2g%1"⊤«ᨵóê²ᐭõ"öµᦪ7²ᐭᘤ²ᐭḄ÷ṹÜQóêḄøùúóêḄ÷ṹ%01,æúóê%02,ûúóêᑣ%03஺ᯠýᙠñò»᝱ᘤḄ3gE%1ýY^ᐟᣚḄûᑖêᦪþᵨ16fᑴ⊤«ÿᦪᘤ஺᝞BEGIN:INAL,06HᔲᨵᐭTESTAL,04HJZBEGININAL,05HḄCMPAL,01HᔩJNENEXT1MOVAH,02"2#5ᑖ%JMPNEXTNEXT1:CMPAL,O2H&ᔩJNENEXT2MOVAH,04&"4#5ᑖ%JMPNEXTNEXT2:CMPAL,03H'ᔩJNEBEGINMOVAH,10'"10#5ᑖ%NEXT:INAL,06Hᔲᐕ)5ᑖ%

89TESTAL,08HJZNEXTMOVAL,AH5ᑖ%OUT07H,ALJMPBEGIN8.8+,(SP)=0100H,(SS)=0300H,(FLAGS)=0240H,-.ᓫᐗḄᑁ23(00020)=0040H,(00022)=0100H,ᙠᙢᙬ30900789ᙢᙬ300A0HḄᓫᐗ:ᨵᩩ:<ᢣ>INT8,?᡻AINT8ᢣ>B"SP,SS,IP,FLAGSḄᑁ2CD᪘⚔ḄG#HCD᡻AINT8ᢣ>B"(SP)=OOFAH,(SS)=0300H,(CS)=OiOOH,(IP)=0040H,(FLAGS)=0040H᪘⚔ḄG#HI(IP)=00A2H,I(CS)=0900H,I(FLAGS)=0240H8.9JK14HḄ:<ᔣMᙠ.ᘤḄNOᓫᐗPᙠ0000:0050H,0000:0051H,0000:0052H,0000:0053HQ#H⁚:஺8.10Ꮇ,:ᑡ"mJK1CHḄ:<ᔣMᢣᔣ:<ᜐᳮSHOW_CLOCK஺᝞τ■(MOVAL,1CHMOVAH,35H_:<ᔣMghiᵨ"_I:<ᔣMINT21HPUSHESPUSHBXPUSHDS

90MOVAX,SEGSHOW_CLOCKMOVDS,AXMOVDX,OFFSETSHOW_CLOCKMOVAL,1CHMOVAH,25Hef:<ᔣMghiᵨINT21HPOPDS■■1POPDXPOPDSMOVAL,1CHMOVAH,25Hef:<ᔣMghiᵨ"kII:<ᔣMINT21H(■τ8.12᝞eᜓDl,D2,D3,D4,D5ᢥpᐜrs᣸ᑡḄ"eᜓD1Ḅpᐜrᨬv஺\:஺(1)eᜓD3D4:(EOI)"eᜓD5:"\ḄIRETᢣ>-ᵫFLAGS᪘\mIFf1,ᑣᔜeᜓḄ:<ᜐᳮḄ|As᪵ḄᔜeᜓḄ:<ᜐᳮḄ|AsINT_D3,INT_D2,INT_D4,INT_D5INT_DI,INT_D3,INT_D5஺8.14]ᑴ"⌕xḄ|A"`¡ᡭᓺᩭ஺᝞TITLETEST_TIME.EXE|ADSEGSEGMENT,¤ᦪCOUNTDW0¥¦§¨©(18.2s:

91SUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX+DS±²MOVAL,1CH_IᩭḄ1CH:<ᔣMMOVAH,35HINT21HPUSHESaIᩭḄ1CH:<ᔣMPUSHBXPUSHDSef³Ḅ1CH:<ᔣMMOVAX,SEGCLINTMOVDS,AXMOVDX,OFFSETCLINTMOVAL,ICHMOVAH,25HINT21HPOPDSINAL,21H´◀:<¶·¸`}:

92TIMEOK:MOVAL,20H:<>OUT20H,ALPOPBXPOPDSIRETCLINTENDPCLINT:<½¾¿INCTESTPROCNEARÂᦋ¿MOVWORDPTR[BX],0:

93CALLDEC_D1VMOVCX,100DCALLDEC_DIVMOVCX,10DCALLDEC_DIVMOVCX,IDCALLDEC_DIVRETBINIDECENDPBINIDEC¿DEC_DIVPROCNEAR◀Ï`ᡭᓺ¿MOVAX,BXMOVDX,0DIVCXMOVBX,DXÐᦪaᙠ(BX):ÑsḄ◀ÏMOVDL,ALᖪ(ᙠ00H~09HÕᑁ)〈(DL)ADDDL,30HÀᣚ30~9ḄASCIIṹMOVAH,05H:ᡭᓺINT21HRETDEC_DIVENDPDEC_DIV¿CSEGENDS-,¤¯ṹENDSTART×]ØÙÚ苴程页-序ÝÞßÝÞßᵯ¿%áâãêëìᫀ_-î⚣ᦟç员ὃẆæçèéèéçñòóÑὅõöᩭÚâã9.1INT21HḄ÷øᐭgh1gh8ᨵCDùú÷øᐭgh1ᐭHû`üý〈üzᘤüzþýÿCtrLBreakᏉᐭ8ᐭCtrl_Breako9.2ᑏᐭḄ10ᓝᑴᦪᐭ#ᑣ%&ᐭᯠ()*+ᦪ,-(ᵨXLATᢣ01ᣚ34ᐭᑁ4678BUFFER஺,-⊤;

94ᐭᦪ0,1,2,3,4,5,6,7,8,9-ṹᦪ7,5,9,1,3,6,8,0,2,4=>᝞@SCODEDB7,5,9,1,3,6,8,0,2,4-ṹᦪBUFFERDB10DUP(?)I•I»IMOVSI,0MOVCX,10LEABX,SCODEINPUT:MOVAH,1ᐭḄAᵨINT21HCMPAL,ODHᐭ#ᑣ%&ᐭJZEXITSUBAL,30HB0~9ᔩDJBINPUTCMPAL,09HJAINPUTXLATᣚ;-ṹMOVBUFFERfSI],ALE4-ṹINCSILOOPINPUTEXIT:RET9.3FGHIJᘤLMN.40ᑡᨬ@QRSḄ4TᓫᐗᙢᙬBYZD=FGHIJᘤLMN40ᑡᨬ@QRSḄ4TᓫᐗᙢᙬBB000:0F78H9.4ᑏ[\ᐝ᪗_ᙠa12ba8ᑡḄᢣ0஺=ᢣ0᝞@MOVDH,0BH0BH=12-lMOVDL,07H:07H=8-lMOVBH,0MOVAH,2_ᐝ᪗AᵨINT10H9.5ᑏᢣ0\12b0ᑡᑮ22b79ᑡḄLMd◀஺=ᢣ0᝞@MOVAL.Od◀LMMOVBH,07MOVCH,12fNgbhMOVCL,0fNgᑡhMOVDH,22i@gbhMOVDL,79i@gᑡhMOVAH,6LMNjAᵨINT10H9.6ᑏᢣ0kᐸmᡂ@ᑡ⌕p஺(1)qrsᐝ᪗t_(2)\ᐝ᪗uvLwbḄxy

95(3)ᙠLMḄfNgz{|}ឋJM=ᢣ0ᑡ᝞@(1)MOVAH,3qrsᐝ᪗t_DH/DL=ᐝ᪗ᡠᙠḄb/ᑡMOVBH,0INTIOHফMOVDH,24_ᐝ᪗t_MOVDL,0MOVBH,0MOVAH,2INT10HবMOVAH,2_ᐝ᪗t_MOVDX,0MOVBH,0INT10HMOVAH,9ᙠrsᐝ᪗t_JMOVALJM'MOVBH,0MOVBL,7MOVCX,1INT10H9.7ᑏ>J᝞@ḄTryagain,youhavenstai-fightersleft.ᐸn;CX4ᘤḄ1~9Ḅᑴᦪ஺=>᝞@MESSAGEDB'Tryagain,youhave'CONTDBnDB'starfightersleft.$,■.τ»τADDCL,30HMOVCONT,CLE4ASCIIṹLEADX,MESSAGEMOVAH,9JḄDOSAᵨINT21H9.8Nᐭb᝞*bsᐭḄbᑣE4bᯠ(ᐭb᝞sᐭḄbᑣE4*b஺ᢥ@$ᐭᨬ()ᨬḄbJ[ᩭ஺=>᝞@STRINGDB04ḄᦪDB8()DUP(?),0DH,0AH,*$,4sᐭḄ¡¢J678BUFFERDB80ᐭḄ678ᨬ£ᐭ80DB?DB80DUP(20H)■•I»IINPUT:LEADX,BUFFERᐭ

96MOVAH,OAHᐭḄDOSAᵨINT21HLEASI,BUFFER+1¤LESDI,STRINGMOVAL,[SI]CMPAL,[DI]JBENEXTMOVCX,80+1ᜧ¦sᐭḄ§ᣚsḄCLDREPMOVSBNEXT:MOVAH,1ᐭᔩDINT21HCMPALJ$BᔩDJNEINPUTBᑣᐭLEADX,STRING+1JMOVAH,9JḄDOSAᵨINT21H9.9ᑏ¨LMᓃJ[“Whatisthedate(mm/dd/yy)?”ª«¬(«¬;07),ᯠ(ᦈᦪ¯ªᢥ°pḄE4ᙠdate4T8஺=>᝞@MESSAGEDB'Whatisthedate(mm/dd/yy)?',07H,$DATAFLDDB10,0DATEDB10DUP(45).ττ*τMOVAH,9JḄDOSAᵨLEADX,MESSAGEJINT21HMOVAH,OAHᐭḄDOSAᵨLEADX,DATAFLDINT21H9.10ᵨᡝᐭᦻ³ªᙠLMN[ᩭ஺´ᐭb&80)ᵨᡝ·¸᝞ᵨᡝ¹;º◤¼ᦋᑣᐭ#¾¿*b4ᐭBUFFER678E4À¿ᡭᓺÃ\*bᡭᓺ[ᩭª#ᣚb஺=>᝞@INAREADB80:ᐭḄ678ᨬ£ᐭ80ACTLENDB?BUFFERDB80DUP(?)I■»IINPUT:LEADXJNAREAᐭMOVAH,OAHᐭḄDOSAᵨINT21HCMPACTLEN,0JEEXITMOVBX,0

97MOVCH,0MOVCL,ACTLENPRINT:MOVAH,5ᡭᓺ[MOVDL,BUFFER[BX]INT21HINCBXLOOPPRINTMOVAH,5ᡭᓺ[#ᣚbMOVDL,OAHINT21HMOVDL,ODHINT21HJMPINPUTEXIT:RET9.11kᵨMODEÄ0_COM2ÅÆḄÇᦪ¯;´8tº᪥É1tÊ&t,Ìᱯ᳛;1200b/s஺=Ä0᝞@MODECOM212,N,8,1Ïa2^1ÔÕÃÔÕÃᵯ×سÙÚÛ'ÝÞ=ᫀ§Ðæ⚣ᦟéãÒÓὃẆâ@ãäåäå@ãÑaᓝê¢ὅìíᩭîÙÚ10.1ᑏ[ᢣ0⌱ðJñ10H,ª)òó;ô⁐஺=MOVAH,OOHMOVAL,10H⌱ðJñ10H16⁐ö÷3INT10HMOVAH,10HMOVAL,OOHMOVBH,10Hòó;ô⁐02HøzBᵨDEBUGAù[ᩭḄ3MOVBL,0⌱ð0hA⁐úINT10H_òó⁐øᵨMOVAH,0BH_òó⁐ûA⁐úMOVBH,0_òó⁐

98MOVBL,8ô⁐òóINT10H10.2᝞ükᵨINT10HḄAᵨᦋ1JñD=ᙠAH_h00H,ᙠAL_JñýAᵨINT10Hᓽø஺10.3VGAÿᨵḄ640x480,16⁐12HVGAᨵḄ஺10.4EGAVGA〉ᘤ"ᵨ13H$%ᨵVGAᨵ&ᦪ()ᙠ+,ᦪ()ᙠ)-ᘤ,஺10.5VGAḄ13H)./01◤⌕456⁚Ḅ)◤⌕6400086⁚஺10.6ᑭᵨBIOS:;<ᑏ>?@ABC>?10H,⌱EFG⁐H⁐ᯠJKL$MNᔣ&⁐K4LPQRSᑮ᦮8/VWXYᩩ஺@A᝞\TITLEGRAPHIX.COMcodesegsegmentassumecs:codeseg,ds:codeseg,ss:codesegorglOOhmainprocfarmovah,OOhmoval,lOh]⌱Elh16⁐>?&intlOhmovah,Obhmovbh,OOhmovbl,Olh]FGBH⁐intlOhmovah,Obhmovbh,Olhmovbl,OOh]BC^⁐_0#intlOhmovbx,0])Ḅ`0⚓movex,0]bcᑡe0ᑡmovdx,0]bcLe஺Lline:movah,Och]ᑏfmoval,blintlOhincexempex,640jnelinemovex,0]bcᑡe0ᑡincblandbl,03h]%g⁐$hijᶇᨬmno&incdxempdx,350

99jnelineint20hmainendpcodesegendsendmain10.7pᦋ10.6⚪Ḅ@A"᦮8/VWXsᔣḄYᩩ஺@A᝞\TITLEGRAPHIX.COMcodesegsegmentassumecs:codeseg,ds:codeseg,ss:codesegorglOOhmainprocfarmovah,OOhmoval,lOh]⌱E10h16⁐>?&intlOhmovah,Obhmovbh,OOhmovbl,Olh]FGBH⁐intlOhmovah,Obhmovbh,OlhmovbhOOh]BC^⁐_0#intlOhmovbx,0])Ḅ`0⚓movex,0]bcᑡe஺ᑡmovdx,0]bcLe0Lline:movah,Och]ᑏfmoval,blintlOhincdxempdx,350jnelinemovdx,0]bcLe0Lincblandbl,03h]%g⁐$hijᶇᨬmno&incexempex,640jnelineint20hmainendpcodesegendsendmain10.8ᢥuvwxḄᐝ᪗{ᑴvᙠ/Vx\}~ᔣx>Kfᵫᦪ6v0~3ᢣfḄ⁐ᢥuESCv>DOS஺

100@A᝞\]DRAW-Programtodrawonscreenwithsursorarrows]For640*350colormodeupequ48h]ᔣxvḄdownequ50h]ᔣ\vḄleftequ4bh]ᔣ}vḄrightequ4dh]ᔣ~vḄescapeequ1bh]“Esc"charactercodesegsegmentmainprocfarassumecs:codeseg]clearscreenbyscrollingit,usingROMcallstart:movah,06hmoval,OOhmovex,OOhmovdl,79movdh,24intlOh]screenpointerwillbeinCX,DXregisters]rownumber(0to350d)inDX]coumnnumber(0to640d)inCXmovah,OOhmoval,lOh]⌱E10h(16⁐>?)intlOhmovah,Obhmovbh,OOhmovbl,01h]FGBH⁐intlOhmovah,Obhmovbh,Olhmovbl,OOh]BC^⁐_0#intlOhmovdx,175]Bᙠ/Vmovex,320]getcharacterfromkeyboardget_char:movah,0]vwᐭint16hempal,escapejzexitempal,33h]>3ᔩjgP^tempal,30h]v'0’ᔩjlplotmovbl,al]BC⁐andbl,03

101jmpget_char]figureoutwhichwaytogo,anddrawnewlineplot:moval,ahcmpal,upjnznot_updecdxnot_up:cmpal,downjnznot_downincdxnot_down:cmpal,rightjnznot_rightincexnot_right:cmpal,leftjnzwritedecex]useROMroutinetowritedot,reguiresrow#inDX,colinCX,colorinALwrite:moval,blmovah,OchintlOhjmpget_charexit:int20hmainendpcodesegendsendstart10.9o/)ᘤḄᵨᙠ16⁐640x480᝞"ᵨo/)ᘤo/)ᘤḄᵨḄḄ஺o/)ᘤḄoB0¡ḄS¢ᵫ┝)ᘤᑏᐭ)]o/)ᘤḄo1ᡠ¡Ḅᵫ┝)ᘤḄ¥CPUᦪ(ᡈCo/PC)ᘤ¡oᔠ©J஺10.10ª᧜⌱E)ᘤḄᵨ᝞¬48o☢Ḅᑁ¯W◤⌕ª°ª᧜⌱E)ᘤ¡᝞BCª᧜⌱E)ᘤḄᵨᵨ⌱En±8o☢Ḅ6⁚ªᐭCPU஺ª᧜⌱E)ᘤḄ01oᵨᩭᢣ+8o☢Ḅ┝)ᘤᑁ¯ªᑮCPU஺᝞¬48o☢Ḅᑁ¯W◤⌕ª°ᑣ´µᙢᙬ᡻L4Rª¹ᙠKRªᵨᢣºᑖ¼BCª᧜⌱E)ᘤ஺10.11<ᑏ@A"%“¾”ÀÁ/V஺À¾ḄuᵫÂᑏ6Ãv(ASCHṹ76H)Åẚᢚe(ASCHṹ0C4H)ᩭÈÉ86ÊᐜJÌÍᙠnᑡ஺¾ḄÎcoC0ᑡ20LK86Ê0.5ÏᯠJÐᜫ஺@AÒ᝞\TITLEFlier.EXE]À¾@ADSEGSEGMENT]Óᦪ(ÒBIRDDB76H,07]Âᑏ6ÃvÔÕឋDB0C4H,07]ẚᢚeÔÕឋDSEGENDS]×xÓᦪ(Ò

102CSEGSEGMENT]ÓØṹÒMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS]BCDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX]ÙDSÚMOVAH,OFH]°INT10HPUSHAX]j)(AL)MOVAH,0]BCY⁐80x25ᦻÜMOVAL,3INT10HMOVDH,20]20LMOVDL,0]0ᑡBEGIN:MOVSI,2]6Êvẚᢚe“ÌÍMOVCX,1]R86ÊÔÕឋLEADI,BIRDDISP:CMPDL,79]Àᑮ79ᑡÝ⌨XJAEEXITMOVAH,2]Cᐝ᪗oCINT10HMOVAH,9]ᙠᐝ᪗oC6ÊÔÕឋMOVAL,|DI]]°6ÊÔÕឋMOVBL,[DI+1]INTIOHCALLDELAY]ß0.5ÏMOVAH,9]ᙠᐝ᪗oC6ÊÔÕឋMOVAL,45]àáâ◀oCḄ6ÊMOVBL,7INT10HINCDL]Àᑮ\ᑡADDDI,2DECSIJNZDISPJMPBEGINEXIT:POPAX]ឮQ(AL)MOVAH,0INT10HRET]DOSMAINENDPDELAYPROCNEAR]ß0.5så@A

103PUSHCXPUSHDXMOVDX,50]ß0.5sDELI:MOVCX,2801]ß10msDEL2:LOOPDEL2DECDXJNZDELIPOPDXPOPCXRETDELAYENDP]DELAYå@ACSEGENDS]×xÓØṹÒENDSTART]æ<çèé@A10.12ASCIIṹODDHASCIIêëODCHASCIIṹODFHASCIIṹODBHASCIIṹODEHᵨ>?ᦻÜḄBì“Name=XXX”XíîïðñḄòᑏ&©óᐸᦪ(<ṹÓᙠ8ᦪõ஺ᵨ>?ᦻÜḄBì“NAME=YQS”Ḅ@Aᦪõ᝞\á᝞\ShootingTITLENAME_YQS.EXE]“NAME=YQS”Ḅ@A]GraphicsblockmessageforthewordsshootingNAME=YQS]OOH—>endofmassage,OFFH—endofscreenlineDSEGSEGMENT]Óᦪ(ÒNAME_YQSDB2]Startrow$ÎcL&DB2]Startcolumn$Îcᑡ&DB1000001IB]ColorattributeDB•Shooting,,OFFH,OFFH]“Shooting”DB7DUPODCH,OFFH,OFFH]GraphicsencodingofthewordNAME=YQSusingIBMcharacterset

104DBODEH,ODBH,4DUP(20H),ODBH,ODDH,20H,ODBH,ODFH,ODBHDB20H,20H,ODBH,5DUP(20H),ODBH,20H,2DUP(ODFH,ODBH)DB8DUP(20H),ODFH,ODBH,20H,20H,ODBH,ODFH,20H,20HDB3DUP(ODBH),3DUP(20H),3DUP(ODBH),ODCH,OFFHDBODEH,ODBH,ODBH,3DUP(2OH),ODBH,ODDH,2DUP(20H,ODBH)DB2OH,20H,ODBH,ODBH,3DUP(20H),ODBH,ODBH,20H,20H,ODBHDB11DUP(20H),3DUP(ODBH,20H,20H),20H,ODBH,20H,ODBHDB3DUP(20H),ODFH,OFFHDBODEH,ODBH,20H,ODBH,20H,20H,ODBH,ODDH,2DUP(20H,ODBH)DB2OH,4DUP(20H,ODBH),2OH,20H,ODBH,ODCH,ODBH,20HDB7DUP(ODFH),3DUP(20H,20H,ODBH),3DUP(20H),ODBH,2OH,ODBHDB3DUP(ODCH),20H,OFFHDBODEH,ODBH,20H,20H,ODBH,20H,ODBH,ODDH,20H,ODBH,ODFHDBODBH,4DUP(20H,20H,ODBH),20H,ODFH,20H,7DUP(ODCH),20HDB20H,ODFH,ODBH,ODBH,ODFH,20H,20H,ODBH,3DUP(20H),ODBHDB20H,20H,3DUP(ODFH),ODBH,OFFHDBODEH,ODBH,3DUP(20H),ODBH,ODBH,ODDH,2DUP(20H,ODBH),20HDB2OH,ODBH,5DUP(20H),2DUP(ODBH,20H,20H),10DUP(20H),ODBHDBODBH,3DUP(20H),ODBH,20H,ODCH,20H,ODBH,20H,ODCHDB3DUP(20H),ODBH,OFFHDBODEH,ODBH,4DUP(20H),ODBH,ODDH,ODCH,ODBH,20H,ODBHDBODCH,20H,ODBH,5DUP(20H),ODBH,20H,2DUP(ODCH,ODBH)DB9DUP(20H),ODCH,ODBH,ODBH,ODCH,3DUP(20H),ODFH,ODFHDBODBH,2OH,2OH,ODFH,3DUP(ODBH),20H,OFFHDB00]Â᪗öSTART_COLDB?DSEGENDS]×xÓᦪ(Ò]Textdisplayprocedures:displayamessageonthegraphicsscreenCSEGSEGMENT]ÓØṹÒMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:PUSHDS]BCDOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADI,NAME_YQSMOVDH,[DI]]GetrowintoDHINCDI]BumppointerMOVDL,[DI]]AndcolumnintoDLMOVSTART_COL,DL]StorestartcolumnMOVAH,2]SetcursorpositionMOVBH,0]PageO

105INT10HINCDI]BumppointertoattributeMOVBL,[DI]]GetcolorcodeintoBLChar_write:INCDI]BumptomessagestartMOVAL,[DI]]GetcharacterCMPAL,OFFH]Endofline?JEBUMP_ROW]NextrowCMPAL,0]TestforterminatorJEEND_TEXT]ExitroutineCALLSHOW_CHARJMPCHAR_WRITEEND_TEXT:RET]DOSBump_row:INCDH]RowcontrolregisterMOVDL,START_COL]ColumncontroltostartcolumnMOVAH,2]SetcursorpositionMOVBH,0]PageOINT10HJMPCHAR_WRITEMAINENDP]DisplaycharacterinALandusingthecolorcodeinBLShow.charPROCNEAR]6Êå@AMOVAH,9]BIOSservicerequestnumberMOVBH,0]PageOMOVCX,1]NorepeatINT10H]BumpcursorINCDLMOVAH,2]SetcursorpositionMOVBH,0]PageOINTIOHRETShow_charENDP]SHOW_CHARå@ACSEGENDS×xÓØṹÒENDSTART]æ<çèé@A10.13÷ø@Aùùᵨúûᦪᩭ{ᑴᐸ>?ᙠ/Vxüu஺ý<ᑏ@Aᵨúûᦪᩭ{ᑴþῊASCHṹ02HḄ஺ῊḄᑡ⌴1஺ḄḄᡈ᪷!ᦪ0ஹ1ᡈ2ᩭ%&'()0ஹ24ᡈᑡ()79*+,஺Ὴᙠ.0.25s஺/01INT1AHḄAH=02'*3Ḅ45ᵨᑭᵨ849:Ḅ*;ᙠ(ᓄḄ*3=>)?@!ᦪḄAᦪ஺BC1DEF᝞1TITLEDisp_Laugh.EXEHῊDE

106CSEGSEGMENTH&JKṹFMAINPROCFARASSUMECS:CSEGSTART:PUSHDSHL9:DOSSUBAX,AXPUSHAXMOVAH,OFHHM'NOINT10HPUSHAXHPQ'NO(AL)MOVAH,0HLR⁐80x25ᦻUNOMOVAL,3INT10HMOVCX,IH.ῊVWXឋMOVDH,12HH12Z[\]^Ḅ_3`aMOVDL,0H0ᑡBEGIN:CMPDL,79Hbᑮ79ᑡd⌨fJAEEXITCMPDH,0Hbᑮg0d⌨fJBEEXITCMPDH,24Hbᑮh24d⌨fJAEEXITMOVAH,2Hᐝ᪗INT10HMOVAH,9Hᙠᐝ᪗VWXឋMOVAL,02HHMVWXឋMOVBL,7INT10HCALLDELAYHk*0.25lMOVAH,9Hᙠᐝ᪗VWXឋMOVAL,Hmno◀8ḄVMOVBL,7INTIOHINCDLHbᑮᑡPUSHDXMOVAH,0H2'*3,€1s(11=*:ᑖwZwxl:1/100lH?@!ᦪAᦪINT1AHMOVAX,DXPOPDXANDAL.03HH!ᦪ)1/100lḄᨬz{JZDOWNH!ᦪḄᨬz{)0ᑣ}CMPAL,1JNZLEVEL;!ᦪḄᨬz{)N2ᑣ~b

107DECDHH!ᦪḄᨬz)1ᑣJMPBEGINDOWN:INCDHLEVEL:JMPBEGINEXIT:POPAXHឮ'NO(AL)MOVAH,0INT10HRETH9:DOSMAINENDPDELAYPROCNEARHk*0.25sDEPUSHCXPUSHDXMOVDX,25Hk*0.25sDELI:MOVCX,2801Hk*10msDEL2:LOOPDEL2DECDXJNZDELIPOPDXPOPCXRETDELAYENDPHDELAYDE+,CSEGENDSH&JKṹFENDSTARTHDE+,10.14ᑖPC!Ḅ8253/54&*ᘤḄwᙢᙬC18253/54&*ᘤḄ3.ᦪᘤCounter஺ஹCountedCounter2Ḅwᙢᙬᑖ)40Hஹ41H42H஺8253/54ᑁᨵ.ᵨḄᑴ¢Qᘤwᙢᙬ)43H஺10.158253/54&*ᘤḄ£.ᦪᘤᕸ.ᵨ¥¦§ᘤ¨ḄwᙢᙬC18253/54&*ᘤḄᦪᘤCountedᵨ¥¦§ᘤ¨Ḅwᙢᙬ)42H஺10.16☢ḄKṹᑭᵨªw61HḄPB4ᩭ?@k«*3Ḅ¨〉ᵨ¥ᡠᨵḄ286ஹ386ஹPentiumPCW®¯!஺°ᢣf8DEḄk«*3²³MOVDL,200BACK:MOVCX,16572WAIT:INAL,61HANDAL,10HCMPAL,AHJEWAITMOVAH,ALLOOPWAITDECDLJNZBACKC18DEḄk«*3200x16572x15.0´s=49981152Rµ50s஺

10810.17ᙠPC!ᑏ·¸DE"H¹pyBirthday”·¸ḄºWº⚣᝞:¼½ºº⚣⁚¿¼½ºº⚣⁚¿¼½ºº⚣⁚¿hapC2621/2dayC2621soD2943pyC2621/2toG3921hapBb4661/2birthD2941

109youF3492pyBb4661/2dayC2621hapC2621/2birthA440toF3491pyc2621/2dayC262youE3302birthD294to

110G392hapC2621/2dayA4401youF3492pyc2621/2dearF349birthD2941soE3301C1DE᝞:

111TITLEMUSIC—Amusicof'HappyBirthday5HÀÁ*◤ÃGENSOUNDDEEXTRNSOUNDF:FARHSOUNDF᜜ÅD——ÇᵨȧDESTACKSEGMENTPARASTACK'STACK'H&Jᚮ᪘FDB64DUP'STACK../STACKENDSH&Jᚮ᪘FDSEGSEGMENTPARA'DATA'H&JᦪFMUS_FREQDW262,262,294,262,349,330,262,262,294,262,392,349,262,262DW294,440,349,330,294,466,466,440,262,392,349,-1MUS_TIMEDW25,25,50,50,50,100DW25,25,50,50,50,100DW25,25,50,50,50,50,150DW25,25,50,50,50,100DSEGENDSH&JᦪFCSEGSEGMENTPARA'CODE5H&JKṹFASSUMECS:CSEGDS:DSEGSS:STACKMUSICPROCFARPUSHDSHL9:DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AXHDSË=LEASLMUS_FREQHMȧḄ⚣᳛/º▤B⊤✌ᙢᙬLEABP,MUS_TIMEHMȧḄ⁚¿/*3B⊤✌ᙢᙬFREQ:MOVDI,[SI]H2M⚣᳛=CMPDI,-1H¼¸+,ÐᔩJEEND_MUSMOVBX,DS:[BP]H2M⁚¿CALLSOUNDFH5ÇᵨȧDEADDSI,2ADDBP,2JMPFREQEND_MUS:RETH9:DOSMUSICENDPCSEGENDSH&JKṹFENDMUSICHDE+,SOUNDF——᜜ḄÇᵨȧDE/ᦟᩞ392⚓BTITLESOUNDF——ÇᵨȧDEPUBLICSOUNDFH&J)ᐳÅD

112CSEG1SEGMENTPARAtCODE,H&JKṹFASSUMECS:CSEG1SOUNDFPROCFARPUSHAXPUSHBXPUSHCXPUSHDXPUSHDIMOVAL,0B6HHᑏ&*ᘤ8253ḄÖ>NOOUT43H,ALMOVDX,12HH᪷⚣᳛×8253Ḅᦪ=ᓽ533H*896/freqMOVAX,533H*896H(DX),(AX)=123280H=533H*896DIVDIH(DI)=freqOUT42H,ALHᔣ8253〈ᦪ=MOVAL,AHOUT42H,ALINAL,61HHM8255ḄPBw'ᑁ¯ÛPÜMOVAH,ALORAL,3H`aȧ,PB1=1,PBO=1OUT61H,ALWAIT1:MOVCX,663Hk*(BX)xlOmsCALLWAITFMOVAL,AHANDAL,OFCHHÝÞȧPB1=O,PB0=0OUT61H,ALPOPDIPOPDXPOPCXPOPBXPOPAXRETSOUNDFENDPWAITFPROCNEARPUSHAXWAITF1:INAL.61HANDAL,10HCMPAL,AHJEWAITF1MOVAH,ALLOOPWAITF1POPAXRETWAITFENDP

113CSEG1ENDSH&JKṹFEND10.18ᑏᵨßà⌱âã!ä弸ḄDE஺✌ᐜᙠ[\f¼¸çᓫ᝞1AMUSIC1BMUSIC2CMUSIC3'Zßàéᐭ¼¸EA,BᡈC*ã!ᑣäåᡠ⌱âḄ¼¸'ᙠßàᢥ0ß*,äå+,஺C1DEF᝞1MUS_LSTDB4AMUSIC1\ODH,OAHDB4BMUSIC2\ODH,OAHDBCMUSIC3',ODH,OAHDBPEND\ODH,OAH,$1■■MOVAH,09HVìḄDOS45ᵨLEADX,MUS_LISTINT21HINPUT:MOVAH,1Hßàéᐭ.VḄDOS45ᵨINT21HCMPAL,OH+,äåᔩJEEXITORAL,00100000B:()íᑏVîCMPAL,"aHä弸aᔩJNZBOCALLMUSIC1Hïä弸AJMPINPUTBO:CMPAL,'b'Hä弸bᔩJNZCOCALLMUSIC2Hïä弸BJMPINPUTCO:CMPAL,lc,Hä弸cᔩJNZINPUTCALLMUSIC3Hïä弸CJMPINPUTEXIT:RETH9:ðAjJᳮã!ã!ᵯóôõö÷øùDCᫀû⚣ᦟDü

114KᚪLEþẆᕒᓝὅᩭii.iᑏᦻḄ┯"ṹ(1)$%ᦻ(2)'()*+(3)ᑏ,-.┯"ṹ/(1)06(2)03(4)1911.20ᵨ3cH2345ᦻ678ᦻ9:ᙠ6<=>*?@ABCD.EFᦻGHI/0,ᑏJᦻ6KᦻᑁMNO◀஺11.3RSTUᑏVWᑮYᦻ6᝞[\ᨵᐵ_ᦻ6`3>+@Aa⚪D.ᦻcdḄeᑖVWg\ᨵNᑏᐭ6R7⌼ᡂᑏᐭḄᦻkl᦮஺11.4☢ḄASCIZoᨵ@A┯"DPATH_NAMEDB'C:\PROGRAMS\TEST.DAT'.EASCIZoḄᨬqrsYᐰ0u⁚6wᦋ/PATH_NAMEDB'C:\PROGRAMS\TEST.DAT',011.5☢/,ᦻyzḄ{|ᨵ@A┯"DFILE_HNDLDB?.ᦻ}u~6Ewᦋ/FILE_HNDLDW?11.6ᙠASCPATHu⁚{|/ᘤDḄᦻPATIENT.LST,yzASCIZo஺.ASCPATHDB'D:\PATIENT.LST',011.711.6⚪Ḅᦻ6ḄYᒹ(patientnumber)5u6(name)20u6(city)20u6⊙⍝(streetaddress)20u6?ᨴ(mmddyy)6u6ឋ(M/Fcode)Iu6(roomnumber)2u6(bednumber)2u6(1)yzḄᔜY(2)yz,ᦻḄ{|FHANDLEব4ᦻভPATNTOUTḄᑏᐭ(5)ᐵᦻ(6)¡¢ᦻᒹ£¤¥┯".(1)PATNTOUTEQUTHISBYTEpatientDB5DUP(?)nameDB20DUP(?)cityDB20DUP(?)streetDB20DUP(?)mmddyyDB6DUP(?)M_FcodeDB?roomDB2DUP(?)bedDB2DUP(?),0AH,0DHCOUNT=$-PATNTOUT¦GHফFHANDLEDW?(3)MOVAH,3CH¦4ᦻ23

115MOVCX,00¦¨©ᦻªឋLEADX,ASCPATHINT21HJCERRORMOVFHANDLE,AX¦,ᦻ(4)MOVAH,40H¦ᑏᦻ23MOVBX,FHANDLE¦ᦻMOVCX,COUNT¦GHLEADX,PATNTOUT¦Ḅ✌ᙢᙬINT21HJCERRORCMPAX,COUNT¦ᡠᨵḄu⁚¯ᑏᐭsᔩDJNEERROR1(5)MOVAH,3EH¦ᐵ_ᦻ23MOVBX,FHANDLE¦ᦻINT21HJCERROR(6)ᦻḄ¤¥┯"9ᒹ£ᙠ(3)ஹ(4)ஹ(5)Ḅ஺11.811.7⚪Ḅᦻ6ᵨᦻ²ᑏYl᦮Ḅ³ᦻ´µ6³ḄYᐭPATNTIN¶ᙠ·¸¢¹º஺.´µ᝞TITLEREADDISP.EXE¦ᑭᵨᦻ¼µ³ᦻ´µ¦Readdiskrecordscreatedbyhancreat.modelsmall.stacklOOh.dataendededb0¦c½ᜐᳮᢣºfhandledw?patntindb80DUP(4?)¦DTAasepathdb4d:\patient.lst,,0openmsgdb'***openerror***',Odh,Oahreadmsgdb'***readerror***',Odh,Oahrowdb0.codebeginprocfarmovax,@datamovds,axmoves,axmovax,0600hcallscreen¦O·callcurs¦ÁIᐝ᪗callopenh¦ᡭÅᦻ6ÁIDTA

116cmpendcde,0¦ᡭÅ┯"ᔩDjnzaO¦┯"6Æc½contin:callreadh¦³cmpendcde,0¦³┯"ᔩ?jnzaO¦┯"6Æc½calldisph¦\┯6¹ºjmpcontinaO:movax,4c00h¦⌨´µ6ÉÊDOSint21hbeginendp;ᡭÅᦻopenhprocnearmovah,3dhmoval,0leadx,ascpathint21hjcbl¦ᡭÅ┯"ᔩDmovfhandle,ax¦\ᨵ┯6,ᦻretbl:movendcde,01¦ᡭÅ┯"6ᢣºc½ᜐᳮleadx,openmsgcallerrm¦¹º┯VWretopenhendp;³readhprocnearmovah,3fhmovbx,fhandlemovex,80leadx,patntinint21hjccl¦³┯"ᔩDcmpax,0¦ᦻ9³lᔩDjec2¦³l6⌨retcl:leadx,openmsg¦³┯"callerrm¦¹º┯VWc2:movendede,01¦³┯"ᡈᦻ³l6ᢣºc½ᜐᳮretreadhendp¦¹º

117disphprocnearmovah,40h¦ᔣ᪗ÎÏÁᜓÑᦻ=01ᑏᦻmovbx,01¦᪗ÎÏÁᜓḄᦻÒ01movex,80leadx,patntinint21hcmprow,24¦9ᑮ·¸ÓeᔩDjaedl¦9ᑮ·¸Óe6⌨incrowretdl:movax,060Ihcallscreen¦·¸¢ᔁÕcallcurs¦ÁIᐝ᪗retdisphendp;·¸¢ᔁscreenprocnear¦ᐭÖ×ᦪ/axmovbh,leh¦ÁIÙ⁐movex,0¦·¸Û¢Ümovdx,184fh¦·¸ÝÜintlOhretscreenendp;ÁIᐝ᪗cursprocnearmovah,2¦ÁIᐝ᪗movbh,0movdh,row¦Õmovdl,0¦ᑡintlOhretcursendp;¹º┯VWerrmprocnearmovah,40h¦ᔣ᪗ÎÏÁᜓÑᦻ=01ᑏᦻmovbx,01¦᪗ÎÏÁᜓḄᦻ=01movex,20int21hreterrmendp

118endbegin11.9²ᑏ45¶ᑏᐭᦻḄ´µ஺ᐕàᵨᡝRââᐭã3uä6ãÑåäæ12uä6ᓫè1Yuä஺´µ0ᵨᦻ45ᨵ<éVWḄᦻ஺êë⌕ᓫèRASCIIṹÆᣚ/Òîᑴᦪ஺☢}ÏᐭḄðpart#Descriptionpricepart#Descriptionprice023Assemblers00315024Linkages00430027Compilers00525049Compressors00920114Extractors11250117Haulers00630122Lifters10520124Processors21335127Labtiers00960232Bailers05635237Grinders08250999000.´µ᝞TITLEHANCREAT.EXE;ᑭᵨᦻ45ᦻ´µ.modelsmall.stack100h.dataprompt1dbPleaseinputPart#:$';ñºÏᐭãprompt2dbPleaseinputDescription:$';ñºÏᐭãæprompt3db'PleaseinputPrice:$';ñºÏᐭᓫèmaxlendb13;ᨬᜧÏᐭGH6Ïᐭuo23ḄSTUactlendb?;ó▭ÏᐭGHbufferdb13DUPC';ÏᐭuoSTUcrlfdbOdh,Oah,'$'pathnamedb'filename.1st',0handledw?dtadb19DUP'';DTAerrcdedb0;┯"ᜐᳮᢣºopnmsgdb'***openerror***¦Odh,Oahwrtmsgdb'***writeerror***',Odh,Oah.codebeginprocfarmovax,@datamovds,ax

119moves,axmovax,0600hcallscren;O·callcurs;ÁIᐝ᪗callcreath;45ᦻcmperrcde,0;45┯"ᔩDjnzaO;┯"6Æc½contin:callproch;ᜐᳮcmpactlen,஺;ÏᐭḄuoGH/0,c½ÏᐭᔩDjnecontin;kc½6õöcallclseh;c½:Ïᐭ6ᐵ_ᦻa0:movax,4c00h;⌨´µ,ÉÊDOSint21hbeginendp¦45ᦻcreathprocnearmovah,3chmovex,0;¨©ªឋleadx,pathnameint21hjcbbb;45ᦻ┯"ᔩDmovhandle,ax;\ᨵ┯6,ᦻretbbb:leadx,opnmsg;45ᦻ┯"callerrm;¹º┯VWretcreathendp9-;ùᦈÏᐭprochprocnearcldleadi,dta;ᙠdiÁIdtaḄ✌ᙢᙬleadx,prompt1;Ïᐭãmovbx,3;ãᨬû3Yucallin_procjcexit;\ᨵÏᐭ6c½leadx,prompt?;Ïᐭãæmovbx,12;ãæᨬû12Yucallin_procjcexit;\ᨵÏᐭ,c½leadx,prompt3;Ïᐭᓫèmovbx,5¦ãᓫèᨬû5YᓝîᑴuÑüýþYÒîᑴuäcallin_proc

120calldec_bin;FᓝîᑴḄᓫèÆᣚ/ÒîᑴḄᓫèmovwordptr[dta+17J,OaOdh;ᙠDTAḄᨬqÿᐭᣚcallwrith;ᵨᦻᑏexit:retprochendp——;ᐭin_procprocnearmovah,09h;int21hpushdileadi,buffer;ᙠbufferᐭ!"movcl,maxlenmovch,0moval,'*repstosbpopdimovah,Oah;ᐭleadx,maxlenint21hcalldisp_crlfcmpactlen,0;#▭ᐭᦪ=0,ᑣ'ᨵᐭ)*jeend_inpushdileadi,buffer;ᙠbufferḄ,☢ᐭ!"moval,actlenmovah,0adddi,axmovcl,maxlenmovch,0moval,actlensubcl,almoval,''repstosbpopdileasi,buffer;.buffer/01ᑁ3〈ᐭdtamovex,bxrepmovsb;.ᐭᑁ3〈ᐭdtaclc;ᨵᐭ5(cf)=Ojmpin_endend_in:stc;'ᨵᐭ5intend:retin_procendp

121;.ᓝ7ᑴḄᓫ:;ᣚ<=7ᑴḄᓫ:dec_binprocnearmovbx,0movsi,0movex,5transfer:moval,buffer[si];>ᓝ7ᑴḄ?@ᑮB@Cᦪempal,Odh;DᔩFjedec_binlempal,11;D!"ᔩFjedec_binlandal,Ofh;.asciiṹ;ᣚ<ᓝ7ᑴᦪmovah,0pushexxchgax,bx;ᓝ7ᑴᦪ?@xlO+B@==7ᑴᦪmovex,10mulexxchgax,bxaddbx,ax;;ᣚḄ=7ᑴᦪᙠ(bx)popexincsilooptransferdec_binl:movwordptr[dta+15],bx;Iᐭᓫ:ᑮdtaḄᓫ:@Jretdec_binendp,L--;ᵨᦻᑏwrithprocnearmovah,40hmovbx,handlemovex,19leadx,dtaint21hjncddd;ᑏᦻ┯OᔩFleadx,wrtmsgcallerrm;P┯movactlen,0ddd:retwrithendp;ᵨᦻᐵRᦻclsehprocnearmovdta,lah;ᑏᦻ)*lahcallwrithmovah,3eh

122movbx,handleint21hretclsehendpSTUVᔁscrenprocnear;ᐭXYᦪ

123{|ᵨᦻopPqᦻ᝞`|TITLEHANDREAD.EXE;ᑭᵨᦻopqᦻ;Readdiskrecordscreatedbyhancreat.modelsmall.stacklOOh.dataendcdedb0;)*ᜐᳮᢣcrlfdbOdh,Oah,'$,pathnamedb'filename.1st',0messagedb'Part#DescriptionPrice*,Odh,Oah,'$'handledw?tacklinedb11$*dtadb19DUP(");DTAerrcdedb0;┯Oᜐᳮᢣopnmsgdb'***openerror***SOdh,Oahreadmsgdb'***readerror***SOdh,Oahrowdb0.codebeginprocfarmovax,@datamovds,axmoves,axmovax,0600hcallscreen;Tcallcurs;ZJᐝ᪗leadx,message;᪗⚪movah,09hint21hincrowcallopenh;ᡭᦻZJDTAcmpendcde,0;ᡭ┯OᔩFjnzaO;┯O;)*contin:callreadh;pcmpendcde,0;p┯OᔩFjnzaO;┯O;)*calldisph;'┯jmpcontinaO:movax,4c00h;⌨P5DOSint21hbeginendpSᡭᦻ

124openhprocnearmovah,3dhmoval,0leadx,pathnameint21hjcbbb;ᡭ┯OᔩFmovhandle,ax;'ᨵ┯Iᦻretbbb:movendcde,01;ᡭ┯Oᢣ)*ᜐᳮleadx,readmsgcallerrm;P┯retopenhendpSpreadhprocnearmovah,3fhmovbx,handlemovex,19leadx,dtaint21hjccl;p┯OᔩFempax,0;ᦻpᔩFjec2;p,⌨Pempdta,lah;ᦻ)*ᔩFJec2retcl:leadx,opnmsg;p┯Ocallerrm;P┯c2:movendede,01;p┯Oᡈᦻpᢣ)*ᜐᳮretreadhendp;disphprocnearleadx,tackline;P"I"movah,09hint21hmovah,40h;ᔣ᪗ePZᜓgᦻ=01ᑏᦻmovbx,01;᪗ePZᜓḄᦻ=01movex,3leadx,dtaint21hleadx,tackline;P"I"

125movah,09hint21hmovah,40h;ᔣ᪗ePZᜓgᦻ=01ᑏᦻmovbx,01;᪗ePZᜓḄᦻ=01movex,12leadx,dta+3int21hleadx,tackline;P“I"movah,09hint21hmovsi,wordptr[dta+15]callbin_dec;;ᣚ<ᓝ7ᑴᦪleadx,tackline;P“I”movah,09hint21hcalldisp_crlfcmprow,24;ᑮTUᔩFjaeddd;ᑮTU⌨Pincrowretddd:movax,060Ihcallscreen;TUVᔁLcallcurs;ZJᐝ᪗retdisphendp»;.=7ᑴḄᓫ:;ᣚ<ᓝ7ᑴḄᓫ:qbin_decprocnearpushexmovex,lOOOOdcalldec_div;◀qPmovex,lOOOdcalldec_divmovex,lOOdcalldec_divmovex,lOdcalldec_divmovex,Idcalldec_divpopexretbin_decendp;◀qP

126dec_divprocnearmovax,simovdx,0divexmovsi,dx;ᦪIᙠ(si)`LḄ◀movdl,al;ᖪ(ᙠ00h~09hᑁ)〈(dl)adddl,30h;;ᣚ<09Ḅasciiṹmovah,02h;Pint21hretdec_divendp;TUVᔁscreenprocnear;ᐭXYᦪ

127retdisp_crlfendp;disp_crlf)*endbegin11.1111.9⚪stḄᦻᢥ`☢Ḅ⌕iᑏ|(1)yᡠᨵḄpᐭᑁIḄᦪ/01TABLES(2)ᵨᡝᐭ¡(¢)£ᐸᦪ¥S(3)ᢥ¡¦§TABLES(4)᝞¨©ªᡠ⌕Ḅ¡ᵨ«Ḅᓫ:¬P®:(ᓫ:xᦪ¥);(5)¡(¢)¯°£®:±஺{|᝞`|TITLEREAD11.EXE;ᑭᵨᦻopq¬;Readdiskrecordscreatedbyhancreat.modelsmall.stacklOOh.dataendcdedb0;)*ᜐᳮᢣpathnamedb'filename.1st',0in_mesldb²ᐭ3@ᦪḄ¡Part#|S$in_mes2db²ᐭ´¡Ḅᦪ¥|out_mesldbᐭḄµDᦪ¶²·¸ᐭᦪ|$out_mes2dbᐭḄ¡µIᙠ¶²·¸ᐭ3@ᦪḄ¡Part#|S$in_bufferdb6,?,6dup(20h);ᐭ/01messagedb'Part#DescriptionSum_Price',Odh,Oah/S,tacklinedb'I$'sum_pricedw0,0decimaldb10DUP(O),'$'crlfdbOdh,Oah,'$'handledw?tabledb19*100DUP(');table,¹ºᜧerrcdedb0;┯Oᜐᳮᢣopnmsgdb'***openerror***SOdh,Oahreadmsgdb'***readerror***SOdh,Oah.codebeginprocfarmovax,@datamovds,axmoves,axmovax,0600hcallscreen;Tcallcurs;ZJᐝ᪗callopenh;ᡭᦻZJTABLE

128cmpendcde,0;ᡭ┯OᔩFjnzaO;┯O;)*callreadh;pcmpendcde,0;p┯OᔩFjnzaO;┯O;)*callin_Part;'┯ᐭ¡¼¡ᦪ¥aO:movax,4c00h;⌨P5DOSint21hbeginendp»Sᡭᦻopenhprocnearmovah,3dhmoval,0leadx,pathnameint21hjcbbb;ᡭ┯OᔩFmovhandle,ax;'ᨵ┯Iᦻretbbb:movendcde,01;ᡭ┯Oᢣ)*ᜐᳮleadx,opnmsgcallerrm;P┯retopenhendpSpreadhprocnearmovah,3fhmovbx,handlemovex,19*100;eᜓpᐭḄ⁚ᦪleadx,tableint21hjccl;p┯OᔩFcmpax,0;ᦻpᔩFjec2;p,⌨Pcmptable,lah;ᦻ)*ᔩFJec2movbp,ax;pᡂ¿ᑣᙠAX5#▭pᐭḄ⁚ᦪIᐭbpretcl:leadx,readmsg;p┯Ocallerrm;P┯c2:movendede,01;p┯Oᡈᦻpᢣ)*ᜐᳮretreadhendp

129;ᐭ¡¼¡ᦪ¥in_Partprocnearleadx,in_mesl;ᐭ¡in_Partl:callinput;ᐭᦪcmpin_buffer+l,3;ᐭḄ¡mᦪD3@ᔩFleadx,out_mes2;·¸ᐭ¡jnein_Partlcldmovax,bp;C#▭pᐭᦻḄ⁚ᦪmovcl,19;ÀmḄÁÂ<19mdivcl;¬#▭pCḄᦪᙠalmovbl,almovbh,0;>Ã0mÄÅÆin_Part2:leasi,in_buffer+2;ÅÆ¡ÇḄ¡leadi,tablemoval,19mulbhadddi,ax;¬ÈmḄ✌ᙢᙬmovwordptrdecimal,di;I✌ᙢᙬmovex,3repeempsbjein_Part3;ÆᑮÇḄ¡incbh;Æ`Lmcmpbh,bljbin_Part2jmpin_Partl;ÌÆᑮÇḄ¡·¸ᐭin_Part3:leadx,in_mes2;ᐭ¡ᦪ¥callinput;ᐭᦪcalldec_bin;.ᐭᦪ;ᣚ<=7ᑴᦪᙠbxmovdi,wordptrdecima;diᢣᔣ´Ḅ✌ᙢᙬmovax,[di+15];Cᓫ:mulbx;®:"ᙠ(dx),(ax)movsum_price,axmovsum_price+2,dxcalldisp_rec;retin_PartendpSᐭᦪinputprocnearinput1:movah,09h;int21hmovah,Oah;ᐭ

130leadx,in_bufferint21hleadx,out_mesl;movcl,in_buffer+lcmpcl,0;ᐭḄᦪmᦪ<0ᔩFjzinput1movch,0movbx,2input2:moval,in_buffer[bx];ᐭḄDᦪ09ᔩFcmpal,'O'jbinput1cmpal,'9'jainput1incbxloopinput2retinputendp>;.ᓝ7ᑴᦪ;ᣚ<=7ᑴᦪdec_binprocnearmovbx,0movsi,2movcl,in_buffer+lmovch,0transfer:moval,in_buffer[si];>ᓝ7ᑴḄ?@ᑮB@Cᦪandal,Ofh;.asciiṹ;ᣚ<ᓝ7ᑴᦪmovah,0pushexxchgax,bx;ᓝ7ᑴᦪ?@xlO+B@==7ᑴᦪmovex,10mulexaddbx,ax;;ᣚḄ=7ᑴᦪᙠ(bx)popexincsilooptransferretdec_binendp;disp_recprocnearcalldisp_crlfleadx,message;᪗⚪movah,09hint21h

131leadx,tackline;P“I"movah,09hint21hmovah,40h;ᔣ᪗ePZᜓ(ᦻ=01)ᑏᦻmovbx,01;᪗ePZᜓḄᦻ=01movex,3;3@ᦪḄ¡movdx,wordptrdecima;dxᢣᔣ´Ḅ✌ᙢᙬint21hleadx,tackline;P“I”movah,09hint21hmovah,40hÍ᪗ePZᜓ(ᦻ=01)ᑏᦻmovbx,01;᪗ePZᜓḄᦻ=01movex,12;12@Ḅ¡¯°movdx,wordptrdecima;dxᢣᔣ´ḄÎᙢᙬadddx,3int21hleadx,tackline;P"I"movah,09hint21hcallbin_dec;®:";ᣚ<ᓝ7ᑴᦪleadx,tackline;P“I”movah,09hint21hcalldisp_crlfretdisp_recendp----ߟ———;4⁚=7ᑴᦪ;ᣚ<107ᑴbin_decprocnearmovbx,0;10⁚Ḅbedṹᓫᐗ0movex,10bin_decl:movdecimal[bx],0incbxloopbin_declmovex,4*8;4⁚=7ᑴᦪᐳ4*8=32@bin_dec2:movbx,10-1;¬(((a31*2+a30)*2+a29)...)*2+a0shlwordptr[sum_price],1;4⁚=7ᑴᦪ]Ò1@rclwordptr[sum_price+2],1pushexmovex,10bin_dec3:moval,decimal[bx];¬(...)*2+ai,aiᵫ7@@Ôᐭadcal,alaaaÕÖ×bedṹØ᦮

132movdecimal|bx],aldecbxloopbin_dec3popexloopbin_dec2calldispretbin_decendpdispprocnear;Pmovex,10movbx,0displ:adddecimal[bx],30h;Ú

133cursendp;P┯errmprocnearmovah,40h;ᔣ᪗ePZᜓgᦻ=01ᑏᦻmovbx,01;᪗ePZᜓḄᦻ=01movex,20int21hreterrmendpdisp_crlfprocnear;ᣚleadx,crlfmovah,09hint21hretdisp_crlfendp;disp_crlf)*endbegin11.12ᵨßàᜐᳮḄáoiᑏ.ᵨᡝ◤⌕Ḅ¡g¢ãpCᑮTABLE,q᪷åᐭḄᦪ¥¬P®:±ᯠ,P¡g¢ã¯°£®:±஺{|᝞`|TITLEREAD_RAN.EXE;ᑭᵨᦻoßàpq¬;Readdiskrecordscreatedbyhancreat.modelsmall.stacklOOh.dataendcdedb0;)*ᜐᳮᢣpathnamedb'filename.lst,,0in_mes1db'²ᐭ3@ᦪḄ¡Part#|in_mes2db²ᐭ´¡Ḅᦪ¥|1$,oujmesldbᐭḄµDᦪ¶²·¸ᐭᦪ|out_mes2dbᐭḄ¡µIᙠ¶²·¸ᐭ3@ᦪḄ¡Part#|in.bufferdb6,?,6dup(20h);ᐭ/01messagedb'Part#DescriptionSum_Price',Odh,Oah,,$'tacklinedb'I$'sum_pricedw0,0decimaldb10DUP(0),$crlfdbOdh,Oah,'$'handledw?tabledb19DUP('');tableerrcdedb0;┯Oᜐᳮᢣopnmsgdb'***openerror***SOdh,Oah

134readmsgdb****readerror****,Odh,Oahmovmsgdbr***moveerror****,Odh,Oah.codebeginprocfarmovax,@datamovds,axmoves,axmovax,0600hcallscreen;Tcallcurs;ZJᐝ᪗callopenh;ᡭᦻZJTABLEcmpendcde,0;ᡭ┯OᔩFjnzaO;┯O;)*callin_Part;'┯ᐭ¡¼¡ᦪ¥aO:movax,4c00h;⌨P5DOSint21hbeginendpSᡭᦻopenhprocnearmovah,3dhmoval,0leadx,pathnameint21hjcbbb;ᡭ┯OᔩFmovhandle,ax;'ᨵ┯Iᦻretbbb:movendcde,01;ᡭ┯Oᢣ)*ᜐᳮleadx,opnmsgcallerrm;P┯retopenhendp;preadhprocnearmovah,3fhmovbx,handlemovex,19;eᜓpᐭḄ⁚ᦪleadx,tableint21hjccl;p┯OᔩFcmpax,0;ᦻpᔩFjec2;p,⌨P

135cmptable,lah;ᦻ)*ᔩFJec2movbp,ax;pᡂ¿ᑣᙠAX5#▭pᐭḄ⁚ᦪIᐭbpretcl:movendcde,01;p┯Oᡈᦻpᢣ)*ᜐᳮleadx,readmsg;p£᧖Ocallerrm;P┯jmpc3c2:movendcde,02;p┯Oᡈᦻpᢣ)*ᜐᳮc3:retreadhendp~SëÒìᦻpᑏᢣ┐mov_pointerprocnearmovah,42hmoval,0movbx,handleint21hjcdl;┯OᔩFretdl:leadx,movmsg;┯Ocallerrm;P┯movendcde,01;┯O,ᢣ)*ᜐᳮretmov__pointerendp;ᐭ¡¼¡ᦪ¥in_Partprocnearleadx,in_mesl;ᐭ¡in_Partl:callinput;ᐭᦪcmpin_buffer+l,3;ᐭḄ¡mᦪD3@ᔩFleadx,out_mes2;·¸ᐭ¡jnein_Partlcldmovex,0;@Ò¥Ḅ?@movdx,0;@Ò¥ḄB@callmov_pointer;ëÒìᦻpᑏᢣ┐ᑮᦻ✌in_Part2:callreadh;pcmpendede,2;pᦻ)*ᔩFjein_Partl;)*ÌÆᑮÇḄ¡·¸ᐭcmpendede,1;p┯OᔩFjein_Part4;┯O;)*leasi,in_buffer+2;ÅÆ¡ÇḄ¡leadi,table

136movex,3repeempsbjein_Part3;ÆᑮÇḄ¡jmpin_Part2;Æ`Lm¡in_Part3:leadx,in_mes2;ᐭ¡ᦪ¥callinput;ᐭᦪcalldec_binS.ᐭᦪ;ᣚ<=7ᑴᦪᙠbxleadi,table;diᢣᔣ´Ḅ✌ᙢᙬmovax,[di+15];Cᓫ:mulbx;®:"ᙠ(dx),(ax)movsum_price,axmovsum_price+2,dxcalldisp_rec;in_Part4:retin_Partendp;ᐭᦪinputprocnearinput1:movah,09h;int21hmovah,Oah;ᐭleadx,in_bufferint21hleadx,out_mesl;movcl,in_buffer+1empcl,0;ᐭḄᦪmᦪ<0ᔩFjzinput1movch,0movbx,2inpuফmoval,in_buffer[bx];ᐭḄDᦪ0~9ᔩFempal,'O'jbinput1empal,’9’jainput1incbxloopinput2retinputendp;.ᓝ7ᑴᦪ;ᣚ<=7ᑴᦪdec_binprocnearmovbx,0movsi,2movcl,in_buffer+l

137movch,0transfer:moval,in_buffer[si];>ᓝ7ᑴḄ?@ᑮB@Cᦪandal,Ofh;.asciiṹ;ᣚ<ᓝ7ᑴᦪmovah,0pushexxchgax,bx;ᓝ7ᑴᦪ?@xlO+B@==7ᑴᦪmovex,10mulexaddbx,ax;;ᣚḄ=7ᑴᦪᙠbxpopexincsilooptransferretdec_binendpL;disp_recprocnearcalldisp_crlfleadx,message;᪗⚪movah,09hint21hleadx,tackline;P"I"movah,09hint21hmovah,40h;ᔣ᪗ePZᜓgᦻ=01ᑏᦻmovbx,01;᪗ePZᜓḄᦻ=01movex,3;3@ᦪḄ¡leadx,table;dxᢣᔣ´Ḅ✌ᙢᙬint21hleadx,tackline;P“I”movah,09hint21hmovah,40h;ᔣ᪗ePZᜓgᦻ=01ᑏᦻmovbx,01;᪗ePZᜓḄᦻ=01movex,12;12@Ḅ¡¯°leadx,table;dxᢣᔣ´Ḅ✌ᙢᙬadddx,3int21hleadx,tackline;P“I"movah,09hint21hcallbin_dec;®:";ᣚ<ᓝ7ᑴᦪleadx,tackline;P"I"movah,09h

138int21hcalldisp_crlfretdisp_recendp;4⁚=7ᑴᦪ;ᣚ<107ᑴbin_decprocnearmovbx,0;10⁚Ḅbedṹᓫᐗ0movex,10bin_decl:movdecimal[bx],0incbxloopbin_dec1movex,4*8;4⁚=7ᑴᦪᐳ4*8=32@bin_dec2:movbx,10-1;¬(((a31*2+a30)*2+a29)...)*2+a0shlwordptr[sum_price],1;4⁚=7ᑴᦪ]Ò1@rclwordptr[sum_price+2],1pushexmovex,10bin_dec3:moval,decimal[bx];¬(...)*2+ai,aiᵫ7@@Ôᐭadcal,alaaa;ïÖ×bedṹØ᦮movdecimal[bx],aldecbxloopbin_dec3popexloopbin_dec2calldispretbin_decendpdispprocnear;Pmovex,10movbx,0displ:adddecimal[bx],30h;Ú

139int21hretdispendp;disp)*STUVᔁscreenprocnear;ᐭXYᦪ

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

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

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