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

📄 root.asm

📁 汇编实验,用汇编语言实现一些简单操作,包括文件读写
💻 ASM
字号:
DATA SEGMENT
MSG DB 'INPUT THE VALUE OF a AND c:$'
ROOT0 DB 'NO ROOT',0AH,0DH,'$'
ROOT1 DB '1 ROOT',0AH,0DH,'$'
ROOT2 DB '2 ROOTS',0AH,0DH,'$'
AL0 DB 0AH,0DH,'A<0',0AH,0DH,'$'
CL0 DB 0AH,0DH,'C<0',0AH,0DH,'$'
NEWLINE DB 0AH,0DH,'$'
DDA DB 0
CCC DB 0
TEMPIN DB ?
DALTA DB ?
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
	MOV DX,OFFSET MSG
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	

	XOR BX,BX
	
	
	
	MOV CH,2

OTHER:	XOR CL,CL;CL代表符号位,0---为正,1---为负
	XOR DX,DX
INNUM:	MOV AH,1
	INT 21H
	CMP AL,'#'
	JE EXITIN
	CMP AL,'-'
	JE NEGETIVE;否则为数字,中间结果保存在DL中
	AND AL,0FH 
	MOV BL,AL;保护刚输入的一位
	MOV AL,DL;
        MOV BH,10
	MUL BH;左移一位,乘10
	MOV DL,AL
	ADD DL,BL
	JMP INNUM

NEGETIVE: MOV CL,1
	  JMP INNUM
EXITIN: PUSH DX
	MOV DX,OFFSET NEWLINE
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	POP DX
	CMP CL,0
	JE INAC
	NEG DL 
INAC:   CMP CH,2
	JL ENDSIN
	DEC CH
	MOV DDA,DL
	JMP OTHER
ENDSIN: MOV CCC,DL
	
	CMP DDA,0
	JGE CCMP0
	MOV DX,OFFSET AL0
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
CCMP0:  CMP CCC,0
	JGE MAINROOT
	MOV DX,OFFSET CL0
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	
MAINROOT:
	MOV AL,CCC
	MOV BL,4
	MUL BL ;4*C
	MUL DDA ; 4*A*C
        MOV DL,36 ;
	SUB DL,AL
	MOV DALTA,DL
	MOV DX,OFFSET NEWLINE 
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	CMP DALTA,0
	JG RROOT2
	JL RROOT0
	MOV DX,OFFSET ROOT1
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	JMP EXIT
RROOT2: MOV DX,OFFSET ROOT2
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	JMP EXIT
RROOT0: MOV DX,OFFSET ROOT0
	MOV AH,9 ;TO OUPUT A STRING BEGIN WITH DX
	INT 21H
	JMP EXIT
EXIT:   MOV AH,4CH
	INT 21H
CODE ENDS
	END BEGIN

⌨️ 快捷键说明

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