汇编内存溢出问题怎么解决?

nymphlucky 2007-11-15 10:41:22
在很多情况下,我在利用masm汇编源程序的时候,即使程序不是很大,也会出现Out of memory的错误,请问该如何解决呢?
譬如下面的代码,是键入练个字符的ASCII,比较其大小,在汇编时就提示Out of memory的错误。
DATA SEGMENT
X DB ?
Y DB ?
BIG DB '>'
SMALL DB '<'
EQU DB '='
DATA ENDS

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

MOV AH,01H
INT 21H ;从键盘输入1字符
LEA SI,X
MOV [SI],AL ;把字符存入X

MOV AH,01H
INT 21H
LEA SI,Y
MOV [SI],AL ;把输入的字符存入Y

MOV AL,X
CMP AL,Y
JG B1
JL B2
JE B3

B1: MOV DL,X ;X大于Y
MOV AH,02H
INT 21H
MOV DL,BIG
MOV AH,02H
INT 21H
MOV DL,Y
MOV AH,02H
INT 21H

B2: MOV DL,X ;X小于Y
MOV AH,02H
INT 21H
MOV DL,SMALL
MOV AH,02H
INT 21H
MOV DL,Y
MOV AH,02H
INT 21H

B3: MOV DL,X ;X相等Y
MOV AH,02H
INT 21H
MOV DL,EQU
MOV AH,02H
INT 21H
MOV DL,Y
MOV AH,02H
INT 21H

mov ah,01h
int 21h
code ends
end start

...全文
186 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joke_Olive 2007-11-16
  • 打赏
  • 举报
回复
程序结束,需要用4CH号功能调用退出。
你用01H号功能,所以会错。

还有,B1,B2执行完,要加一条JMP跳过后面不该执行的内容。
你现在这样,进入B1执行后,必定要执行B2和B3,显示了不该显示的内容。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧