一个由7个元素组成的整数数组,已经存放在主存的连续存储单元中,数组的起始地址为AS。例如:AS{31h,36h,33h,32h,38h,37h,35h}1. 编程实现:将数组AS中的元素向右循环移动一个位置,例如移位后变成{35h,31h,36h,33h,32h,38h,37h}2. 编程实现:将AS中最大元素和最小元素分别存于Max和Min中3. 将字符串AS中的内容复制到target中,并显示输出
时间: 2024-02-05 22:14:23 浏览: 82
1. 将数组AS中的元素向右循环移动一个位置,例如移位后变成{35h,31h,36h,33h,32h,38h,37h}
```
MOV AX, 0 ; AX 作为循环计数器
MOV BX, AS ; BX 存放数组起始地址
MOV CX, 7 ; CX 存放数组元素个数
MOV DX, [BX+6] ; DX 存放数组最后一个元素的值
; 将数组中的元素向右移动一位
SHIFT:
MOV SI, AX
ADD SI, 1
MOV DI, BX
ADD DI, SI
MOV BP, [DI]
MOV [DI-1], BP
INC AX
CMP AX, CX
JL SHIFT
; 将最后一个元素的值存放到数组第一个位置
MOV [BX], DX
```
2. 将AS中最大元素和最小元素分别存于Max和Min中
```
MOV AX, AS ; AX 存放数组起始地址
MOV BX, [AX] ; BX 存放数组第一个元素的值
MOV CX, [AX] ; CX 存放数组第一个元素的值
MOV DX, 1 ; DX 作为循环计数器
; 遍历数组,找到最大值和最小值
FIND:
CMP [AX+DX*2], BX
JB SMALLER
MOV BX, [AX+DX*2]
SMALLER:
CMP [AX+DX*2], CX
JNB LARGER
MOV CX, [AX+DX*2]
LARGER:
INC DX
CMP DX, 7
JLE FIND
; 将最大值和最小值分别存放到Max和Min中
MOV Max, BX
MOV Min, CX
```
3. 将字符串AS中的内容复制到target中,并显示输出
```
MOV AX, AS ; AX 存放字符串AS的起始地址
MOV BX, target ; BX 存放目标字符串的起始地址
MOV CX, 7 ; CX 存放字符串AS的长度
; 复制字符串
COPY:
MOV DL, [AX]
MOV [BX], DL
INC AX
INC BX
LOOP COPY
; 显示输出目标字符串
MOV DX, 1 ; DX 作为循环计数器
DISPLAY:
MOV AH, 02H
MOV DL, [target+DX-1]
INT 21H
INC DX
CMP DX, 8 ; 字符串长度为7,加上回车符共8个字符
JLE DISPLAY
```
阅读全文