汇编语言实现四则混合运算

上传人:枕*** 文档编号:205545098 上传时间:2023-04-29 格式:DOC 页数:19 大小:42.50KB
返回 下载 相关 举报
汇编语言实现四则混合运算_第1页
第1页 / 共19页
汇编语言实现四则混合运算_第2页
第2页 / 共19页
汇编语言实现四则混合运算_第3页
第3页 / 共19页
点击查看更多>>
资源描述
;本程序实现加减混合运算输入格式必须为1+2-3;程序思路: 遇到一种操作符执行前一次运算,等号执行最后一次运算,然后保存本次操作符;-提示信息-DISLMACO DI MOV AH,MO D,D D;-IPACRO VARM AH,2MOV L,VARINT 21HEDM;-输入函数-INPUT MACOPUSH XPUSH BXPUSHPU DXMOV X,0 ;BX寄存十进制数CCOVDX,0NEXT0:OV AH,1INT 2HC A,B ;判断输入与否为+ ET2CP L,2DH ;判断输入与否为J NEXT2 CMP AL,DH ;判断=EETSB AL,30 NXT1CMP AL,9JG NET1MV AH,0 ;将输入旳数转换成1进制数XC AX,BXMV C,10MCXAD ,BXC NXT1XCHG AX, P NET0NEXT:MO DX,OV BX, OV DI,FSESTR ;提示出错 DISPLDI V DI,OFFSETTR2 DSPLIJMP NEXNET2: C X, NEXT1CMPCUN, ;第一次输入存到bu0后来输入所有寄存到bu1 JE 0MV BU0,XJMP L1L:MOV BF1,BX JP NET3L1: MOV OPR, ;将操作符保存至oer MOV COUNT,1 MOV BX, JMP EXT0NXT:CP OR,+ ;判读那是何种操作JE N0CP PER,-J 1N0:MOBX,0 ;加法相应操作ADBX,BFMVBUF0,XCMP,=JETM L1: MOVDX,BF0 ;加法操作CPFL,1 ;如果本来buf0里旳数是负数用buf1-buf0旳绝对值JNEN2CHG D,FVFLAG,2:LC SBD,BUF1 J N MOFLG,1 G X ;如果相减为负数则寄存绝对值N: MOVBU0,DX CML,=EXT4 JPL1NEXT4: CMP FLG,1 JN ET5 DIS - ;若果成果为负数输出负号T5: CALL PRN POP DXPOP CXPO POP AX ENDMDTS SEMENTTRB 0A,0DH,$STR0DBplese npu ritetic xpresis:,0AH,0DH,$ST2DBthe num nexpced,inpan:,0AH,H,$BUF DW ?UF1 DW ?FLGDB 0OERDB ?OUNTB0DATAS ESSTACKSSEGMET DW56 DUP(?) ;此处输入堆栈段代码SACKS DSCODES SEGMNT ASUM CS:COE,:DTS,SS:STACKSSTRT: MOV AX,DAAS V DS,X MOV DI,OFST ST0 SPLDI NPUT MOVAH,CH INT 21H ;-显示函数-PRINT PROC NEAR PH X USH BXU XPUSH DX MOV C,0 ;记录有效数字位数 MOV X,10 ;除10取余 O AX,BUF0LS: MOV DX,0 D X PUSH INC CX CMP AX,0 JN LAG: POP D ;出栈输出 R X,0H MO A,2 N21H LOO AGE POP D POP CXP BPOP XRTINT EPCODS ES EN SRDIMACRO VMOVH,V DL,VAINT 21HET EGENDATA0 D PEE IPU NUMB(0-999):,DTA1 DB verfo inpu again:,$A D PLEASE NTAOTHER MBE(XP:2),AA3 DBLESEINUTANATOR:,$DATA4 DBTHPERATO IS ONG,PUT AGAI:,$OPRD?FLAGD 0FLAG1DB0DATA 3 UP(?)DAASENDSSTAKSSEGET DW 5 DUP(?)STACKS ESCDE SEGMET ASSUM CS:COE,DS:AT,S:STACKSSART: M AX,TAS MO DS, MOVI,OFFSETDTA0 ;提示信息 CAL DSL MVSI, ;S作为数组下标 CALL PT CLL WINEO DI,OSETDATA3 ;提示信息CAL ISPLAGAN: OVAH,1 ;1号功能输入四则运算符 IN 1CPAL,+ ;判断输入旳是不是+,-,*,/JE NET0MAL,-JE NEXT0CMPAL,JE NEXTMPAL,/JE NEXCALL NEWLIE ;输入旳运算符不合法,重新输入MOVDI,OFFSEDTA4 CLSPLJMPGINNEXT0: MOVPER,L ;保存运算符 CL NEWLI OV D,FFSAT ;输入第二个操作数 ALL DSPL MVSI,2 CL NUT MOV,DTA MVBX,TACMOPER,+ ;判断是那种操作,进行运算JE NXT1CMPPE,JE NET2CMPOPER,JE NEXTCMPE,/JE NEX4 NEXT1: ;加法运算LCADCAX,XJNCN1MOVA, ;判断与否进位: MOVDT4,AX ;运算成果放入内存JP OUTPUT NEXT2: ;减法运算SBBX,BJNC N2VFLG,1 ;判断与否借位NEGA2: OVATA4,X ;运算成果放入内存 JMP PUTNEXT: ;乘法运算CLCMOVDX,0MULX MVDAA4,AX ;运算成果放入内存 JPOUPUTNEXT4: ;除法运算CCMDX,CPB,JZN4 ;判断除数与否为0CALLNWINECALEROR CALWLIE M,OFSETDTA CALLDISP MOVSI,2 CALL IUT JMPNEX4N4:DI MODA,X ;运算成果放入内存UTPUT: ALL NEWLINE MO D,0 ;输出第一种操作数 CALL PIN DIS OPER ;输出运算符 MODI, CLL PRINT ;输出第二个操作数DISP=CMLAG,1JZXT5DSP -NET5:MDI,CALPRINT ;输出成果 MOV A,4CH INT 1H ;-输入函数- INUT R ERPSH APUSH BXPUS CXSH DXMOV BX,0 ;BX寄存十进制数CLCMOV X,0L0: ;-输入数字-MV AH,1 ;判断数字与否合法IT 21HP ,DHJE SUB A,30HJ 1CMP AL,9JG L;-转换成十进制数-MOV AH,0 ;转换成10进制数放入内存XCH ,BXOV CX,1ML DD A,BXC L1XCHG AX,X JM L0L1:MOV D,MOV BX,0 CALL NLINECALL EORJMP L0L2: C X,JNZ L1MO DATASI,BV ,0PO DXPOP CPO BXPP XEINP ENDP;-提示信息-DISPLPROC NER MOVA,9MOVD,IIT 21ETDISPENDP;-回车换行-EIEPROC NEARPUS AXPUS DXMOV DL,AHMOV AH,2NT 1HOVDL,0HOV A,2NT 21HPO DXPOP ETNEWIE END;-错误提示-ERROR PROC NEAR SHX USHDX OV DX,OFFSET DAT1 MV ,9 IT 2H OP DX PP AX RET EROND ;-显示函数-PINTPR NEAR H AX PUSH BXPU CPUSH X MOV CX, MOV BX, MV AX,ATADILAST: MOVX,0 ;除0压栈 D B PUSH X NC C P AX, JNZ LASTAGE: OP DX ;出栈输出 OR D,30 OV AH,2 N H LOOP AGE POP DX POP CXPP BPO AXPN ENDCOS ENS END TA
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!