DOSBox 0.74 汇编 out of memery test.asm(2):out of memory

如题 用dosbox 汇编asm程序时报错,内存溢出

在这里插入图片描述

完整的代码如下

DATA1  SEGMENT
      Data  DW 10
      DW 2130, -43, 31, -321, -1234, 345, 0, 3213, 0, 5477
      Positive  DW 0
      Negative  DW 0
      Zero  DW 0
      DATA1  ENDS
      CODE  SEGMENT
      ASSUME CS:CODE, DS:DATA1
      START:MOV AX, DATA1
      MOV DS, AX
      Mov  AX,0          ;用AX来对正数计数 
      Mov  BX,0          ;用BX来对负数计数
      Mov  DX,0          ;用DX来对零计数
      MOV  CX, data          ;用CX来进行循环计数
      JCXZ  save             ;考虑数组的元素个数为0的情况
      LEA   SI, data+2          ;用指针SI来访问整个数组
      again: CMP word ptr [SI], 0
      JL  lower
      JE  equal
      INC  AX
      JMP  loop1
      lower: INC BX
      JMPloop1
      Equal :INC DX
      loop1:ADD SI, 2
      LOOP  again
      Save :MOV Positive, AX    ;把各类的统计数保存到内存单元中
      MOV  Negative, BX
      MOV  Zero, DX
      MOV  AH, 4CH
      INT   21H
      CODE  ENDS
             END  START 

解决方案,问题所在

原来的空格问题 仔细修改空格即可
在这里插入图片描述

修改完之后,如下

ASSUME CS:CODE, DS:DATA1
DATA1 SEGMENT
   Data DW 10
   DW 2130, -43, 31, -321, -1234, 345, 0, 3213, 0, 5477
   Positive DW 0
   Negative DW 0
   Zero DW 0
DATA1 ENDS

CODE SEGMENT
   START:
      MOV AX, DATA1
      MOV DS, AX
      Mov AX,0     ;用AX来对正数计数 
      Mov BX,0     ;用BX来对负数计数
      Mov DX,0     ;用DX来对零计数
      MOV CX, data     ;用CX来进行循环计数
      JCXZ save       ;考虑数组的元素个数为0的情况
      LEA  SI, data+2     ;用指针SI来访问整个数组
   again:
      CMP word ptr [SI], 0
      JL lower
      JE equal
      INC AX
      JMP loop1
   lower: 
      INC BX
      JMP loop1
   Equal :
      INC DX
   loop1:
      ADD SI, 2
      LOOP again
   Save :
      MOV Positive, AX  ;把各类的统计数保存到内存单元中
      MOV Negative, BX
      MOV Zero, DX
      MOV AH, 4CH
      INT 21H
CODE ENDS
    END START 

正常通过

在这里插入图片描述

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值