标题:初学小问题,cx的值如何又变成4的,有程序
取消只看楼主
luohua2007
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-4-11
 问题点数:0 回复次数:4 
初学小问题,cx的值如何又变成4的,有程序

问题:把段内每个单词的改为大写字母,下面是正确的程序,只是我不理解,还请大家指点一下,谢谢了
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov sp,16
mov bx,0
mov cx,4
s: ;外循环
mov dx,cx//这个DX的值是一直变动的把,开始等于4,下来等于3,2,1,0
mov si,0
mov cx,4 //就是这句我不明白,一层内循环完了后,CX因该就变成0了,当第2,3,4层外循环到来时候,是哪个语句让它又变成4的呢,
s0: ;内循环
mov al,[bx+si]
and al,11011111b//改写成了大写字母
mov [bx+si],al
inc si
loop s0
add bx,16
mov cx,dx//是这个吗。DX的值不可能一直等于4把
loop s
mov ax,4c00h
int 21h
codesg ends
end start

[此贴子已经被作者于2007-5-22 17:57:30编辑过]

搜索更多相关主题的帖子: mov segment datasg 初学 
2007-05-22 17:56
luohua2007
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-4-11
得分:0 
[QUOTE]汇编不区分大小写
[/QUOTE]
我主要的问题是cx的值如何又变成4的,
至于大小写就无所谓了,给指点一下把

[此贴子已经被作者于2007-5-22 19:46:45编辑过]


来生 再续前缘 孟婆浅浅一笑 低头看那一锅普通的汤 只因加了一味叫遗忘的草料 也抵过了曾经的万千誓言
2007-05-22 19:45
luohua2007
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-4-11
得分:0 
2位斑竹啊,你们咋就不看我的问题呢,我是想问,那个 mov cx,4 //就是这句我不明白,一层内循环完了后,CX因该就变成0了,当第2,3,4层外循环到来时候,是哪个语句让它又变成4的呢,

请指点一下把

来生 再续前缘 孟婆浅浅一笑 低头看那一锅普通的汤 只因加了一味叫遗忘的草料 也抵过了曾经的万千誓言
2007-05-22 22:59
luohua2007
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-4-11
得分:0 
[QUOTE]程序写错了吧。这个程序只是把datasg段中每个单词的前四个字母改为大写字母[/QUOTE]
你说的对,这个程序原本的意思就是要把datasg段中每个单词的前四个字母改为大写字母就可以了,
我只是不明白那个 mov cx,4 //就是这句我不明白,一层内循环完了后,CX因该就变成0了,当第2,3,4层外循环到来时候,是哪个语句让它又变成4的呢

这才是我不明白的地方啊

来生 再续前缘 孟婆浅浅一笑 低头看那一锅普通的汤 只因加了一味叫遗忘的草料 也抵过了曾经的万千誓言
2007-05-23 01:29
luohua2007
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-4-11
得分:0 
[QUOTE]mov cx,4 //就是这句我不明白,一层内循环完了后,CX因该就变成0了,当第2,3,4层外循环到来时候,是哪个语句让它又变成4的呢,(mov cx,4是这个让它又变成4 因为它要修改的是前4个字母 )
[/QUOTE]
非常感谢,问题明白了,可能是我的描述有问题,这才是我想问的问题,
让大家费心了,非常谢谢

来生 再续前缘 孟婆浅浅一笑 低头看那一锅普通的汤 只因加了一味叫遗忘的草料 也抵过了曾经的万千誓言
2007-05-23 10:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-141573-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.749162 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved