一个简单的反汇编程序

aa279686030 2011-05-20 08:50:40

;
MLENGTH = 10
DATA SEGMENT
BUF DB MLENGTH
DB ?
DB MLENGTH DUP(0)
DB '$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,10
INT 21H

CALL NEWLINE
MOV DX,OFFSET BUF + 2
MOV AH,9
INT 21H

MOV AH,4CH
INT 21H

;显示回车换行
NEWLINE PROC
PUSH AX
PUSH DX
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
POP DX
POP AX
RET
NEWLINE ENDP

CODE ENDS
END START


上面这个程序的意思很简单 ,就是输入一个字符串 ,在输出来,应该很好看懂。我知道有很多种方法,不一定非要这样,但是我想问的是上面这个程序为什么 不能正确运行,我在反汇编的时候,有一段代码没有汇编出来,不知什么原因,另外程序运行也很异常,所以麻烦大侠们可以反汇编一下 ,帮忙一下查看问题!!!
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aa279686030 2011-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leetow2003 的回复:]
我查了,因为你输入时,会把回车(0DH)也存在里面了,所以输出时遇到最后一个字符0DH时,光标会回到最前面
[/Quote]
大侠说的不错,已经解决了,确实是个很弱智的问题,刚接触时间不长,所以问的有些低级。
最近写了个程序,就是向文件中写入一些字符,写一般的字符没什么问题,但是写换行和退格就有点问题了,
还好换行的问题解决了,但是对于退格键的处理,小弟有些迷茫。
当按下退格键的时候光标会回到前一个字符,然后擦除原来的字符,可是如何去擦除当前字符,而且光标也不移动。这些是显示的问题,写入文件中的处理小弟能够自己解决。不知大侠有何高见!!!能否给点意见,谢谢
海子0011 2011-05-21
  • 打赏
  • 举报
回复
建议楼主自己调试一下
哈哈
大熊猫侯佩 2011-05-21
  • 打赏
  • 举报
回复
建议楼主自己调试一下
leetow2003 2011-05-20
  • 打赏
  • 举报
回复
我查了,因为你输入时,会把回车(0DH)也存在里面了,所以输出时遇到最后一个字符0DH时,光标会回到最前面

21,458

社区成员

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

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