汇编中将代码,数据,栈放入相同段空间的缺点

来源:互联网 发布:淘宝顶呱呱代练lol 编辑:程序博客网 时间:2024/04/30 12:45

首先看看将代码,数据,栈放入相同的段

;数据代码放同一内存段处理,把数据逆序排放assume cs:codecode segmentdw 0123h,0456h,0789h,0abch,0defh,0fabh,0fcdh,0feahdw 0,0,0,0,0,0,0,0;定义8个字型数据,当作栈空间使用,dw既可以当作是定义数据也可以是当作开辟内存空间  start:mov ax,csmov ss,axmov sp,32;设置栈顶cs:sp指向cs:20h,栈空的时候栈顶指向下一个单元mov bx,0mov cx,8      L:push cs:[bx]add bx,2loop L  ;把cs:0-cs:f8个字型数据依次放入栈中mov bx,0mov cx,8     L2:pop cs:[bx]add bx,2loop L2;把数据依次出栈mov ax,4c00hint 21hcode endsend  start;end除了表示程序结束还可以表示程序的开始,end start指明程序入口地址;cs:ip是根据程序的描述信息(编译时的伪指令)设置程序的入口

这样编写时要注意哪些是数据,哪些是栈,哪些是代码,会有两个问题

1程序显得混乱

2上面的程序是栈数据比较少,数据,代码,栈空间需要的空间小于64kb(8086cpu中一个段空间最大的是64kb),如果需要空间大于64kb(大于64kb,cpu就寻不到超出的地址空间,)不能放在一个段中

阅读全文
0 0
原创粉丝点击