检测点3.2
1
补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
mov ax,1000H
mov ds,ax
mov ax,2000H
mov ss,ax
mov sp,10h
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]
我们可以看到给出了ds
段寄存器的值,那么后面是push,所以我们应该将20000H
到2000FH
设置成栈空间,所以那三行就是用来设置栈空间,设置ss
和sp
寄存器的值的
即:
mov ax,2000H
mov ss,ax
mov sp,0010H
因为栈如果有一个元素,那么栈顶是2000EH
,所以,2000EH
+2就是20010H
,去掉ss就是0010H
不懂的可以看看问题3.11,不过不完全一样
2
补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序复制到20000H-2000FH中。
mov ax,2000H
mov ds,ax
mov ax,1000H
mov ss,ax
mov sp,0
pop [E]
pop [C]
pop [A]
pop [8]
pop [6]
pop [4]
pop [2]
pop [0]
同上,我们要设置ss和sp的值
mov ax,1000H
mov ss,ax
mov sp,0000H
(因为栈满在0000H处)