当前位置:鱼C工作室 >汇编语言 > 查看文章

寄存器(内存访问)06 – 零基础入门学习汇编语言18

第三章:寄存器(内存访问)06

 

让编程改变世界

Change the world by program


 

push、pop指令

 

问题3.7

编程:将10000H~1000FH 这段空间当作栈,初始状态是空的,将 AX、BX、DS中的数据入栈。

思考后看分析。

push、pop指令

 

问题3.8

编程:

(1)将10000H~1000FH 这段空间当作栈,初始状态是空的;

(2)设置AX=001AH,BX=001BH;

(3)将AX、BX中的数据入栈;

(4)然后将AX、BX清零;

(5)从栈中恢复AX、BX原来的内容。

思考后看分析。

push、pop指令

 

从上面的程序我们看到,用栈来暂存以后需要恢复的寄存器中的内容时 ,出栈的顺序要和入栈的顺序相反,因为最后入栈的寄存器的内容在栈顶 ,所以在恢复时,要最先出栈。

 

问题3.9

编程:

(1)将10000H~1000FH 这段空间当作栈,初始状态是空的;

(2)设置AX=002AH,BX=002BH;

(3)利用栈 ,交换 AX 和 BX 中的数据。

思考后看分析。

push、pop指令

 

问题3.10

我们如果要在10000H处写入字型数据2266H,可以用以下的代码完成:

mov ax,1000H

mov ds,ax

mov ,ax,2266H

mov [0],ax

看题目:

补在10000H处写入字型数据2266H。
__________
__________
__________
mov ax,2266H
push ax

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

思考后看分析。

 

我们看需补全代码的最后两条指令,将ax中的2266H压入栈中,也就是说,最终应由push ax将2266H写入10000H处。

问题的关键就在于:如何使push ax访问的内存单元是10000H。

 

Push指令是入栈指令。(注意执行过程)

完整的程序:

mov ax,1000H

mov ss,ax

mov sp,2

mov ax,2266H

push ax

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.