关于汇编语言在dos环境下out of memory的问题 1C

ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA

DATA SEGMENT
DAT DB 09H,02H,07H,02H,0AH,00H,01H,01H
RESULT DB 10 DUB(0)
DATA ENDS

CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX

LEA SI,DAT

LEA DI,RESULT
MOV CX,0AH
S:

MOV AX,0
MOV AL,[SI]
MOV DL,02H
DIV DL

MOV [DI],AH

INC SI
INC DI

  LOOP S   

  MOV AH,4CH
  INT 21H  

CODE ENDS
END START

2个回答

一般是你的程序越界或者溢出了
请用EDIT打开那个文件,看是否其中有非ASCII的字符(分号后的除外),很多时候是将分号写成了中文下的分号了,改成英文下的分号就可以了,再看看程序。
一般这是声明指针类型的变量,使用完后没有关闭,或者有死循环什么的.原因很多,但仔细review一下你自己的source,应该能发现里面的逻辑问题.

前面段声明了SS:STACK,代码里未发现STACK段,另外DATA段里的RESULT DB 10 DUB(0),DUB是什么?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐