1 / 14
文档名称:

奇数偶数.doc

格式:doc   大小:28KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

奇数偶数.doc

上传人:文库旗舰店 2019/10/14 文件大小:28 KB

下载得到文件列表

奇数偶数.doc

文档介绍

文档介绍:3、从键盘输入100以内的数,判断该数字是奇数还是偶数。如果是奇数输出小于该数且能被5整除的数,然后求他们之和;如果是偶数则输出该数分别除以3,5,7的余数。格式如下:Pleaseenteranumber:45(按回车)(10%)Result:5、10、15、20、25、30、35、40(按回车)(30%)Sum:180(按回车)(20%)Continue(y/n)?(10%)若输入y则继续,若输入n则退出Pleaseenteranumber:44(按回车)Result:2、4、2(按回车)(30%)Continue:(y/n)?若输入y则继续,若输入n则退出DATASEGMENTDATA1DB20DUP(?);存缓冲区输入的字符串DATA2DB20DUP(30H)DATA3DB?;用来存转换后的10进制BUFFDB50DB?DB50DUP(?)DATAENDSSTACKSEGMENTST1DB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:START3:MOVAX,DATA;占源的设计,才可以使用PUSH,POPMOVDS,AXMOVAX,STACKMOVSS,AXCALLTRLEADX,BUFFMOVAH,0AHINT21H;从键盘接收字符串到内存的输入缓冲区(3句);读取数据到缓冲区,BUFF(键盘输入,一般是Enter结束)CALLTRLEASI,BUFF;SAV调用之前先给DI,SI赋值LEADI,DATA1CALLSAV;把缓存区的输入字符存到数据data1中(3句)LEADX,DATA1;打印,显示data1,查看你存入的DATA1跟你输出的是否一样MOVAH,09H;AH09功能调用,显示字符串INT21HCALLTRLEADI,DATA1;data1数据存到Ax中,存为数值(10进制)XORDX,DXMOVDL,10MOVAX,0L2:MOVBL,[DI]INCDI;INC+1指令CMPBL,24H;24H->'$',也就是输入的结束符,或者是‘/0’JEJUMP1;相等时跳转,数据存完在AX,开始下一步SUBBL,30HMULDLADDAL,BLJMPL2JUMP1:LEASI,DATA3MOV[SI],ALMOVAL,[SI]XORAH,AHMOVDL,2DIVDL;ax除以DL中的值,商放AL,余数放AHCMPAH,0JEOSHU;余数是0,则为偶数JMPJISHU;无条件转移,转到奇数START1:JMPSTART3OSHU:;偶数LEASI,DATA3MOVAL,[SI]MOVDL,3;3的余数DIVDLMOVDL,AHADDDL,30HMOVAH,02HINT21H;AH为余数,赋给DL,AH的02号功能将DL的字符显示在屏幕MOVDL,''MOVAH,02HINT21HXORAH,AHLEASI,DATA3MOVAL,[SI]MOVDL,5;5的余数DIVDLMOVDL,AHADDDL,30HMOVAH,02HINT21HMOVDL,''MOVAH,02HINT21HXORAH,AHLEASI,DATA3MOVAL,[SI]JMPS1START2:JMPSTART1S1:MOVDL,7;7的余数DIVDLMOVDL,AHADDDL,30HMOVAH,02HINT21HCALLTRJMPJ9JISHU:;奇数操作XORAH,AHLEASI,DATA3MOVAL,[SI]MOVDL,5DIVDL;AL为商MOVDL,ALMOVCL,AL;循环会用到CL,用跳转代替的循环XORBX,BX;归0XORAL,AL;归0MOVCH,1;用来计数,直到最后与CL相等JISHU1:MOVAL,CHMOVDL,5MULDL;AX=AL*DL;如果是奇数输出小于该数且能被5整除的数,然后求他们之和;;从5、10、15…5*N直到5*(N+1)>你输入的数;5=1*5XORAH,AHADDBX,AX;和存入BX中ADDCH,1;CH计数+1;MOVAL,15MOVDL,10DIVDL;AL为AX/源的商AH为AX/源的余数;除以10PUSHAX;保存AX,即除法结果CMPAL,0;是否小于10JEJ4;JE/JZ相等时跳转,小于10跳转,因为大于10的打印跟小于的不一样MOVDL,AL;大于10打印十位ADDDL,30HMOVAH,02HINT21H;打印出来该数POPAXJ4:MOVDL,AHADDDL,30HMOVAH,02HINT21HMOVDL,'';打印空格MOVAH,02HINT21HCMPCL,CHJBJ3JMPJISHU1;跳转J3:CALLTRLEASI,DATA3MOVAX,BX;BX为求和结果,给AXCALLSPR