注册 登录
编程论坛 汇编论坛

汇编疑问

Rexfield 发布于 2011-01-21 00:05, 481 次点击
这段代码如果在开始就调用的话那没问题。但是到后来用指令调用的话就工作异常了。
我是用EMU8086 4.08进行模拟的,这是什么问题?
程序代码:
sys_dir proc
    push es
    push ds
    lea ax,dseg
    mov es,ax
    mov ds,ax
    mov ah,47h
    lea si,cmdl
    add si,3
    int 21h
    sub si,3  
    add dl,'A'
    mov [si],dl
    inc si
    mov [si],':\'
    sys_dir_find0:
        mov cl,[si]      
        inc si
        cmp cl,0         
        jne sys_dir_find0
        dec si
        mov [si],'$'
    pop ds
    pop es
    ret
sys_dir endp

只有本站会员才能查看附件,请 登录
2 回复
#2
Rexfield2011-01-21 00:07
运行后输入密码root,然后再输入dir,回车就能看到结果。INT 21H并没有工作啊。

但是在init proc里面加上call sys_dir的话又是对的。
#3
Rexfield2011-01-21 10:35
解决了,原来DX数据没有处理好。
1