正文

汇编子程序设计2006-11-16 21:39:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hammers/20391.html

分享到:

要求:

已知某密码由英文字母ABC……Z组成且以ASCII码形式存放在以CIPHER为首地址的存储区中,试统计各字母在此密码中出现的次数并依次存入以CHAR为首地址的26个字节中,最后将字母出现的次数以十六进制形式显示出来(设出现的次数≤255),显示格式为:

A XXH

B XXH

Z XXH

要求:

8位二进制数转换成十六进制数并显示出来的功能用子程序完成。

program: 

jidseg     segment
chipher  db 'AASDFGHJKLMNBVCXZQWERTYUIOPJSDLFSDLFSDJFOFWOOEWJWTRETJGFVNLFLFJLWUIEWWFSFSFKF'
len      = $-chipher
char      db  26 dup(0)
dseg      ends
cseg     segment
         assume   cs:cseg ,ds:dseg
start:
          mov ax,dseg
   mov ds,ax
          mov si,0
next:   mov  bl,chipher[si]
          mov  bh,0
   inc si
   cmp si,len
   ja  count
   sub bl,'A'
   add char[bx],1
   jmp  next

count:
          mov si,0
count1:   mov  bl,char[si]
          mov  bh,0
   inc  si
   cmp  si,25
   ja    done
   mov   dx,si
   add   dx,40h
   mov   ah,2
   int   21h
   mov   dl,':'
   mov   ah,2
   int   21h
   call  deal
   jmp    count1
 
done:     mov ah,4ch
          int 21h

deal      proc
          push  ax
   push  bx
   push  cx
   push  dx
   mov dx,0
   mov di,2
          mov cl,4
 sign:    shl bx,cl
          cmp di,0
          je exit
          dec di
          cmp bh,9
          ja  word
          add bh,30h
          mov dl,bh
          mov bh,0
          mov ah,2
          int 21h
          jmp sign
 word:
          mov dl,bh
          add dl,37h
          mov bh,0
          mov ah,2
          int 21h
          jmp sign

exit:   
          mov dl,'h'
          mov ah,2
          int 21h
          mov dl,' '
          mov ah,2
          int 21h
          pop   dx
   pop   cx
   pop   bx
   pop   ax


          ret      
deal      endp
cseg      ends
          end  start

阅读(2366) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册