汇编out of memory

「已注销」 2019-09-26 07:48:13

DATA1 SEGMENT
MES1 DB 'input your number:','$'
DATA1 ENDS
DATA2 SEGMENT
MES1 DB 0FFH DUP(?)
DATA2 ENDS

CODE SEGMENT
ASSUME CS:CODE
START: MOV AX,DATA1
MOV DS,AX
MOV DX,OFFSET MES1
MOV AH,09H
INT 21H ;显示数据段DATA1中的字符串
ADD DX 02H

MOV DS,AX
MOV DX,OFFSET MES2
MOV AH,0AH
INT 21H ;读入字符串放到数据段DATA2中,以回车结束

ADD DX,02H
MOV AH,09H
INT 21H ;检测data2中的数据

MOV AH,4C00H
INT 21H
CODE ENDS
END START
END START
...全文
387 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
看#1的解释
  • 打赏
  • 举报
回复
ADD DX 02H有什么用呢?估计是ADD AX,02H; 但这样写也很不规范,依赖于DATA1的大小,还有DATA1和DATA2的顺序
不如直接把ADD DX 02H改成mov ax, data2
「已注销」 2019-09-27
  • 打赏
  • 举报
回复
引用 5 楼 早打大打打核战争的回复:
14行这个MOV DS,AX,ax是个废值,应该
MOV AX,DATA2
MOV DS,AX
代码修改完运行还是不成功
zara 2019-09-27
  • 打赏
  • 举报
回复
out of memory?你这源码,编译都过不了,哪来的 out of memory 。
两个 MES1 ,没有 MES2 ;ADD DX 02H 少了逗号;DATA2 使用前没正确赋值于 DS,即应有 MOV AX, DATA2 ;如果第二个 MES1 是 MES2 的话,其定义不符合 0ah 功能调用,大致应该是 db 8, 0, 8 dup(?) 其中 8 是可输入的字符数,若为 0 就不让输入了;最后的输出,没有在输入字符串末尾加上 '$' 结束标记。
  • 打赏
  • 举报
回复
14行这个MOV DS,AX,ax是个废值,应该
MOV AX,DATA2
MOV DS,AX
「已注销」 2019-09-27
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
out of memory?你这源码,编译都过不了,哪来的 out of memory 。 两个 MES1 ,没有 MES2 ;ADD DX 02H 少了逗号;DATA2 使用前没正确赋值于 DS,即应有 MOV AX, DATA2 ;如果第二个 MES1 是 MES2 的话,其定义不符合 0ah 功能调用,大致应该是 db 8, 0, 8 dup(?) 其中 8 是可输入的字符数,若为 0 就不让输入了;最后的输出,没有在输入字符串末尾加上 '$' 结束标记。
现在是value out of range
DATA1 SEGMENT
MES1 DB ' input your number:','$'
DATA1 ENDS
DATA2 SEGMENT
MES2  DB 0FFH DUP(?)
DATA2 ENDS
CODE SEGMENT 
     ASSUME CS:CODE
START: MOV AX,DATA1
       MOV DS,AX
       MOV DX,OFFSET MES1
       MOV AH,09H
       INT 21H  ;显示数据段DATA1中的字符串 
      MOV DS,AX
      MOV DX,OFFSET MES2
      MOV AH,0AH
      INT  21H   ;读入字符串放到数据段DATA2中,以回车结束
      ADD DX,02H
      MOV AH,09H
      INT 21H     ;检测data2中的数据
       MOV AH,4C00H
       INT 21H
CODE ENDS
     END START
「已注销」 2019-09-27
  • 打赏
  • 举报
回复
引用 2 楼 早打大打打核战争 的回复:
ADD DX 02H有什么用呢?估计是ADD AX,02H; 但这样写也很不规范,依赖于DATA1的大小,还有DATA1和DATA2的顺序 不如直接把ADD DX 02H改成mov ax, data2 现在是value out of range

DATA1 SEGMENT
MES1 DB ' input your number:','$'
DATA1 ENDS
DATA2 SEGMENT
MES2  DB 0FFH DUP(?)
DATA2 ENDS
CODE SEGMENT 
     ASSUME CS:CODE
START: MOV AX,DATA1
       MOV DS,AX
       MOV DX,OFFSET MES1
       MOV AH,09H
       INT 21H  ;显示数据段DATA1中的字符串 
      MOV DS,AX
      MOV DX,OFFSET MES2
      MOV AH,0AH
      INT  21H   ;读入字符串放到数据段DATA2中,以回车结束
      ADD DX,02H
      MOV AH,09H
      INT 21H     ;检测data2中的数据
       MOV AH,4C00H
       INT 21H
CODE ENDS
     END START

21,497

社区成员

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

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