为什么在下面的代码中我们推送代码段(PUSH CS)然后将其弹出到数据段(POP DS)?
我将这些行明确地表示为line1和line2.请告诉我MOVSW如何在这里工作.
IF HIGHMEMORY
PUSH DS
MOV BX, DS
ADD BX, 10H
MOV ES, BX
PUSH CS. ;line1
POP DS. ;line2
XOR SI, SI
MOV DI, SI
MOV CX, OFFSET SYSSIZE + 1
SHR CX, 1
REP MOVSW. ;line3
POP DS
PUSH ES
MOV AX, OFFSET SECONDRELOCATION
PUSH AX
AAA PROC FAR
RET
AAA ENDP
SECONDRELOCATION:
more code here..............
Run Code Online (Sandbox Code Playgroud)