汇编上级出现stack overflow怎么解决?
代码如下:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCE...
代码如下:
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB N+1 DUP(0)
NAME0 DB 'INPUT1.DAT',0
NAME1 DB 'OUTPUT1.DAT',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名
MOV CX,N ; 字节数
CALL LOAD ; 从 'INPUT1.DAT'中读取数据
; **** BEGIN ****
MOV DI,OFFSET RESULT
MOV BX,0
MOV CX,N
MOV DL,0
PRO: MOV AL,SOURCE[BX]
sub AL,30H
MOV [DI],AL
inc di
ADD AL,DL
daa ;BCD码调整
MOV DL,AL
INC BX
dec cx
JNZ PRO
mov [di],dl
; **** END ****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N+1 ; 结果字数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
急求答案!若需要其他的东西,把邮箱发上来!
那该定义多少呢?
再补充一下,这个是标准答案,是三级pc模拟上的标准答案,但是运行不了! 展开
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB N+1 DUP(0)
NAME0 DB 'INPUT1.DAT',0
NAME1 DB 'OUTPUT1.DAT',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名
MOV CX,N ; 字节数
CALL LOAD ; 从 'INPUT1.DAT'中读取数据
; **** BEGIN ****
MOV DI,OFFSET RESULT
MOV BX,0
MOV CX,N
MOV DL,0
PRO: MOV AL,SOURCE[BX]
sub AL,30H
MOV [DI],AL
inc di
ADD AL,DL
daa ;BCD码调整
MOV DL,AL
INC BX
dec cx
JNZ PRO
mov [di],dl
; **** END ****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N+1 ; 结果字数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
急求答案!若需要其他的东西,把邮箱发上来!
那该定义多少呢?
再补充一下,这个是标准答案,是三级pc模拟上的标准答案,但是运行不了! 展开
3个回答
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
展开全部
堆栈空间不够,可以扩大你定义的堆栈空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一开始就注定错误了,先PUSH个DS,再PUSH一个0,没有出栈就RET了
PUSH DS
XOR AX,AX
PUSH AX
这个也就是参考答案,你要说是标准答案,只能说我也不知道题目。
或许写这个题目的人另有什么想法,毕竟汇编比较灵活。
就这段程序来说,错误百出!
PUSH DS
XOR AX,AX
PUSH AX
这个也就是参考答案,你要说是标准答案,只能说我也不知道题目。
或许写这个题目的人另有什么想法,毕竟汇编比较灵活。
就这段程序来说,错误百出!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询