概述
套用输出模板写的第二波分段函数,比第一个更具代表性,所有输出均通过模板一个部分
当x<-2时 y=x-3 当-2<=x<=3时,y=5x+6 当x>3时,y=2
DATA SEGMENT
PROMRT DB "Input X (-10000~+10000):$"
BUFFER DB 6, ?, 6 DUP("$")
C10 DW 10
X DW ?
OUT_MSG DB 0DH,0AH,"Y=$"
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA DX,PROMRT ;输出提示符
MOV AH,9
INT 21H
LEA DX,BUFFER ;输入字符串
MOV AH,0AH
INT 21H
LEA BX,BUFFER+2 ;判断第一个字符是否是负号只是输入时第一个数是个数
MOV DL,[BX]
CMP DL,'-' ;判断并跳入
JE FU
ZHENG: ;正数输入
MOV CL,BUFFER+1 ;将第一个字符,数字字符的个数作为循环次数
MOV CH,0 ;循环次数高八位清0
LEA BX,BUFFER+2 ;装载输入字符首地址
MOV AX,0 ;累加器清0
JMP ONE ;跳入正数的第一个步骤
FU: ;负数输入
MOV CL,BUFFER+1 ;将第一个字符,数字字符的个数作为循环次数
SUB CX,01H ;将数组字符个数减一,去除负号的个数
MOV CH,0 ;循环次数高八位清0
LEA BX,BUFFER+2 ;装载输入字符首地址,带符号
MOV AX,0 ;累加器清0
INC BX ;指针BX+1,跳过负数
ONEF: ;负数字符转化为数字
MUL C10 ;P=P*10
MOV DL,[BX] ;取第一个字符
SUB DX,30H ;转化为数字
ADD AX,DX ;数字赋予AX
INC BX ;指针往后加一
LOOP ONEF ;循环
MOV X,AX ;赋值给X
COMPF: ;负数判断
CMP X,2
JG LF ;对于小于-2,执行LF
CMP X,2
JE L2FU ;对-2的处理
CMP X,1
JE L1FU ;对-1处理
ONE: ;字符转化为数字
MUL C10 ;P=P*10
MOV DL,[BX] ;取第一个字符
SUB DX,30H ;转化为数字
ADD AX,DX ;数字赋予AX
INC BX ;指针往后加一
LOOP ONE ;循环
MOV X,AX ;赋值给X
COMP:CMP X,3 ;正数判断
JG L3
L03: ;小于等于3且大于等于0,1顺序执
MOV BX,X ;BX=X
MOV AX,X ;AX=X
ADD BX,BX ;BX=BX+BX=2*X
ADD BX,BX ;BX=BX+BX=4*X
ADD AX,BX ;AX=AX+BX=5*X
ADD AX,6 ;AX=AX*5+6
MOV X,AX
JMP OUTPUT0
L3: MOV AX,2
MOV X,AX
JMP OUTPUT0
LF: ;X<-2的处理
MOV AX,X
ADD AX,3
MOV X,AX
JMP OUTPUT0F
L1FU: ;X=-1的处理
MOV BX,X ;BX=X
MOV AX,X ;AX=X
ADD AX,BX ;AX=AX+X=2*X
ADD AX,AX ;AX=AX+AX=4*X
ADD AX,BX ;AX=AX+BX=5*X
MOV BX,6
SUB BX,AX ;BX=6-5*X
MOV X,BX
JMP OUTPUT0
L2FU: ;对-2的处理
MOV BX,X ;BX=X
MOV AX,X ;AX=X
ADD BX,BX ;BX=BX+BX=2*X
ADD BX,BX ;BX=BX+BX=4*X
ADD AX,BX ;AX=AX+BX=5*X
SUB AX,6 ;AX=AX*5+6
MOV X,AX
JMP OUTPUT0F
OUTPUT0:
LEA DX,OUT_MSG ;输出提示符
MOV AH,9
INT 21H
JMP OUTPUT
OUTPUT0F:
LEA DX,OUT_MSG ;输出提示符
MOV AH,9
INT 21H
MOV AH,2 ;对于输出为负数的先输出负号,调用二号指令
MOV DL,'-' ;负号的acill码付给dl
INT 21H ;输出
OUTPUT: ;多位数输出模板
MOV AX,X
MOV CX,0
ONEOUT:
MOV DX,0
DIV C10
PUSH DX
INC CX
CMP AX,0
JE CLE
JMP ONEOUT
CLE: POP DX
ADD DL,30H
MOV AH,2
INT 21H
LOOP CLE
OVER:
MOV AX,4C00H
INT 21H
CODE ENDS
END START
最后
以上就是忧郁电话为你收集整理的第二波分段函数(汇编)的全部内容,希望文章能够帮你解决第二波分段函数(汇编)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复