ZF标示位的问题

badboy111111 2009-03-20 05:03:35
lea si,adr1
lea di,adr2
cld
don1:lodsb
cmp al,'A'
jb don2
cmp al,'Z'
ja don2
add al,20h
don2:stosb
and al,al
jnz don1

这段代码中ZF是被什么影响的?何时为1的?即jnz don1何时不成立的?
...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
badboy111111 2009-03-23
  • 打赏
  • 举报
回复
谢了,两位~~今我茅塞顿开:)谢了
cnzdgs 2009-03-20
  • 打赏
  • 举报
回复
把两条lea都改成mov。
badboy111111 2009-03-20
  • 打赏
  • 举报
回复
噢,那如果是这样,此段程序为何会提早结束,且结果完全不正确
#include<stdio.h>
void lower(char *adr2,char *adr1);
void main()
{
char str[]="C Program AND Assembler Program";
char chr[50];
chr[49]='\0';
lower(chr,str);
printf("Lower String:\n%s\n",chr);
}
void lower(char *adr2,char *adr1)
{
_asm{
lea esi,adr1
lea edi,adr2
cld
don1:lodsb
cmp al,'A'
jb don2
cmp al,'Z'
ja don2
add al,20h
don2:stosb
and al,al
jnz don1
}
}
nineforever 2009-03-20
  • 打赏
  • 举报
回复
"and al,al",ZF取决于al的值

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧