数据段中有一个字数组,其首地址放在SI寄存器中,数组的第一个字中存放着该数组的长度。阅读程序并填空,使程序完整并能正常运行:
DSEG SEGMENT ;数据段
COUNT DW
ADDR DW
DSEG ENDS
CSEG SEGMENT ;代码段
MAIN PROC FAR
START: PUSH DS
MOV AX, 0
PUSH AX
MOV AX,DSEG ;初始化DS
MOV DS, AX
MOV ADDR,SI ;将数组的首地址送到ADDR中
MOV CX, [SI] ;数组的长度送到CX中
MOV COUNT,CX ;数组长度送计数器
AGAINl: MOV BX,1 ;设标志位
DEC COUNT ;计数器的值减1
JZ EXIT ;等于0,则退出程序
MOV CX,COUNT ;计数器的值送CX
MOV SI,ADDR ;指针指向数组的首地址
AGAIN2: ADD SI, 【6】
MOV AX, [SI]
CMP [SI+2),AX ;前两个元素进行比较
JAE NEXT ;第二个大,则跳转到NEXT去执行
XCHG [SI+2),Ax ;否则,交换两个存储单元的内容
MOV [SI],AX
MOV BX,0 ;有交换的话,标志位置0
NEXT: LOOP AGAIN2 ;继续进行内循环
CMP BX, 0
JE AGAIN1
EXIT: MOV SI,ADDR ;否则,结束程序并将数组首地址送回SI
RET
MAIN ENDP
CSEG ENDS
END START
参考答案:2
解析:【解析】指针指向数组的第一个元素。