找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 302|回复: 7

C18 8086\097 检测点中的疑问?

[复制链接]

2

主题

7

回帖

86

积分

至尊会员

积分
86

至尊会员

发表于 2024-4-1 13:49:28 | 显示全部楼层 |阅读模式
老师你好:
习题要求从1到100的和


      xor  ax,ax
      mov cx,100   ;此时cx中的数值为100?
@f:
     add ax,cx     ;这时cx中的数值是不是还是100?
     loop @f

96

主题

110

回帖

1462

积分

管理员

积分
1462
发表于 2024-4-1 19:22:28 | 显示全部楼层
mov cx, 100 这句,cx是目的操作数,其值会被修改为100

add ax, cx 这句,cx是源操作数。源操作数不会被改变,只是使用。

2

主题

7

回帖

86

积分

至尊会员

积分
86

至尊会员

 楼主| 发表于 2024-4-2 09:00:10 | 显示全部楼层
站长 发表于 2024-4-1 19:22
mov cx, 100 这句,cx是目的操作数,其值会被修改为100

add ax, cx 这句,cx是源操作数。源操作数不会被改 ...

老师你好:感觉挺别扭的,是不是应该把赋值100的寄存器cx保存一下,
再设置cx为1?因为寄存器里面已经存储了100?

96

主题

110

回帖

1462

积分

管理员

积分
1462
发表于 2024-4-2 09:49:00 | 显示全部楼层
张永明 发表于 2024-4-2 09:00
老师你好:感觉挺别扭的,是不是应该把赋值100的寄存器cx保存一下,
再设置cx为1?因为寄存器里面已经存 ...

什么意思?为啥要设置CX为1?为啥要保存CX

0

主题

1

回帖

60

积分

至尊会员

积分
60

至尊会员

发表于 2024-4-2 11:54:30 | 显示全部楼层
张永明 发表于 2024-4-2 09:00
老师你好:感觉挺别扭的,是不是应该把赋值100的寄存器cx保存一下,
再设置cx为1?因为寄存器里面已经存 ...

cx设置为100,每次循环时 add ax, cx这句代码中的cx的值都减去1,相当于是从100,99,…,1这样的顺序实现1到100的加法

96

主题

110

回帖

1462

积分

管理员

积分
1462
发表于 2024-4-2 22:52:24 | 显示全部楼层
Stephane 发表于 2024-4-2 11:54
cx设置为100,每次循环时 add ax, cx这句代码中的cx的值都减去1,相当于是从100,99,…,1这样的顺序实现 ...

是的。我当初没看懂他的意思。

2

主题

7

回帖

86

积分

至尊会员

积分
86

至尊会员

 楼主| 发表于 2024-4-3 07:35:16 | 显示全部楼层
我明白了,1到100的倒序加法。从99+98 +97……2+1

2

主题

7

回帖

86

积分

至尊会员

积分
86

至尊会员

 楼主| 发表于 2024-4-3 08:59:05 | 显示全部楼层
昨天下班后我还寻思是不是应该把CX,100 PUSH CX
xor  ax,ax
      mov cx,100 
      push cx 
@f:
    mov cx,1
     add ax,cx   
     pop pop
     loop @f
大脑思维太差了多此一举
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-4-30 06:08 , Processed in 0.232627 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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