Hello,
Could you pls help me answer this question:
- Please take a look at my small Assembly program that reads a tring from keyboard, then displays all the characters that are not uper-case letters in reverse order:
Code:
.model small
.stack 100
.data
        tb1 db 'Pls enter a string, enter to finish $'
        tb2 db 10,13,'The characters that are not uper-case : $'
        xau db 80 dup(?)
.code
Main proc
        mov ax,@data
        mov ds, ax
        mov es, ax
        mov ah,9
        lea dx,tb1
        int 21h
        xor cx,cx
        lea di,xau
nhap:        mov ah,1
        int 21h
        cmp al,13
        je thoi
        cmp al,'A'
        jb dung
        cmp al,'Z'
        ja dung
        jmp nhap
dung:        stosb
        inc cx
        jmp nhap
thoi:        mov ah,9
        lea dx,tb2
        int 21h
        dec di
        mov si,di
        std
        mov ah,2
quay:        lodsb        
        mov dl,al
        int 21h
        loop quay
        mov ah,4ch
        int 21h
Main endp
        End main
The code above runs very well, even though i did not use the Clear Direction Flag (cld) instruction after the instruction in red (lea di,xau)
The string processing is still in forward direction.
The question is that: Why?

I appreciate your help. my email: duyngv@us.ibm.com

Regards,
Duy.

Last edited by shabbir; 28Aug2007 at 15:24.. Reason: Code block