汇编新手问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 04:36:14
DATA SEGMENT
S1 DW 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
DW 10 DUP(?)
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET S1
ADD SI,38 //1.请问这个时候SI指向的是那个值啊[SI]=?为什么要38啊
MOV CX,20
CC1:
MOV AX,[SI]
MOV [SI+20],AX
DEC SI //这里因为是CX 所以要DEC 2次么?
DEC SI
DEC CX
JNZ CC1

MOV AH,4CH
INT 21H
CODE ENDS
END START

题目是:
将一个20个字的字符串S1中的内容下移10个单元。
S1 DW 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

提示一 从最后一个字开始向后“搬家”;
提示二 注意操作数的单元是“字”,所以最后一个字的地址偏移量为38(26H)

谢谢

DATA SEGMENT
S1 DW 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
DW 10 DUP(?)
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET S1
ADD SI,38 //1.请问这个时候SI指向的是那个值啊[SI]=?为什么要38啊
MOV CX,20
CC1:
MOV AX,[SI]
MOV [SI+20],AX
DEC SI //这里因为是CX 所以要DEC 2次么?
DEC SI
DEC CX
JNZ CC1

MOV AH,4CH
INT 21H
CODE ENDS
END START