+ -
当前位置:首页 → 问答吧 → 一个简单的反汇编程序

一个简单的反汇编程序

时间:2011-05-20

来源:互联网

Assembly code

;
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



上面这个程序的意思很简单 ,就是输入一个字符串 ,在输出来,应该很好看懂。我知道有很多种方法,不一定非要这样,但是我想问的是上面这个程序为什么 不能正确运行,我在反汇编的时候,有一段代码没有汇编出来,不知什么原因,另外程序运行也很异常,所以麻烦大侠们可以反汇编一下 ,帮忙一下查看问题!!!

作者: aa279686030   发布时间: 2011-05-20

我查了,因为你输入时,会把回车(0DH)也存在里面了,所以输出时遇到最后一个字符0DH时,光标会回到最前面

作者: leetow2003   发布时间: 2011-05-20