汇编实现栈的操作
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了