高手帮忙看看这个程序
DATA SEGMENTBUF1 DW 8234H,8234H,45H,23H,16H
BUF2 DD 5 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,5
MOV DI,0
AA:MOV SI,OFFSET [BUF1+DI]
MOV AX,[BUF1+DI]
TEST AX,AX
JS BB
MOV AL,1
MOV BYTE PTR [SI+2],AL
BB:SHL AX,1
MOV WORD PTR [BUF2+DI],AX
LOOP AA
MOV SI,OFFSET BUF2
MOV BX,WORD PTR [BUF2]
MOV DL,[SI+2]
MOV AH,4CH
INT 21H
CODE ENDS
END START
为什么执行完之后 DX中不是0001,而是0000???为什么 MOV AL,1
MOV BYTE PTR [SI+2],AL 就好像没执行一样???求教