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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxxjxw/article/details/85140706

题目要求:

            实现表达式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              ;汇编结束  

猜你喜欢

转载自blog.csdn.net/hxxjxw/article/details/85140706