| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 628 人关注过本帖
标题:[求助] 堆栈段
只看楼主 加入收藏
xxygdufs
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-11
收藏
 问题点数:0 回复次数:3 
[求助] 堆栈段

DATA SEGMENT
BCDBUF DB 12H,24H,96H,87H,71H,79H,56H,34H,63H,45H
COUNT EQU $-BCDBUF
ABCBUF DB 20 DUP(?)
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STAPN DB 100 DUP(?)
TOP EQU LENGTH STAPN
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET BCDBUF
MOV DI,OFFSET ABCBUF
MOV CX,COUNT
CLD

LP: LODSB ;SI->AL
MOV BL,AL
AND AL,0FH
OR AL,30H
STOSB ;AL->DI
MOV DL,AL
CALL DISP
MOV AL,BL
PUSH CX
MOV CL,4
SHR AL,CL
OR AL,30H
MOV DL,AL
STOSB
CALL DISP
POP CX
LOOP LP
MOV AH,4CH
INT 21H

DISP PROC NEAR
MOV AH,02H
INT 21H
MOV DL,' '
MOV AH,02H
INT 21H
RET
DISP ENDP
CODE ENDS
END START
请问各位大侠,上面程序的堆栈段有什么作用。

搜索更多相关主题的帖子: 堆栈 
2006-05-15 21:32
公子吕
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2006-5-4
收藏
得分:0 

你问的是堆栈段(SS)还是堆栈(STACK)?
TOP EQU LENGTH STAPN
MOV AX,TOP
MOV SP,AX
为什么把堆栈的长度送给sp?

看没有注释的汇编代码真痛苦.

2006-05-16 12:01
xxygdufs
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-11
收藏
得分:0 
我是问上面的堆栈段有什么作用,为什么要有这个段?
我这处程序是原文按书抄的,

2006-05-16 12:39
公子吕
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2006-5-4
收藏
得分:0 
call的时候,程序要保护断点(压入堆栈),传递参数,保存寄存器.这些都要用到堆栈

不过不定义堆栈也没出错,需要debug一下才知道.
2006-05-16 13:08
快速回复:[求助] 堆栈段
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011066 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved