上机实验03 二进制加、减法编程实验
一、实验要求和目的
1.熟悉汇编语言二进制多字节加法基本指令的使用方法;
2.熟悉汇编语言二进制多字节减法基本指令的使用方法;
3.掌握汇编语言编程的一般结构。
六、作业提交
把绘制的流程图、编写的源代码(两个:(1)实现长度为2字的两个多精度数相减;
(2)实现一个长度为3字的多精度数和一个长度为2字的多精度数相加减)放在word文档里,并提交到教育在线系统。
(1)实现长度为2字的两个多精度数相减;
DATA SEGMENT
DATA1 DW 4743H,5331H ;表示数据9B958953H
DATA2 DW 5278H,9526H ;表示数据21341211H
RESULT DW 2 DUP(?) ;存放多字节相减的结果
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,DATA1
MOV DX,DATA1+2
SUB AX,DATA2 ;低字部分相减
SBB DX,DATA2+2 ;高字部分带进位相减
MOV RESULT,AX ;存放低字部分相减结果
MOV RESULT+2,DX ;存放高字部分相减结果
CODE ENDS
END START
流程图:
(2)实现一个长度为3字的多精度数和一个长度为2字的多精度数相加减)
加法:
DATA SEGMENT
DATA1 DW 2356H,21A4H,1823H
DATA2 DW 3038H,4259H
RESULT DW 2 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,DATA1
MOV DX,DATA1+2
MOV BX,DATA1+4
ADD AX,DATA2
ADC DX,DATA2+2
ADC BX,DATA2+4
MOV RESULT,AX
MOV RESULT+2,DX
MOV RESULT+4,BX
CODE ENDS
END START
流程图:
减法:
DATA SEGMENT
DATA1 DW 2356H,21A4H,1823H
DATA2 DW 3038H,4259H
RESULT DW 2 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,DATA1
MOV DX,DATA1+2
MOV BX,DATA1+4
ADD AX,DATA2
ADC DX,DATA2+2
ADC BX,DATA2+4
SUB AX,DATA2
SBB DX,DATA2+2
SBB BX,DATA2+4
MOV RESULT,AX
MOV RESULT+2,DX
MOV RESULT+4,BX
CODE ENDS
END START
流程图: