问题 3.7
编程, 将 10000H ~ 1000FH 做为连本带利,初始状态是空的,将AX,BX,DS 中的数据入栈。
# 初始化SS, SP ss=1000H [sp]=[0010] , 则 [ssss:sp] = [1000H:0010H]
mov ax,1000
mov ss,ax
# sp是指针,不是段寄存器,可以直接传数据,不用ax中转
mov sp,0010
push ax
push bx
push ds
问题 3.8
编程:
将 10000H ~ 1000FH 当做栈, 初始状态栈是空的
设置 ax=001aH, bx=001bH
ax,bx 数据入栈
ax,bx 清零
从栈中恢复 ax,bx 的值
mov ax,1000H
mov ss,ax
mov sp,0010H
mov ax,001a
mov bx,001b
push ax
push bx
# 将 ax 清零也可以用 sub ax,ax 机器码为 两个字节, mov ax,0 机器码为 3个字节
mov ax,0
mov bx,0
# 先进后出,先出栈的是 bx, 后出栈的是 ax
pop bx
pop ax
问题 3.9
编程
将 10000H ~ 1000FH 存储空间当作栈,初始为空
设置 AX=002AH, BX=002BH
利用栈,交换 AX,BX中的数据
mov ax,1000H
mov ss,ax
mov sp,0010H
mov ax,002a
mov bx,002b
push ax
push bx
pop ax
pop bx
问题 3.10
如果要在 10000H 处 写入字型数据 2266H, 可以用下的代码
mov ax,1000H
mov ds,ax
mov ax,2266H
mov [0],ax
补全下面的代码,使它完成同样的功能,在 10000H处写入字型数据 2266H. 要求不使用 mov 内存单元,寄存器
mov ax,1000H
mov ds,ax
mov sp,0002H
mov ax,2266H
# 使用栈,SP-1 [1000:1]->22H SP-1 [1000:0]->66H , SP最终为 0000H
push ax
标签:3.10,1000H,sp,mov,3.7,寄存器,push,ax,bx
From: https://www.cnblogs.com/wuoshiwzm/p/18061372