1

我正在尝试将数字滑入一个数组
,例如我的数组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
4

1 回答 1

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

无法想象为什么你需要那种算法,但仍然如此。

于 2016-11-10T11:07:43.280 回答