分支循环程序设计及实现
一.实验目的
1.学习分支程序、循环结构程序的设计和调 试方法;
2.掌握分支、循环等程序的基本结构。
3.通过循环指令、条件转移指令等完成较复杂程序的设计。
二.实验内容
1.数据串搬家程序:BUF1开始的8个以字为单位的数据搬移到BUF2开始的缓冲区中。
(1).实验原理:使用MOV指令实现数据的传输,使用循环指令将数据实现多个数据的传输。
(2)试验程序
DATA SEGMENT
BUF1 DW 1H,2H,3H,4H,5H,6H,7H,8H
BUF2 DW 8 DUP(?)
COUNT EQU 8
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,COUNT
LEA SI,BUF1
LEA DI,BUF2
AGIN:MOV AX,[SI]
ADD SI,2
MOV [DI],AX
ADD DI,2
LOOP AGIN
MOVAH,4CH
INT 21H
CODE ENDS
END START
(3)调试结果及说明
实验说明:在内存的BUF1中存有以字为单元的数据01H,02H,03H,04H,05H,06H,07H,08H
BUF1的起始地址为DS;0100,BUF2的起始地址为DS;0110,从运行的结果可以看出,运行过后,BUF2的数据与BUF1的相同,说明实现了数据搬移。
2..将BUF1开始的8个以字为单位的数据中的正数、负数分别搬移到BUF2和BUF3开始的缓冲区中。
(1).实验原理:
使用条件转移指令实现将正数和负数的分别搬移,使用循环指令实现所有数据的搬移。
(2).试验程序
DATA SEGMENT
BUF1 DW 3,-1,2,-5,4,-6,7,9
BUF2 DW 8 DUP(?)
BUF3 DW 8 DUP(?)
COUNT EQU 8
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,COUNT
LEA SI,BUF1
LEA DI,BUF2
MOV BX,OFFSET BUF3
AGIN:MOV AX,[SI]
ADD SI,2
CMP AX,0
JG NEXT1
MOV [BX],AX
ADD BX,2
LOOP AGIN
NEXT1: MOV [DI],AX
ADD DI,2
LOOP AGIN
MOV AH,4CH
INT 21H
CODE ENDS
END START
(3).调试结果及说明
实验说明:BUF1的起始地址为DS:0100,BUF2的起始地址为DS;0110,BUF3的起始地址为DS;0120。数据在内存中以补码的形式存储,BUF1中的原始数据为:3,-1,2,-5,4,-6,7,9 ,对应的补码形式为:0003,FFFF,0002,FFFB,0004,FFFA,0007,0009。BUF2中存正数据,运行结果为BUF2中的内容为0003,0002,0004,0007,0009,BUF3中的内容为FFFF,FFFB,FFFA.。
- 点赞
- 收藏
- 关注作者
评论(0)