当前位置:文档之家› 《汇编语言》问题3.10解析

《汇编语言》问题3.10解析

1、如果要在10000H处写入字型数据2266H,可以用以下的代码完成:
mov ax,1000H
mov ds,ax
mov ax,2266H
mov[0],ax
补全下面的代码,使它能够完成同样的功能:在如果要在10000H处写入字型数据2266H。

要求:不能使用“mov内容单元,寄存器”这类命令。

_____________
_____________
_____________
mov ax,2266H
push ax
解析:大家看,如何实现在10000H处写入字型数据2266H?
也就是说要在SS:SP(1000:0)指向的栈顶处将字型数据2266H写入。

那我们在10000H处写入字型数据2266H前的栈顶指向肯定SS:SP(1000:2),即为我需要初始化栈时设定的栈顶。

因此,完成的程序如下。

mov ax.1000H
mov ss,ax
mov sp,2
mov ax,2266H
push ax
2、如果要在1000H处读取字型数据2266H,可以用以下的代码完成:
mov ax,1000H
mov ds,ax
mov ax,2266H
mov ax,[0]
补全下面的代码,使它能够完成同样的功能:在如果要在10000H处读取字型数据2266H。

要求:不能使用“mov内容单元,寄存器”这类命令。

_____________
_____________
_____________
mov ax,2266H
pop ax
解析:如何在10000H处读取字型数据2266H?
也就是说要在SS:SP(1000:0)指向的栈顶处将字型数据2266H读取。

那我们在10000H处读取字型数据2266H前的栈顶指向肯定SS:SP(1000:0),即为我需要初始化栈时设定的栈顶。

因此,完成的程序如下。

mov ax.1000H
mov ss,ax
mov sp,0
mov ax,2266H
pop ax
总结:写入数据的话,写入数据时的栈顶和当前栈顶(即写入数据前的栈顶)不一样;读取数据的话,读取数据时的栈顶和当前栈顶(即读取数据前的栈顶)一样。

本文由“冒牌汇编高手”写于2014年2月6日。

相关主题