AAA MOV [SI],AL DEC DEC
SI DI
LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05H
AD3: ADD BYTE PTR [SI],30H
ADD DEC SI DEC DI DEC BX JNZ RET
AD3
BYTE PTR [DI],30H
ADDA ENDP CODE ENDS END START
五、实验结果与分析
这次实验依次将相加数与被加数存入AL,BL,依次从低位向高位相加,然后把结果放在内存中。 六、实验体会
这次实验是微机原理课的第一次实验,主要是为了通过这次的实验,让我们对这个软件的编程有更深的了解、知道如何运行程序。在实验中误把C00H ,写成了COOH.从中,我学到了许多课本里学不到的东西,有些意外,有些收获。
实验二 排序实验
一、实验目的
掌握用汇编语言编写排序程序的思路和方法。 二、实验内容
将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。第一个数字表示数据的个数(不是要比较的数值!!!)。 三、程序流程图
图 3-2
四、程序清单
DATA SEGMENT
ADDR DW 8,234,35,67,876,54,39,765,237 DATA ENDS
STACK SEGMENT STA
DW 32 DUP(?)
TOP DW ? STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:
MOV AX,DATA MOV DS,AX MOV ES,AX
MOV AX,STACK MOV SS,AX
MOV SP,TOP MOV CX,WORD PTR ADDR[0]
DEC CX
LOOP1: MOV DI,CX
MOV BX,2
LOOP2: MOV AX,WORD PTR ADDR[BX]
CMP AX,WORD PTR ADDR[BX+2]
JGE CCC
XCHG AX,WORD PTR ADDR[BX+2] MOV WORD PTR ADDR[BX],AX
CCC: ADD BX,2
LOOP LOOP2 MOV CX,DI LOOP LOOP1
EXIT: MOV AX,4C00H
INT 21H
CODE ENDS END START
五、实验结果与分析