我正在尝试将数字滑入数组中
例如,我的数组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
答案 0 :(得分:1)
将最后一个元素拖到整个数组中:
.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
无法想象为什么你需要那种算法,但仍然。