中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
汇编综合应用(1) Test Palindrome
作者:未知 时间:2005-07-27 23:27 出处:CSDN 责编:chinaitpower
              摘要:汇编综合应用(1) Test Palindrome

在粗略的看过string instruction之后, 综合了先前所有看过的,写了个测试palindrome的程序,再次让大脑到达兴奋点,现在终于可以让大脑轻松一下了。呵呵~~~ 源码如下:

.model small
.stack 300h
.data
 str1 byte 255 dup(?)
 str2 byte 255 dup(?)
 s1 byte "Please input a string:"
 s2 byte "Palindrome matched "
 s3 byte "Palindrome unmatched"
 count word ?
 len word ?
 flag byte ?
.code

.startup 
 mov ax,@data
 mov ds,ax
 mov es,ax
 mov flag,0
 
 Main Proc
  lea bx,s1
  mov cx,lengthof s1
  add cx,bx
  mov ah,2
  Call printOut
  
  mov si,offset str1
  mov ah,8
  Call getStr1 
  
  Call CopyToStr2
  Call Reverse
  Call Check
  mov ah,2
  Call PrintNL
  
  cmp flag,1
  je Matched
  
  lea bx,s3
  mov cx,lengthof s3
  add cx,bx
  mov ah,2
  Call printOut
  .exit
  
  Matched:lea bx,s2
     mov cx,lengthof s2
     add cx,bx
     mov ah,2
     Call printOut
     .exit
  
 Main EndP
 
 printOut Proc
  loop4:cmp bx,cx
  je finish4
  mov dl,byte ptr[bx]
  int 21h
  inc bx
  jmp loop4
  finish4:ret  
 printOut EndP
 
 getStr1 Proc
  loop1:mov ah,8
    int 21h
    cmp al,13
    je finish1
    mov [si],al
    mov ah,2
    mov dl,[si]
    int 21h
    inc si
    inc len
    jmp loop1
  finish1:mov [si],0
    ret
 getStr1 EndP
 
 printNL Proc
  mov dl,10
  int 21h
  mov dl,13
  int 21h
  ret
 printNL EndP
 
 CopyToStr2 Proc
  cld
  mov cx,0
  mov cx,len
  mov si,offset str1
  mov di,offset str2
  rep movsb
  ret
 CopyToStr2 EndP
 
 Reverse Proc
  mov si,offset str1
  mov di,offset str2
  mov ax,0
  mov ax,len
  mov dx,0
  
  loop5:push ds:[si]
    inc count
    inc si
    cmp count,ax
    jl loop5
  
  loop6:pop es:[di]
    dec count
    inc di
    cmp count,0
    jg loop6
  ret
    
 Reverse EndP
 
 Check Proc
  mov cx,len
  mov si,offset str1
  mov di,offset str2
   
  rep cmpsb
  je setFlag1
  jne setFlag2
  setFlag1:mov flag,1
     ret
  setFlag2:mov flag,0  
     ret   
 Check EndP
   
end


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有