下载此文档

汇编n的阶乘程序.doc


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
CRLF MACRO ;回车,换行
MOV AH, 02H
MOV DL, 0DH
INT 21H
MOV AH, 02H
MOV DL, 0AH
INT 21H
ENDM
DATA SEGMENT
MESS1 DB 'INPUT THE NUMBER ACCORDING TO HEXNUM!',0DH,0AH,'$'
MESS2 DB 'THE RESULT IS: $'
ERROR DB 'INPUT ERROR! INPUT ONCE MORE!',0DH ,0AH,'$'
LEN DW 1
CY DW ?
BUF DW 256 DUP(0)
DATA ENDS
STACK SEGMENT STACK 'STACK'
DW 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA, ES:DATA, SS:STACK
START: MOV AX, DATA
MOV DS,AX
MOV ES, AX
MOV AH, 09H
MOV DX,OFFSET MESS1
INT 21H ;显示输入提示信息
CALL GETNUM ;读取键入的N值
MOV BP, DX ;N值送BP
CMP BP, 0
JZ EEE
CMP BP, 1
JZ EEE ;N=0或N=1则转EEE
MOV SI, OFFSET BUF ;缓冲区首址
MOV [SI],DX ;缓冲区初始化为值N
XXX: DEC BP ;N值减1
CMP BP,0001H
JZ LLL ;若为1则转LLL
XOR BX,BX ;偏移指针清0
MOV WORD PTR CY,0 ;进位单元清0
MOV CX,LEN ;当前结果长度送CX
TTT: MOV AX, [SI+BX]
MUL BP ;相乘
ADD AX,CY ;加低位进位
JNC JJJ ;结果无进位转JJJ
INC DX ;有进位将高位单元加1
JJJ: MOV [SI+BX],AX ;结果送缓冲区中
MOV CY,DX ;高位单元送进位单元
INC BX
INC BX ;一个字长度
LOOP TTT ;循环
CMP DX, 0000H
JZ BBB ;最后1次的进位为0则转BBB
INC WORD PTR LEN ;长度加1
MOV [SI+BX],DX ;进位送缓冲区中
BBB: JMP XXX
EEE: MOV SI,OFFSET BUF
MOV WORD PTR [SI],1 ;结果为1
LLL: MOV AH, 09H
MOV DX,OFFSET MESS2
INT 21H ;显示表头
MOV CX,LEN
MOV BX,CX ;长度
DEC BX
SHL BX,1 ;1个字为两个字节
CCC: MOV AX, [SI+BX]
CALL DISP
DEC BX
DEC BX ;显示结果
C
MOV AX,4C00H ;结束
INT 21H
DISP1 PROC NEAR ;显示字符(AL)
MOV BL, AL
M

汇编n的阶乘程序 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小32 KB
  • 时间2018-09-13