文档介绍:第一次实验:
计算(D1*D2+D3)/V1,其中D1=16,
D2=25,D3=155,V1=15。并将结果显示在屏幕上。
DTSEG SEGMENT
D1 DB 16
D2 DB 25
D3 DB 155
V1 DB 15
M1 DB '(D1*D2+D3)/V1=','$' ;定义显示字符串
DTSEG ENDS
CDSEG SEGMENT
ASSUME CS:CDSEG,DS:DTSEG
START: MOV AX,DTSEG
MOV DS,AX
MOV DX,OFFSET M1 ;显示字符串
MOV AH,9
INT 21H
MOV AL,D1
MUL D2
MOV BX,AX
MOV AL,D3
MOV AH,0 ;无符号数扩展
ADD AX,BX
DIV V1
MOV BL,10 ;去权法,16进制至BCD码
DIV BL
MOV DH,AH ;保存BCD码低位
ADD AL,30H ;显示输出单个字符
MOV DL,AL
MOV AH,2
INT 21H
ADD DH,30H
MOV DL,DH
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CDSEG ENDS
END START
第二次作业:
编写计算 D=B*B – 4*A*C,设A=2,B=9,C=8。要求在屏幕上以十进制形式显示结果。
DSEG SEGMENT
D1 DB 2
D3 DB 9
D2 DB 8
S DB 'D=','$'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV AL,D3
MUL AL
AAM ;乘法调整
MOV CL ,4
SHL AH,CL
OR AH,AL
MOV BL,AH ;保存结果,BCD格式的
MOV AL,4
MUL D1
MUL D2
AAM ;乘法调整
MOV AH,CL
OR AL,AH ;保存结果,BCD格式的
SUB AL,BL ;注意,已知的情况下
DAS ;减法调整
MOV BL,AL ;存结果
SHR AL,CL ;高位提取
ADD AL,30H ;显示高位
MOV DL,AL
MOV AH,02H
INT 21H
AND BL,0FH ;低位提取
ADD BL,30H
MOV DL,BL ;显示低位
MOV AH,02H
ITN 21H
MOV AH,4CH
INT 21H
CSEG ENDS
END START