W=((X+Y)*2-Z)/2 ;X,Y,Z,W均为8位二进制数值

W=((X+Y)*2-Z)/2 ;X,Y,Z,W均为8位二进制数值

代码如下:

DATAS SEGMENT
    ;此处输入数据段代码
    X DB 1
    Y DB 4
    Z DB 3
    W DB 0
    TWO DB 2
    TEN DB 10
    STR1 DB '1.((X+Y)*2-Z)/2=W',10,13,'$'
    STR2 DB '2.X,Y,Z,W,ENTER',10,13,'$'
    STR3 DB 10,13,'$'  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    
    MOV AH,9
    MOV DX,OFFSET STR1
    INT 21H
    
    MOV AH,9
    MOV DX,OFFSET STR2
    INT 21H
    
    MOV AH,1
    INT 21H
    SUB AL,30H
    CMP AL,1
    JE JL1
    JNE JL2
    
JL1:
	MOV AH,9
    MOV DX,OFFSET STR3
    INT 21H

	MOV AH,2
	MOV DL,'('
    INT 21H
    MOV AH,2
	MOV DL,'('
    INT 21H
    

    MOV AH,1
    INT 21H
    SUB AL,30H
    MOV X,AL
    
    MOV AH,2
    MOV DL,'+'
    INT 21H
    
    MOV AH,1
    INT 21H
    SUB AL,30H
    MOV Y,AL
    
    MOV AH,2
    MOV DL,')'
    INT 21H
    MOV AH,2
	MOV DL,'*'
    INT 21H
    MOV AH,2
	MOV DL,'2'
    INT 21H
    MOV AH,2
	MOV DL,'-'
    INT 21H
    
    MOV AH,1
    INT 21H
    SUB AL,30H
    MOV Z,AL
    
    MOV AH,2
	MOV DL,')'
    INT 21H
    MOV AH,2
	MOV DL,'/'
    INT 21H
    MOV AH,2
	MOV DL,'2'
    INT 21H
    
    MOV AH,2
    MOV DL,'='
    INT 21H
	JMP OUT1
	
JL2:
	MOV AH,9
    MOV DX,OFFSET STR3
    INT 21H

	MOV AH,1
    INT 21H
    SUB AL,30H
    MOV X,AL
    
    MOV AH,9
    MOV DX,OFFSET STR3
    INT 21H
    
    MOV AH,1
    INT 21H
    SUB AL,30H
    MOV Y,AL
    
    MOV AH,9
    MOV DX,OFFSET STR3
    INT 21H
    
    MOV AH,1
    INT 21H
    SUB AL,30H
    MOV Z,AL
    
    MOV AH,9
    MOV DX,OFFSET STR3
    INT 21H
    JMP OUT1

OUT1:    
	MOV AL,X    
	ADD AL,Y   ;x+y
	MUL TWO
	SUB AL,Z   ;x+y-z 
	DIV TWO              
	MOV W,AL   ;存结果到W单元
;运算结束
	CMP W,0
	JL JL3	
;运算结果大于等于0,输出
	MOV AL,W
	MOV AH,0
	DIV TEN
	MOV BX,AX
	ADD BX,3030H
			 
	MOV AH,2     ;调用DOS中断INT 21H功能的2号子功能
	MOV DL,BL
	INT 21H        ;此3条语句输出数字的ASCII码
    MOV AH,2     ;调用DOS中断INT 21H功能的2号子功能    
	MOV DL,BH
	INT 21H
	JMP EXIT
;运算结果小于0	
JL3:
	MOV AH,2
	MOV DL,'-'
	INT 21H
	
	MOV AL,W
	NEG AL
	MOV AH,2
	ADD AL,30H
	MOV DL,AL
	INT 21H
	JMP EXIT
	
EXIT:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

第一种输出(第三行的‘1’是跳转指令)
在这里插入图片描述第二种输出(第三行的‘2’是跳转指令)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个叶绿体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值