【汇编】为什么这个程序在结束后无法继续进行操作?

crystal_spirit 2017-05-25 11:04:53
求各位大佬不要笑话我,刚学这个。我用DOSbox 0.74做汇编文件,要求是10个大写字母变小写字母。结果是可以出来,而且也是正确的,但是在出结果之后发现没法在DOSbox里面输入任何东西了,这是不是程序没有结束没有返回DOS界面?下面贴出源程序,希望大佬能指出问题。

DATA SEGMENT
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

MIAN PROC FAR
START:
PUSH DX
MOV AX,0
PUSH AX
MOV CX,10 ;ten char

P1: MOV AH,07H
INT 21H ;input char

MOV AH,02H
MOV DL,AL
INT 21H ;display char

ADC AL,20H
MOV [SI],AL
INC SI
LOOP p1 ;convert

MOV AH,02H
MOV DL,0AH
INT 21H ;

SUB SI,10
MOV CX,10
P3: MOV AL,[SI]

MOV AH,02H
MOV DL,AL
INT 21H ;show buffer char

INC SI
LOOP P3 ;cycle show chars
RET

MOV AH,4CH
INT 21H

MIAN ENDP
CODE ENDS
END START
...全文
622 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
经测试是可以的,要把那条ret指令删掉。
crystal_spirit 2017-05-31
  • 打赏
  • 举报
回复
我试了一下,还是原来的状况
  • 打赏
  • 举报
回复
RET ;这行去掉 MOV AH,4CH INT 21H
crystal_spirit 2017-05-25
  • 打赏
  • 举报
回复
就卡在这里一动不动了。可以回车之后键入字母,但是再按回车就无效了。
crystal_spirit 2017-05-25
  • 打赏
  • 举报
回复

21,458

社区成员

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

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