汇编语言——计算表达式的值

题目要求:

            实现表达式S=(X+4×Y)/Z,其中X为有符号的字节数据,Z、Y为有符号的字数据,结果进行显示

 

算的是整除。具体看注释,自认为比较详细了

DATA SEGMENT
	X DB 10
	Y DW 5
	Z DW 4
DATA ENDS

CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	
	MOV AX,4
	IMUL Y
	;AX=4Y
	MOV BL,X
	ADD AX,BX
	;AX=X+4Y
	CWD;因为除法运算规定除数必须是被除数的一半字长
	IDIV Z
	;AX是商,DX是余数
	;因为我们算的是整除,所以只看商就行了
	;因为我们就正好需要AX=商,所以不用定,下面的IDIV就是用AX中的值除以BL
	MOV BL,10
	IDIV BL
	;AL是商  AH是余数
	
;---------------输出------------------------
	MOV BL,AH
	MOV AH,02H
	MOV DL,AL
	ADD DL,'0'
	INT 21H
	MOV DL,BL
	ADD DL,'0'
	INT 21H
	
		   
    MOV AH,4CH
    INT 21H    
CODE  ENDS                    ;代码段结束
       END  START              ;汇编结束  

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值