如何滑动数组中的数字?
How to Slide numbers in an array?
我正在尝试将数字滑入数组
例如,我的数组 8,7,6,5,4,3,2,1
并且当代码完成循环时,它应该是 1,8,7,6,5,4,3,2
,我不知道该怎么做
.MODEL SMALL
.DATA
ARR DB 8,7,6,5,4,3,2,1
.CODE
.STARTUP
MOV CX,8
MOV SI ,7
LOP:
MOV AL ,ARR[SI]
MOV BL ,ARR[SI-1]
MOV ARR[SI], BL
MOV ARR[SI-1], AL
DEC SI
LOOP LOP
.EXIT
这会将最后一个元素拖到整个数组中:
.MODEL SMALL
.DATA
ARR DB 8,7,6,5,4,3,2,1
.CODE
.STARTUP
MOV CX , 7 ; here: one less ( you only shift size-1 elements)
MOV SI , 7
LOP:
MOV AL,ARR[SI-1]
XCHG AL, ARR[SI]
MOV ARR[SI-1], AL
DEC SI
LOOP LOP
.EXIT
无法想象你为什么需要那种算法,但仍然。
我正在尝试将数字滑入数组
例如,我的数组 8,7,6,5,4,3,2,1
并且当代码完成循环时,它应该是 1,8,7,6,5,4,3,2
,我不知道该怎么做
.MODEL SMALL
.DATA
ARR DB 8,7,6,5,4,3,2,1
.CODE
.STARTUP
MOV CX,8
MOV SI ,7
LOP:
MOV AL ,ARR[SI]
MOV BL ,ARR[SI-1]
MOV ARR[SI], BL
MOV ARR[SI-1], AL
DEC SI
LOOP LOP
.EXIT
这会将最后一个元素拖到整个数组中:
.MODEL SMALL
.DATA
ARR DB 8,7,6,5,4,3,2,1
.CODE
.STARTUP
MOV CX , 7 ; here: one less ( you only shift size-1 elements)
MOV SI , 7
LOP:
MOV AL,ARR[SI-1]
XCHG AL, ARR[SI]
MOV ARR[SI-1], AL
DEC SI
LOOP LOP
.EXIT
无法想象你为什么需要那种算法,但仍然。