⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 facnf.asm

📁 汇编实验,用汇编语言实现一些简单操作,包括文件读写
💻 ASM
字号:
DATA SEGMENT
MSG DB 'INPUT N(0..9):$'
NEWLINE DB 0AH,0DH,'$'
RESULT DB 'N! IS $'
ERROR DB 'ERROR:OUT OF RANGE OF N WITH 0..9!'
    DB 0AH,0DH,'$'
N DB ?
FACN DW ? ;STORE THE N!
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
	DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:  MOV AX,STACK
	MOV SS,AX
	MOV AX,DATA
	MOV DS,AX
MAIN:   MOV DX,OFFSET MSG
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	MOV AH,1 ;TO INPUT A DATA OF N
	INT 21H
	CMP AL,'0'
	JB ERR
	CMP AL,'9'
	JA ERR
	AND AL,0FH
	MOV N,AL
	MOV CL,AL
	XOR BX,BX
	XOR AX,AX
	MOV AL,1
LOP:	INC BL
	MUL BX
	DEC CL
	JNE LOP
	MOV FACN,AX
	MOV DX,OFFSET NEWLINE 
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	MOV DX,OFFSET RESULT 
	MOV AH,9
	INT 21H
	MOV BX,FACN
	MOV CL,4 ;SHIFT NUM
	MOV CH,4 ;LOOP NUM
SHOW:	MOV DL,BH
	SHR DL,CL ;
	SHL BX,CL
	CMP DL,9
	JLE DIRECT
	ADD DL,7
DIRECT: ADD DL,'0'
	MOV AH,2
	INT 21H
	DEC CH
	JNE SHOW
	MOV AH,4CH
	INT 21H
ERR:   MOV DX,OFFSET NEWLINE 
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	 MOV DX,OFFSET ERROR
	MOV AH,9
	INT 21H
	JMP MAIN
CODE ENDS
	END BEGIN
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -