. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->标志寄存器
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验11,,求鉴定  [待解决] 回复[ 6次 ]   点击[ 439次 ]  
knight00
[帖 主]   [ 发表时间:2012-05-19 09:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-05-14 19:41
assume cs:code 
  data segment
  db "Beginner's All-purpose Symbolic Instruction Code.",0
code segment
   start:mov ax,data
         mov ds,ax
         mov si,0

         call letterc

        mov ax,4c00h
        int 21h

    letterc: sub ax,ax
             mov al,[si]
             jcxz ok
             cmp al,97
             jnb s1 
             cmp al,122
             jna s2              
             jmp short letterc
             
         s1: cmp al,122   
             jna convert 
              inc si
             jmp short letterc
          
         s2:  cmp al,97
              jnb convert
              inc si
              jmp short letterc

    convert:  sub al,20h
              mov [si],al
              inc si
              jmp short letterc

         ok: ret 
code ends

end start
tomato
[第1楼]   [ 回复时间:2012-05-19 23:16 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
这个程序的思路实现地有些不够精简。还可以再优化,改进。
knight00
[第2楼]   [ 回复时间:2012-05-20 08:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-05-14 19:41
en
knight00
[第3楼]   [ 回复时间:2012-05-20 09:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-05-14 19:41
开始 思路想错了。。 改了一下
assume cs:code 
  data segment
  db "Beginner's All-purpose Symbolic Instruction Code.",0
code segment
   start:mov ax,data
         mov ds,ax
         mov si,0

         call letterc

        mov ax,4c00h
        int 21h

    letterc: sub ax,ax
             mov al,[si]
             jcxz ok
             cmp al,97
             jnb s1 
             inc si
             jmp short letterc
         
         s1: cmp al,122
             jna convert
             inc si
             jmp short letterc
 

    convert:  sub al,20h
              mov [si],al
              inc si
              jmp short letterc

         ok: ret 
code ends

end start
ibelieve1314love
[第4楼]   [ 回复时间:2013-04-08 16:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-30 15:18
你这个怎么控制子程序结束的,好像没有对cx的操作呀,你直接jcxz ok,好像有问题吧
iamen
[第5楼]   [ 回复时间:2013-05-05 15:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-05-01 00:36
思维好乱
kennedy
[第6楼]   [ 回复时间:2014-09-22 14:07 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2014-09-05 19:19
不用jcxz 使用cmp判断为0则跳出
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved