一、 实验原理:
在数据段上摆放两个16位长度的十进制数,OP 1放265,OP 2放520(存放的数据为任意正数),定义一个RESULT数组,长度为10个字节的输出缓冲区。如下图: OP1: | 09H |
| 01H |
SI OP2: | 08H |
| 02H |
RESULT: | |
| |
| |
| |
| |
oel把这两个数相加,结果以ASCII码方式把每一位(个位、十位、百位……)存放在包层模RESULT数组上。并在屏幕上输出结果。 二、 实验目的:
三、 实验器材:
Windous 7系统下的Masm 2009汇编软件
四、 实验步骤:
1、 先画框图(如下)
2、 编写程序:
DATAS SEGMENT
OP1 DW 0109H
OP2 DW 0208H
RESULT DB 10 玻尿酸蚕丝面膜DUP(?)
欧米伽3榨油机DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA SI,OP1
MOV AX,[SI]
LEA SI,OP2
MOV BX,[SI]
ADD AX,BX
MOV BX,0
MOV CL,10
CLC
LEA SI,RESULT
LP:
DIV CL
ADD AH,30H
MOV [SI+BX],AH
INC BX
CBW
CMP AL,0
JNZ LP
NEXT:
MOV DL,[SI+BX]
MOV AH, 2
INT 21H
DEC BX
CMP BX,0
JNZ NEXT
MOV DL,[SI+BX]
MOV AH, 2
INT 21H
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDSnand闪存
END START
电冰箱保护器3、 显示结果
五、 实验总结:
这次实验能够较为熟练的运用的Masm编写汇编软件,在编写中以前容易出现这样那样的问题大部分都没有出现,我本次实验没有采用之前的高四位、低四位分离方法,而是采用除十的方法进行分离,开始时弄了半天都没弄会,后来学会了分离8位的,十六位还是不会。最后,在宿舍琢磨了很久才琢磨出来。很多东西看上去很简单、觉得会了,应用的时候什么都不会,多动手。