- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8086汇编语言求n!
CODES SEGMENT
ASSUME CS:CODES,DS:CODES
main proc
START:
push cs
pop ds
;------------------------------------
mov dx,offset string
mov ah,9
int 21h
call Shuru ;
cmp bp,10000
jbe cs_ok
mov dx,offset Error
mov ah,9
int 21h
jmp START
cs_ok: call show
mov n,bp
mov ax,0e0dh
int 10h
mov al,0ah
int 10h
call fractor ;
mov cx,di
routput: ;循环输出
push cx ;
mov di,cx ;
call output
pop cx
dec cx
cmp cx,0
jge routput
;
mov dx,offset YN
mov ah,9
int 21h
mov ah,0
int 16h ;
cmp ah,31h ;key: N(n)
jnz START
exit:
mov ax,4c00h ;
INT 21H ;
;
main endp ;
;
;1、键盘输入数据,以回车
结束输入。(0~65535)
;2、数值结果放入BP
;3、可以直接调用,然后在BP
里面娶出要的结果。
;!!! 超出65535的,如99999,取
超出65536部分34463到BP!!!
Shuru proc
push dx
push cx
push bx
push ax
xor bp,bp
mov bx,10
mov cx,5
input:
mov ah,0 ;键盘输入数据
int 16h
cmp al,0dh ;以回车结束输入
jz ok
cmp al,0 ;只允许输入0~9
jb input
cmp al,9
ja input
mov ah,0eh ;显示有效输入
int 10h
and ax,000fH
xchg ax,bp
mul bx ;扩大10倍
add bp,ax ;加一位
loop input
ok:nop ;数值结果放入BP
;恢复用到的寄存器
pop ax
pop bx
pop cx
pop dx
ret
Shuru endp
;
shuchu:
push dx
push cx
mov ax,cx
xor cx,cx
mov bx,10
nx1: xor dx,dx
div bx
or dx,0e30h
push dx
inc cx
cmp ax,0
jnz nx1
nx2: pop ax
int 10h
loop nx2
pop cx
pop dx
ret
;
show:
mov ax,0e21h ;!
int 10h
mov al,=
int 10h
mov cx,bp
jcxz sss
rss:
call shuchu
cmp cx,1
jz sss
mov ax,0e2ah ;*
int 10h
loop rss
sss:
mov ax,0e3dh ;=
int 10h
ret
;
fractor proc near ;
mov cx,n ;n,要求阶乘的数
mov i, 1
mov m, 0 ;m,步长
;
mov di,0
MOV SI,DI
SHL SI,1
;
mov word ptr [si+200h],1
ctrli: mov c, 0 ;c,进位
mov di,0
ctrldi: cmp di,m ;;m,步长
ja cmpc ;
done:
MOV SI,DI
SHL SI,1
;
mov ax,[si+200h] ;
mov bx,i ;
mul bx ;
add ax,c ; ;c,进位 ;
adc dx,0 ; ;
mov bx,10000 ;
div bx ;
mov c,ax ;c,进位
MOV SI,DI
SHL SI,1
mov [si+200h],dx ;
inc di ;
jmp ctrldi ;
cmpc: cmp c,0 ;c,进位
jbe next ;
inc m ;;m,步长
mov ax,c ;
mov [si+2+200h],ax ;
next: inc i
cmp cx,0
jng if0 ;
loop ctrli
if0: mov di,m ;;m,步长
ret ;
;
fractor endp ;
;------------------------------------------
output proc near ;
C2:
MOV SI,DI
SHL SI,1
mov bx,[si+200h] ;
bid proc ;
mov cx,1000
您可能关注的文档
最近下载
- 江汉大学《C语言程序设计》2022-2023期末考试试卷.pdf VIP
- 一年级《红色文化》(上册)全册教案.docx VIP
- 反比例函数(反比例函数与几问题)反比例函数(反比例函数与几何问题)反比例函数(反比例函数与几何问题)反比例函数(反比例函数与几何问题).doc VIP
- 《女仆》剧本(整理).pptx VIP
- 教科版五年级上册科学期末试卷及答案教案.docx VIP
- 急诊科副主任述职报告.pptx
- (职级管理规定.doc VIP
- 高杆灯受力性能计算和分析报告.doc VIP
- 教科版五年级上册科学期末试卷及答案.pdf VIP
- 青岛黄海学院《中国近代史纲要》2023-2024学年第一学期期末试卷.pdf VIP
原创力文档


文档评论(0)