-
move dx,1000H
move ds,dx (1000H 为段地址)
move ax,[0] (0 为偏移地址)
目的是把1000:0处存放的字型数据存入ax中;1000:0处当做低位,1000:1处当做高位。move [0],ax 类类似。 -
例题1:
将10000H~1000FH空间当做栈,初始状态栈为空。
设置AX= 00AH , BX = 00BH;
利用栈交换AX和BX 中的值move ax ,1000H move ss, ax move sp,0010H //初始化栈顶 move ax,00AH move bx,00BH push ax push bx pop ax pop bx
-
move 一步就完成了, push和pop 都需要两步,push是先让CPU 改变是sp,再向ss:sp(SS:stack segment register 栈段暂存器 SP:stack pointer 栈指针) 中传送。pop 是让CPU先读取再改变sp。
-
在执行push指令后,如果栈顶超出栈空间,会覆盖栈外的数据。
-
栈段例子
将10000H~1000FH 中的8个字逆序复制到20000H~2000FH中。
move ax,1000H
move ds,ax
move ax,2000H
move ss,ax
move sp,10H
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]