鱼C论坛

 找回密码
 立即注册
查看: 2016|回复: 3

大小写转换问题

[复制链接]
发表于 2012-8-17 11:14:14 | 显示全部楼层 |阅读模式
4鱼币
;本题是说把data段中的小写转换为大写,遇到0则停止,但不知哪儿错了
assume cs:code
data segment
        db 'begin to go to WUHAn',0
data ends
code segment
        mov ax,data
        mov ds,ax
        mov si,0
        call s
mov ax,4c00h                                  ;说明:这个程序在masm5.0中能够编译成功,但是执行时一直在加粗的这                             
int 21h                                                一段走,就是不能够执行and语句。求解为什么。
        s:mov  al,[si]
         cmp al,0
        je t
         cmp al,'a'
         jb s
         cmp al,'z'
         ja s
         and al,11011111b
          mov [si],al
          inc si
          jmp s

          t:ret
code ends
end


最佳答案

查看完整内容

逻辑错误把,因为你检测是大写字母后直接跳转到s:mov al,[si] 在这之前没有inc自增,也就是一直在取同一个字母 我先回答的,希望可以采纳我,不为鱼币只为采纳率
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-17 11:14:15 | 显示全部楼层
本帖最后由 メ㊣逆ご帅☆ 于 2012-8-17 13:46 编辑

逻辑错误把,因为你检测是大写字母后直接跳转到s:mov  al,[si]
在这之前没有inc自增,也就是一直在取同一个字母
我先回答的,希望可以采纳我,不为鱼币只为采纳率
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-17 13:42:22 | 显示全部楼层
assume cs:code
data segment
        db 'begin to go to WUHAn',0
data ends
code segment
start:  mov ax,data
        mov ds,ax
        mov si,0
        call s
mov ax,4c00h                                 

int 21h                                                
        s:mov  al,[si]
         cmp al,0
        je t
         cmp al,'a'
         jb k
         cmp al,'z'
         ja k
         and al,11011111b
          mov [si],al
        k:inc si
          jmp s

          t:ret
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-17 14:05:02 | 显示全部楼层
嗯,你的回答确实是对的,再说你是第一个回答的,满足你的要求,以后还找你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-27 23:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表