求阶乘运算程序内容:从计算机键盘任意输入一个1位十进制数据,要求使用汇编语言编写程序实现计算该数据的阶乘,要求屏幕有提示信息和相应结果.

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/19 14:53:50
求阶乘运算程序内容:从计算机键盘任意输入一个1位十进制数据,要求使用汇编语言编写程序实现计算该数据的阶乘,要求屏幕有提示信息和相应结果.

求阶乘运算程序内容:从计算机键盘任意输入一个1位十进制数据,要求使用汇编语言编写程序实现计算该数据的阶乘,要求屏幕有提示信息和相应结果.
求阶乘运算程序
内容:从计算机键盘任意输入一个1位十进制数据,要求使用汇编语言编写程序实现计算该数据的阶乘,要求屏幕有提示信息和相应结果.

求阶乘运算程序内容:从计算机键盘任意输入一个1位十进制数据,要求使用汇编语言编写程序实现计算该数据的阶乘,要求屏幕有提示信息和相应结果.
; 操作说明:
; 1、输入0~8一位数,显示N!;
; 2、重复1的过程,Esc键结束程序
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法:Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
push ax
lea dx,Str_Addr
mov ah,9
int 21h
pop ax
EndM
; -------------------------------------
; 功能:输出回车换行
Output_CTLF proc Near
push ax
push dx
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
ret
Output_CTLF Endp
; -------------------------------------
; 功能:非递归算法求N!
; 入口:cx=N
; 出口:ax=N!
Factorial_NR Proc Near
cmp cx,1
ja @@Next_NR
mov ax,1
ret
@@Next_NR:push cx
push cx
pop ax
dec cx
@@Multi_Self:mul cx
loop @@Multi_Self
pop cx
ret
Factorial_NR EndP
; -------------------------------------
; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
; 入口:AX=二进制数
; 出口:在当前光标位置显示转换后的ASCII码数字
Dec_ASCII Proc Near
push dx
push bx
push di
mov bx,10
lea di,@@Temp_Save[5]
mov BYTE PTR [di],'$'
dec di
cld
@@Divide:xor dx,dx
div bx
or dl,30h
mov [di],dl
dec di
test ax,0ffffh
jnz @@Divide
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
ret
@@Temp_Save db 6 dup(?)
Dec_ASCII EndP
; -------------------------------------
Prompt_Recure db 13,10,'N!=$'
Prompt_N db 'Please input a number(0-8):$'
Press_Key db 13,10,13,10,'The complated.Press any key to exit...$'
Start:push cs
pop ds
push cs
pop es
Input_Order:Output Prompt_N ;提示输入阶次
@@Input_Order:mov ah,1
int 21h
cmp al,27 ;Esc?
jz Exit_Proc ;结束程序
cmp al,'0' ;'8'?
ja @@Input_Order ;是,超出范围,重新输入
mov Prompt_Recure[2],al
and ax,0fh
mov cx,ax
call Factorial_NR ;求阶乘
push ax ;保存阶乘数
Output Prompt_Recure ;提示显示阶乘
pop ax ;弹出阶乘数
call Dec_ASCII ;显示阶乘数
call Output_CTLF ;输出一个回车、换行
call Output_CTLF
jmp Input_Order
; -------------------------------------
Exit_Proc:Output Press_Key ;提示操作完成,按任意键结束程序
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束

求阶乘运算程序内容:从计算机键盘任意输入一个1位十进制数据,要求使用汇编语言编写程序实现计算该数据的阶乘,要求屏幕有提示信息和相应结果. vfp设计程序 从键盘上任意输入一个数n,求1-n的偶数积 求写程序, 怎样用java编写一个程序,从键盘上输入数n,计算并输出1!+2!...+n!的结果另外再附上怎样编写阶乘的方法吧, 编写程序:从键盘上输入一个自然数,输出该数的阶乘.还有一个小题··· 编程计算十以内的偶数之和. 用C语言编写程序实现从键盘上任意输入两个整数,输出两个整数的乘积. C语言实验二 数据类型、运算符与表达式 与顺序表达式(2)从键盘任意输入三个整数,求它们的和及平均值.(3) 已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来.(4)若a=3,b=4,c=5 一道C语言作业:从键盘上任意输入10个数 求奇数平均值 偶数平均值 C从键盘上输入任意两个数和一个运算符(+、-、*、/),* 根据输入的运算符对两个数计算,并输出结果从键盘上输入任意两个数和一个运算符(+、-、*、/),* 根据输入的运算符对两个数计算, 使用VB 6.0 制作一个程序,求1!+2!+3!+……+n!要求输入任意的N,求1到N的阶乘.用Inputbox 和Msgbox c语言程序:从键盘任意输入10个数,要求找出里面最大的数和最小的数,并输出这10个数. 从键盘上输入任意一个整数,并输出其绝对值,用C语言程序怎么写,正确必采纳,快 c 语言编程:从键盘上任意输入两个正整数m,n求其最大公约数和最小公倍数请帮忙写出完整的程序 编写程序从键盘任意输入一个4位数x,编程计算X的每一个数字相加之和(忽略整数前的正负号) 编写一个程序,功能是:从键盘上输入任意两位整数,将其十位数字与个位数字交换位置后输出 如何用C或C+编程序实现:从键盘任意输入一个命题公式,用真值表法判断其类型 C++编程,“用户从键盘上任意输入10个整数,程序输出其中能够被5整除的数之和.如果……题是:用户从键盘上任意输入10个整数,程序输出其中能够被5整除的数之和.如果没有能够被5整除的数,则 如何用C语言编写一个计算机程序,实现任意输入三个数a,b,c,将他们按照从大到小的顺序输出 用C语言指针数组编程实现:从键盘任意输入一个数字来表示年份值,程序可以输出该年份的属相.(如果输入负数,则为公元前的年份)