汇编实现栈的操作
assume cs:code,ss:stack
stack segment
db 4 dup(11h);create 4 byte's memory and inject 11*4
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov ax,4
mov sp,ax
mov ax,8888h
push ax ;acording to the size of ax
code ends
end start
assume干嘛的我也不清楚,其实去掉这一句没什么影响
下面就是定义一个栈段,存的地方好像编译器会处理,你可以直接读
还没定义sp的时候是这样的,一旦定了sp
就是随机数
这是你定义的sp,指向第四对值,因为你的栈是db就是两个数为一组的
push一下,发现sp变成了2
sp push就向后退,好像只能push ax16位寄存器大小的数,就是十六进制0000h 二进制就是0000 0000 0000 0000
如果你用了pop
就变回原来的样子,sp到原来的4