汇编实现栈的操作

复制代码
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

posted @   Z_Chan  阅读(45)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示