Digital Stronghold - Software Engineering Blog




July 29, 2006

A palindrome checker in 16-bit DOS assembly

Filed under: Progressive Studies

A good morning to start off is to get this simple program working. This is an improvement of the previous palindrome checker posted. What can we benefit from this anyway? :)

; palindrome checker
	
start:
        mov ah, 0ah
        lea dx, strptr
        int 21h
	
        lea di, string
        lea si, strlen
        mov cl, [si]
        xor ch, ch
        mov bx, cx
        lea si, string
        shr cl, 1	        
	
check:
        mov dl, [si]
        mov dh, [di+bx-1]
        cmp dl, dh
        jne notpal
        inc si
        dec di
	
loop check
	
        cmp dl, dh
        je pal
	
notpal:
        mov ah, 09h
        lea dx, msg2
        int 21h
        int 20h
	
pal:
        mov ah, 09h
        lea dx, msg1
        int 21h
        int 20h        
	
strptr  label byte
maxlen  db 49
strlen  db ?
string  db 50 dup ('$')
msg1    db '',10,'string is a palindrome!$'
msg2    db '',10,'string is not a palindrome!$'

“If God’s people which are called by His name, will humble themselves and pray, and seek His face, and turn from their wicked ways; then He will hear from heaven, and will forgive their sins, and will heal their land.” - 2 Chron 7:14

Comments »

The URI to TrackBack this entry is: http://eradicus.blogsome.com/2006/07/29/a-palindrome-checker-in-16-bit-dos-assembly/trackback/

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.

Theme designed by Joset Anthony Zamora


Digital Stronghold

↑ Get Headline Animator