|
发表于 2011-7-21 23:25:08
|
显示全部楼层
hehe11 发表于 2011-7-21 11:54
我每一章都非常认真的看了!~~书上的练习也是没问题的,但是就这两题...嗨
就如监测点3.2的(1) ,我知 ...
呵呵,我来给你说一说吧:
mov ax,1000h 第一二行定义了ds段地址,因为10000h可以看作是1000:0,这个你应该明白吧
mov ds,ax
mov ax,2000h 第三四五行定义了ss段地址,因为20000h可以看作是2000:0,而栈开始是空的,栈中无元素,
也就没有栈顶 元 素,所以ss:sp应该指向栈最底部单元下面的一个单元,该单元地址就是栈最底部单元的
地 址(这里是2000:000f)加2,也就是2000:0010H,也就是说sp的值应该是10h.
mov ss,ax
mov sp,10h
push [0] push指令是以字单元为单位操作的,这第一条入栈指令就是把ds段中偏移地址为0的字单元中的内容送到栈顶。
push [2] 第二个字单元的偏移地址当然就是2了,
push [4] 第三个字单元的偏移地址当然就是4了,
push [8] 第四个字单元的偏移地址当然就是8了,后面的以此类推
push [A]
push [C]
push [E]
因为最先入栈的内容是ds中最上面的内容,入栈后放在最下面,后面入栈的内容依次放在它的上面,这样就实现了逆序存放的目的。
|
评分
-
查看全部评分
|