汇编程序堆栈段有什么作用?

汇编程序堆栈段有什么作用?,第1张

堆栈段是一个特殊的段,在程序中可以定义它,也可以不定义。除了要生成COM型执行文件的源程序外,一个完整的源程序一般最好定义堆栈段。如果在程序中不定义堆栈段,那么, *** 作系统在装入该执行程序时将自动为其指定一个64K字节的堆栈段,所以你没申明堆栈当然也可以用push。

在程序没有定义堆栈段的情况下,在由连接程序生成执行文件时,将会产生一条如下的警告信息,但程序员可以不理会它,所生成的执行文件是可以正常运行的。

堆栈段一般是拿来保存局部变量用的,函数调用,中断返回都需要栈的支持。良好的程序员和优美的代码不应该没有堆栈段。

data  segment dword 'data'

arr   db 100 dup(?)

data  ends

stack segment para stack

      dw 200 dup(?)

top   dw $

stack ends

code  segment word 'code'

      assume cs:code,ss:stack,ds:data,es:data

      org 100h

start:mov ax,seg stack

      mov ss,ax

      mov sp,top

      mov ax,seg data

      mov ds,ax

      mov es,ax

      mov cx,100

      mov di,0

      mov al,64h

      cld

      rep stosb

      

      mov ah,4ch

      int 21h

code  ends

      end start


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8166330.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存