还剩44页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
;二学生成绩管理系统;•X»KJVXK!KJ^L»WKWK1^X KJXX^L»KJZJL»KJ^L»xlKWK!»!x^XJ^Jxj^L»xfzxlzxw%J»X K£^^L»K1KW;EQU STATEMENTSGO HEREStructNodeequ32;体现式赋值微操作equ page133Node nameequ;类似defineNode numequ12Node mathsequ18Node_english equ20Node Chineseequ22Nodeothers equ24Node totalequ26Nodeavg equ28Nodenext equ30max recordequ100max menuindex equ9^7一*1**T^^7**TxZJH#TXZTS*TSZTS zj*^TXZTS^TXZTSZTSZTSZJS^TSzTszj^^Txzrs#rxzrs^|SzTx^|Szrszrs^TXZTHZT^ZTS*TSZTSxjs^TXzjs^Tszrs^vszrs#rszTs*Txzj^^TxZTSzTxzrs^rszTs*1S^T%zjszrxzTszrs一zj^ztx z^ztszj^ztszjsyfszTsyT^z*zT^zjsyfxzT*^TszT**Tszj^zrvzT^zj^yfszj^ztszis^ts z*zjsytxzr^zT^zj*^fxzT**Tsztszfx z^z^zfszszf^xj^^fxzTsytxyj^•*X**1**J**4**1**1**1**.L**1**!*L**1**J**3**!^*1*K!*1**.L**L*♦»*!**!*L**1*♦匕*!*3**X**A**4*✓J*yT*ZT*ZT*XT*y*T**TSZT^buf1DB30;DATA GOES HEREdata_seg segment;define data segment•^T\^Jx^^Tx^INxT^x^^T^1^^^r^1^^r^^r\^T Tf^^^r^^r^r^T^x^^x^r^iXTN^r\^T^xi^^r^^^r\getint procfar;define subprocedure;从键盘输入一种整数,成果保留到dx中push axpush bxpush exmov dx,offset bufgetint;offset偏移地址;main portof subproceduremov ah,OaHint21Hcall far ptr crlfmov ax,offset bufgetint_datapush ax;字符串首地址mov al,bufgetint_slencbw;字节转字push ax;字符串长度push ax;返回值call farptr decibinpopdxpop axpopax;exit subprocedurepop expop bxpop axretgetintendp;end of subprocedure•^L**£**x**£**A*«、*T**Tx*Y*,[•*g*•[、*7**T**T**T**Y*,[■*7*•[、*T*■卜*7*
4、[、*7*■[、*Y*■[、*J*■[、*7*•卜*7**T**T**v**T**Y**Y**T**7**T*〃、*v*,T、*y*•]、*y*■卜*7**T*,[、*Tw,卜*v*■[■*g*•]、*
7、,T**
7、*7**T**y**T**Y*
4、*T*■卜*
7、*T**T**y*«、*v*,卜*v*■]、、*7*4•*T**T»*T**T**»^*T**|**!**T**7**T**T**T**y**T**T**T**T**T**T**|**T**T*;把以十制进数形式存储在字符串中口勺数转成整数;栈中的参数:;0字符串首地址;1字符串长度;2寄存成果dec ib in_para_1en equ3decibin_strl equword ptr[bp+4+decibin_para_len-0*2]decibinstrllen equword ptr[bp+4+decibin_para_len-l*2]decibinretsult equword ptr[bp+4+deci bin_para_len-2*2]decibin procfar;save registerspushbpmov bp,sppush axpush bxpush expush dxpush sipushdimov bx,OOHmov ex,decibinstrllenmov di,decibinstrldecibinloopl:mov al,byte ptr[di];di为偏移量以字节为单位把地址送入aland al,OfHcbw xchgbx,ax mov si,10mul siadd bx,ax incdiloop decibin_looplmov decibinretsult,bx exitdecibin:;恢复寄存器pop dipopsipop dxpop expopbxpopaxpop bpret decibinendp•KL*^xS^^j*^T^S*1%^T%^r xj^^T^1%^1%^1%^1%^x^r^S*1%^1%^T%^Tx^r^x^Tx^r\^TX^T^r^^1%^1%xj%^x^r^S*1%^S^T%T%xj^•*J**y»*J**y**y**^*^*p»*y»*J**^*y»^p*J**y»*p»*y»«y»^p*J**y»*y**y**p»*^*J**y»^p^p*J**y»*p»*^**y*^p*J**y»*J*^p*p»*^*J**y»^p^»;把bx中时数以十进制形式输出;输入数据寄存在bx中binidec proc farpush axpushbx pushex pushdx pushsimov si,01Hmov ex,lOOOOd;各位依次输出call decdivmov ex,lOOOd calldec div movex,lOOd calldec_divmovex,lOdcall decdivmov ex,Idmov si,OOHcall decdivpop sipop dxpop expop bxpop axretbinidecendpdec_div proc nearmov ax,bxmov dx,0div exmov bx,dx;保留余数mov dl,al;商送入dlemp si,OOH;输出这一位je Ibldecdivemp dl,OOH;处理完毕je exitdec.divmov si,OOHlbl_dec_div:mov ah,02Hint21Hexit_dec_div:retdecdiv endp•*1*^1^^L*£*^1^*y»*!**Y**Y**p»*Y**P**y»*J**y**y**pw*y*^p*y»*J**^**y»*J*^p*pw*y**T*^p•X1^^1*KI*Ki**1^^Lx*1*KI**1*Ki**1*VIX*I*KJ*KI*XI**1*Ki*Kl KI*KT**IKi*XI**IX K1*Kl*KI*Ki*Kl Ki**IX*1*Ki*、、、、、、、、、、、、、、、、*T**T**T*T*T****T*T**T**T**T**T****T*T**T**T*^r**T**T**T**T**T**T*xTxxTnxv**T**r**T****T*T*T**T**T**r**T*7*T*T**T**T**T**T*7*T****T**T*xv**T****T**7*T*T*T**r**T**r**T***T*7*addrecord procfar;define subprocedurepushaxpush bxpush expush dxpush sipush dipushes;main portof subproceduremov ax,rdata p;目前指针移入axmov newnode,ax;再移入newnode存储单元中add rdatap,StructNode;相称于指针加一add rcount,1;计数器加一mov bx,ax;目前指针(newnode所指)移入bxmov ex,OOH;计算总分mov word ptr[bx+Node_next],OOH;Node_next置lea dx,info_0mov ah,09Hint21Hcall farptr getintcallcrlfmov word ptr[bx+Node_num],dxlea dx,info1mov ah,09Hint21Hcall farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node_maths],dxlea dx,info_2mov ah,0911int2111call farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node_engli sh],dxlea dx,info_3mov ah,09Hcall farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node_chinese],dxlea dx,info_4mov ah,09Hint21Hcall farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node_others],dxmov word ptr[bx+Node_total],ex;计算平均成绩mov ax,excwdmov ex,4div exmov word ptr[bx+Node_avg],axlea dx,info5mov ah,09Hint21H;输入姓名lea dx,bufnamemov ah,OaHint21Hcall farptr crlfmov ax,dsmov es,axmov al,bufnameslencbwmov bx,axmov byteptr bufnamedata[bx],$lea si,bufname_datamov di,newnodemov ex,bxinc excldrepmovsbmov di,newnode;newnode目前寄存欧I是目前项日勺地址;add thenew node to thelistmov si,head;head寄存日勺是头指针mov ax,word ptr[si+Node next]mov word ptr[di+Node_next],ax;目前加入项指向上次项(head指向口勺送目前项指针Node nextmov word ptr[si+Node_next],di;头指针指向目前加入项(目前项口勺地址送head);exit subprocedureHISH60q AOUIppeq_qFq.s,xp吨ojnpaoojd qnsjo”od UTPUIip qsndisqsnd xpqsndxo qsndxq qsndXBqsndajnpaoojdqns auijapIjrej oojdpjooaj-^uijd•lzlz1Z*1^^z*1^^lz*p**Y»*y**Y**y**J**y**T**T**y**y»*y**J**y**J**y**J**y**y»*y**T**T**T**T**7**T**T**T**T**i**T**T**T**T**T**T**T**7**T**7**T**T**T**T**7**J**y**J**y»*J**f**y**J**y**p**y**y**p**Y**T**T**T**T**T**T**7**T**7**T**T**T**T**7**J**y**J**y**T**ojnpaoojdqns jopuedpua pjooajppp19J xudodxq dodxo dodxp dod is dodip clodso dodbuflslenDB bufldata DB30dup⑵bufname DB20bufname slenDBbufname dataDB20dupbufgetint DB32bufgetintslen DBbufgetintdataDB32dupstr menuDB Odll Oall Studentmarks system:,OdU,Oall,Odll,Oall,,DB1Add Record,OdH,OaH,OdH,OaHDB2Print All\Odll OallOdllOal,,,lDB3Save,,OdH,OaH,OdH,OaHDB4Open,Odll,OaH,OdH,OaH,OdH,OaHDB5Find,,OdH,OaH,OdH,OaH,OdH,OaHDB6Delete,OdH,OaH,OdH,OaH,OdH,OaHDB OExit,,OdH,OaHDB;Error Stringsstr_error_l DB*Error input!,OdH,OaH,$jump_tb DW case_0DW case_lmov ax,head mov pnode,axloopl_print_record:mov si,pnodemov ax,[si+Node_next]mov pnode,axcmp ax,OOHje exitprintrecordlmov si,pnode;打印学号mov bx,[si+Node_num]call farptr binidec;打印制表符lea dx,str_tabmov ah,09Hint2111exit print recordl:cmp ax,OOhje exitprint record;非要分次跳跃;打印名字movdx,simov ah,09H;打印制表符lea dx,str_tabmov ah,09Hint21H;数学成绩mov bx,[si+Nodemaths]call farptr binidec;打印制表符lea dx,str_tabmov ah,09Hint21H;英语成绩mov bx,[si+Node_english]call farptr binidec;打印制表符lea dx,strtabmov ah,0911int21H;语文成绩mov bx,[si+Node_chinese]call farptr binidec;打印制表符lea dx,str_tabmov ah,09Hint21H;语文成绩mov bx,[si+Node_others]call farptr binideclooplprint recordl:cmp ax,OOOOhje looplprintrecord;打印制表符lea dx,str_tabmov ah,09Hint21H;总成绩mov bx,[si+Node_total]call farptr binidec;打印制表符lea dx,strtabmov ah,09Hint21H;平均成绩mov bx,[si+Node_avg]call farptr binideccall farptrcrlfmov ax,OOOOhjmp1oop1_print_record1exit_print_record:;exit subprocedurepop dipopsipop dxpopexpop bxpopaxretprint_record endp;end of subprocedure•xlz.卜slz s£zT^T^^T^r\^TxTx^T^T^TNTpush di;main portof subprocedure;Create filelea dx,file_namemov ex,0011mov ah,3cHint21Hjc saverecord errorlmov fpl,ax;write recordcountmov ah,40Hmov bx,fplmov ex,02Hlea dx,rcountint21Hjc save_record_error2lea dx,fileinfo1mov ah,09Hint21Hloopl_save_record:movsi,pnodemov ax,[si+Node_next]movpnode,axcmp ax,OOHje saverecordok;write currentnode tothe filemov ah,40Hmov bx,fplmov ex,StructNodemov dx,pnodeint21Hjc save_record_error2jmp1oop1_save_recordsaverecordok:lea dx,file_info_2mov ah,09Hint21Hjmp saverecord closefilesave recorderrorl:lea dx,file_errorlint21Hjmp exi t_save_recordsave_record_error2:lea dx,file_error2mov ah,0911int21Hjmp exitsave recordsaverecord closefile:mov ah,3eHmov bx,fplint21Hexit_save_record:;exit subprocedurepop dipopsipop dxpopexpop bxpopaxretsave_record endp;end ofsubprocedure•1**1**1**1**1**1**1**1**1**1**£**1**1**1**1**1**1**1**1**1**1**1*Q*,*7**T**T**7**7**T**T**T**T**T**T**7**T**T*i*T**T*^T**T*•Ky»JL»^1»JL»K£%yKylz»AK1xa K!KyKX»JL»K1»jL»Ky»JKX^XxyK£%y^X1»AK!Xjt Ky^X»JL»K1»JL»K£Z»JKX^1xlK£%y1^TxZTSzTsZjSZTSZ7**TXZJ*TSZ7S*TSzTsZ|S^TxZJ^ZTXZJS^TxZTS^TSZ7SZTSZ|S^TSZ7S*TXZl^XTXZ7S#TSzTsZjS*TSZ7**TXZ7#TSZ7S*TSzTsXtXZJ^Z1XZjSZTXZTSZ7SZTSZS^TSZ7S*TSZTS*TSZTS#TSzTsZgS^TSZ7S*TXZ7S^TSZ7S*TSZtSXtSZJ^Z1XZTSZTXZTXread_record procfar;define subprocedurepushax pushbx pushex pushdx pushsi pushdi;main portofsubprocedure;0pen filelea dx,file_name mov ah,3dH moval,OOH int21H jcread_record_error1movfpl,ax;read recordcountmov ah,3fH movbx,fpl movex,02H lea dx,rcount int21H jcread_record_error2lea dx,file_info_3mov ah,09Hint21H;分派链表头结点lea ax,rdatamov head,axmov rdata^p,axadd rdata_p,StructNodemov bx,headmov word ptr[bx+Node_next],OOHmov ex,rcount1oop1readrecord:push exmov ax,rdatapmov newnode,axadd rdata_p,StructNode;read newnodemov bx,fplmov ex,StructNodemov dx,newnodeint21Hjc read_record_error2;add newnodetolistmov di,newnodemov si,headmov ax,word ptr[si+Node next]mov word ptr[di+Node^next],axmov word ptr[si+Node_next],dipop exlooploopl_read_recordreadrecordok:lea dx,file_info_4mov ah,0911int21Hjmp readrecord closefileread recorderror1:lea dx,file_error3DW case3DW case_4DW case_5DWcase_69*head DW;表头指针info0db inputnum:,$infol db input math/,$info_2db inputenglish:,,$info_3db inputchinese:,,$info_4db*input others:,,$info_5dbinputname:,$strtb headdb Num,9,Name,9,Maths,9,English,9,Chinese,9,Others,9,Total,9,Avg,Odll,OaHnewnode dwdb==================================,OdH,OaH,$str_tab db9,$rdata dbStructNode*max_record+l dup;所有结点*100+1rdata_p dwrdata;下一种可用结点rcount dwOOH;目前己分派的结点数pnode dwxq qsndxqsnd•IDJ OOJCIpjooaj puij1^1^1^1^*p**j*p*^j**y**j**y**T**T**j**7**T**T**T**T**T**T**7**T**r**T**T**T**T**T**T**7**T**T**T**7**r**T**T**T**r**p**y**y**y**y**^»*y**y**y**y**p**y**j**y**j**y**j**y**T**T**T**T**T**T**!**T**T**T**T**T**T**T**T**T**T**r**ajnpaoojdqns jopuadpua pjoosj~pnoj10J XPdodxq dodxo dodxpdodisdodipdod ojnpaoojdqns11x0:pjoo0j_p^0j-q.i xaHIZMI[dj4xqAOUI心£,qe AOUIOJIJ_0SOp_pJOOQJ_pEOJpJO99J-pP9J_
4.1X9duifHIS JU]H60*AOUIf7JOJJ0_0JlJ*xp口31:3jojj0-pjooaj-ppajpjooaJ-peaixa duifpushex pushdxpush sipushdilea dx,infoOmov ah,09Hint21Hcall farptr getintcallcrlfmov si,headmov di,headfind_again:mov di,word ptr[di+Node_next]emp dx,word ptr[di+Node_num];第口个结点的|学号je modifyrecordjmpfindagainmodify_record:movbx,di;目前指针(newnode所指)移入bxmov ex,OOH;计算总分leadx,info0mov ah,09Hint21Hcall farptr getintcall crlfleadx,info_lmov ah,09Hint21Hcall farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node maths],dxlea dx,info2movah,09Hint21Hcall farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node_english],dxlea dx,info_3movah,0911int21Hcall farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node^chinese],dxlea dx,info_4int21Hcall farptr getintcallcrlfadd ex,dxmov word ptr[bx+Node_others],dxmov word ptr[bx+Node_total],ex;计算平均成绩mov ax,excwdmov ex,4div exmov wordptr[bx+Node_avg],axpop diPOPsipop dxpopexpop bxpopaxret findrecord endp•ztx z^ztszj^ztszjsyfszTsyT^z*zT^zjsyfxzT*^TszT*zj^zrvzT^zj^yfsztszis z*zjsytxzr^zT^zj*zT**Tsztszfx z^z^zfszszf^zTsytxdelete_record procfarpush axpushbxpushexpush dxpushsipushdilea dx,infoOmov ah,09Hint21Hcall farptr getintcallcrlfmov si,headmov di,headgo_again:mov di,wordptr[di+Node_next]emp dx,wordptr[di+Node_num]je de_record;第口个结点W、j学号jmp go_againde record:movsi,wordptr[si+Node_next]movax,wordptr[si+Node num]mov wordptr[di+Node num],ax movax,wordptr[si+Node_name]mov wordptr[di+Node_name],axmov ax,wordptr[si+Node_name+4]mov wordptr[di+Node_name+4],ax movax,wordptr[si+Node_name+6]mov wordptr[di+Node name+6],ax movax,wordptr[si+Node_name+8]movword ptr[di+Node_name+8],ax movax,wordptr[si+Node_name+10]mov wordptr[di+Nodename+10],ax movax,wordptr[si+Node maths]mov wordptr[di+Node maths],ax movax,wordptr[si+Node_english]mov wordptr[di+Node_english],ax movax,wordptr[si+Node_chinese]movwordptr[di+Node_chinese],ax movax,wordptr[si+Node_others]movwordptr[di+Node_others],ax movax,wordptr[si+Node_total]movwordptr[di+Node_total],ax movax,wordptr[si+Node_avg]mov wordptr[di+Node_avg],ax movsi,head movdi,headmov di,wordptr[di+Node_next]movax,wordptr[di+Node_next]sub rcount,1pop dipopsipopdxpopexpop bxpopaxretdelete recordendp•KW KWK£»xy»£»K£^xy xyprogramends;end ofcode segmentzj^ztx z^zt^zj^ztxzj^yfxzT^z二zT^zj^yfszT^zf^y*^TxzT**Txzj^zfxzT^zj^yf^xr^*fxz^zj^^txzr^zT^zj*^fxzT**Tsztszf^z^^tsz^ztxz^#r^xr^^fxzTs*txzT*二^X^1»XKW^X»JL»KtZSg xjK1»£z^L»K£^XKWWxj KX^L»K^SgxjK!K^^X K^ZKWWzjszr*zTszTszT*^Tszjszrxzrs^rxzrs zTsZjS*Tszrs^TxzTs#TxzrszrsZTSZTSZSZTXZTS*TXZJS^TSZTS ZTS^jSzrxzjszrxzrs^TxzrszTsz^s^Tszrs#rxzrs#TxzrszysZTSzTsZT*ZJSZTSZTSZTXZJSXTSZTS^TSZTSZS*TSZTS#TXZTS#TXZTSZTS^TSxjsZTXZTS*TXZTSend start;end ofassemblyfile namedbc:\student.txt,OOHfile error1db Failedcreate file../,ODH,OAH,$file error2db Failedwrite file../,ODH,OAH,$file_error3db*Failed openthe file...,ODH,OAH,$file_error4db Failedread file...,ODII,OAH,$db,saving the file...,ODII,OAH,$file_info_2db JWrite tofile successfully!*,ODII,OAII,$file_info_3db openingthefile...,ODH,OAH,$file_info_4dbread thefile successfully!,ODH,OAH,$fpl dw;文献指针data segends•*T三*T**T**T**T**T^*T**r**T**T**T**T**T**T**T**T^*r**T**T**T**T**T**T**T^*|**T**T**T^;define extradata segment三sl**L*xXzx£zslz*£zXX*six SX**ZX*Xz*L*slz xlz^ZX*Xz*A*xXzxLzzjs*jxzjsxjxzjs*jxzy*zj**jszjszj*zjxzjs*y*zjszjs^jzjszjxzy*^yxzjszjxzjxzjszj*xjs*T**7*zj**y****y**7**y**7**7**/*extdata_seg segment;EXTRA DATAGOES HERE•^y%X»£y»x KIZ»£»£»£^X»£Z^SZTXZTSZ|^^jSztxZT四ZlXZ7SzfxZT*X|^^JSZgSzj^zfxZJSZTXZrSZT^^TxZ|^xfszjs*fxZ7*ZTXZTSzfxTSZg^^ISzt^ZT*^TxZjSZTXZT*X|*^TXZ|VZT^zj^ZlXZJSZTXZj^ZTX^TSZ|^^ISZ|S*fxZT**TXZ7SZTXZTSZg^xts^fxZj^^lXZTSzfxZT*Z|XztxZ1^Z^ZlSZJSZTXZT^•KJ^X^L»X»KJVXKJ^L»WKWK1K!xf KJXX^L»KJJL»%J»XKX^L»xlKW»!x^XJ^J xj^L»KJxlzxw»X KIKWzj^ZTSZ|SzTSZTSZJ^ZTXZTS^TXZ7S^|SZtX^1SZ7S^TXZTH#TXZTS^TSZTSXj^ZTSZjS^TXZ7S^TXZTS^TSZTSZ|S^TsZTSZJ^^TXZTS#TXZTS^|Szjx^jSZTSZ7S^TXZTHZTS^TSZTSZTSZjS^TXZJS^TSZTS^TSZTSZTSzts*TXZT^*TXZ7SZTXZTS^TSZlSZ|S^T%ZjSZTXzTszT^ZTSstack_seg segmentstack;define extradata segment;STACK DATAGOES HEREDB100H dupstacksegends•1^£^*lz*1^*1^£^sl^*iz£z*lz*lzsi**1^1^1^*T**T*T**T**TX*T**7^*T**1**7*T**1*^r*1*•*y»*y»*i**y»*y»*y»*y»*y*五j*y»*y»«y**T**T**T**T**T**T**T**T**T**T**i**T**T**T**7**T**T**T**T**T**T**T^^**T**T**T**T**T**T**T**T**7**i**T**1**T**T**T*program segment;define codesegment*7**T**y**^**T**T**T**T**T**T**T**T**T**T**T*四*Tw*TM*i**T**T**i**i**T**|**T**T**i**i****T**T**1**T**T**T**T**T**T**1**T**Tw*7**T**T********1**T**T**T*main procfar;main partof programassumecs:program,ds:dataseg,es:extdata seg,ss:stack segstart:;set upstack forreturnpush dssubax,axpush ax;set DSregister tocurrent datasegmentmov ax,data_seg;data_seg segmentaddrmov ds,ax;into DSregistermov ax,extdata_seg;extdata_seg segmentaddrmov es,ax;into ESregistermov ax,stackseg;stack_seg segmentaddrmov ss,ax;into SSregister;MAIN PARTOF PROGRAMGOESHERE;分派链表头结点movax,rdatapmov head,ax;目前头指针就是rdata_padd rdata^p,StructNodemov bx,headmov wordptr[bx+Node_next],OOHlb_print_menu:;打印菜单leadx,str_menumov ah,0911int21Hcall farptr getintcmpdx,max menuindexjalb printmenumov di,dxshl di,1jmp jump_tb[di]jmp lb_print^menu case_O:;Exitreteasel:;添加记录call farptr addrecordjmp lb print menucase2:;打印所有记录call farptr print_recordjmp lb_print_menucase_3:;保留到文献call farptr save_recordjmp Ibprintmenucase_4:;从文献中读取call farptr readrecordjmplbprintmenucase5:;查找call farptr find_record jmplb_print_menucase6:;删除callfarptr deleterecordjmplb_print_menuret;return toDOSmain endp;end ofmain partof programsublprocnear;define subprocedurepushaxpushbxpushexpushdx;main portofsubprocedure;exit subprocedurepop dxpopexpopbxpopax retsublendp;end ofsubprocedure•^1**1*L**»1**£**1**»!**£*1^1^*£z*1^*lzsix«X**1*si*«Jsix«X»«X**1**Izxl*six*£z*1••six*1*si**lzsi*KL**1**•!**£*xl**£•«X«st*xL**4**Y**1*[、*7**T**7**T**T**T**T**y*^j*•叱*4**A**4**A**A**A**A**1**A**1**A**X**X**1**1**A**1**4**1**1**1**1**1**1**1**4**1**»!**1**1**1**1**1**1**X**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**L**1*,*T**T**T**7**T**7**T**7**T**1**T**T**7**T**7*个*7**T**7**T**T**T**T**7**T**7**T**7**T**T**T**T**7**T**7**T**7**T**7**T**T**T**T**7**T**7**T**7**T**T**T**7^*7*^T**7*^T*;print CRLFcrlfprocfarpushdxpush axmovdl,OdHmov ah,02Hint21Hmov dl,OaHmov ah,02Hint2ihpop axpopdxretcrlf endp•*lf**4**A**51**1**4**1**4**1**1**1**4**1**4**1**1*1**4**1**1**1**1**1**1**1**1**1**1**1**1**1**Z**«!**4**1**4^*7**T**7**/**7**r**7**j**7^*T**T**7**1^*7**j**7**1^*7**j**4**4**7**7**T**7**7**j**y*yj*•*1**i*^1**L**i**£**£**X*^1**£**i**1**L**1**£**£**£**£**A*^1**£**L**£**A**£*^1*、*y»**J**p**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**7**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**T**7**T*4*7**i**T**T**T**T**T**y**y**y»*y»*y»*y»*y**y***J**y»**J**y»*y»*y»*y»*y»saverecord procfar;define subprocedurepushaxpushbxpushexpushdxpushsi。