DATASSEGMENTstringdb"Pleaseinputanumber(0-10000):",0dh,0ahwrongstringdb"Anumberplease!",0ah,0dh,'$'inputbufferdb6,?,6dup(?)c10dw10;输入时进制转换的数ndw?;要求阶乘的数mdw?;步长cdw?;进位idw?;outputbufferdw30000dup(?);DATASENDS;*******************************************************************************STACKSSEGMENT;此处输入堆栈段代码STACKSENDS;*******************************************************************************CODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATAS;MOVDS,AX;;-------------------------------------------------------allinput;callfractor;movcx,diroutput:;循环输出pushcx;movdi,cx;calloutput;xcmpcx,0jgeroutputdisplaylength:movdl,0dhmovah,2int21hmovdl,0ahmovah,2int21hexit:;movah,07h;int21h;movax,4c00h;INT21H;;mainendp;;-------------------------------------------------------;--------------------------------------------------------earleabx,stringmovcx,33disstring:movdl,[bx]movah,2int21hincbxloopdisstringjmpinputinitwronginput:leadx,wrongstringmovah,9int21hinputinit:leadx,inputbuffer;装载输入缓冲区首地址movah,0ah;输入功能代码int21h;从键盘输入一个数,以回车键结束movax,0;累加器清0movcl,inputbuffer+1;循环次数movch,0leabx,inputbuffer+2;装载字符存放区首地址inputone:;mulc10;movdl,[bx]cmpdl,'0'jbwronginputcmpdl,'9'jawronginput;anddl,0fh;addal,dl;adcah,0;incbx;loopinputone;movn,axmovdl,0dhmovah,2int21hmovdl,0ahmovah,2int21h;ret;inputendp;;-----------------------------------------------------ear;movcx,n;movi,1d;movm,0d;pushdxmovdi,0d;movax,di
汇编求n的阶乘 来自淘豆网m.daumloan.com转载请标明出处.