社区
汇编语言
帖子详情
loop 指令循环次数问题
rampant
2009-04-08 09:56:47
如下的指令:
MOV CX,02H
A1: ADD AX,01H
LOOP A1
最后 AX 为多少了? 具体执行时候是咋样的? 麻烦重点在LOOP 指令执行上面给解答下。
...全文
2026
7
打赏
收藏
loop 指令循环次数问题
如下的指令: MOV CX,02H A1: ADD AX,01H LOOP A1 最后 AX 为多少了? 具体执行时候是咋样的? 麻烦重点在LOOP 指令执行上面给解答下。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huayangcvj
2009-04-08
打赏
举报
回复
这个问题你可以这样理解
LOOP是先执行后判断
即执行完后CX-1然后判断CX是否为零 若CX为零,则停止跳转循环,继续执行下面的程序。
例如两个例子:(你可以理解一下)
(1): MOV CX,0
MOV AL,0
A1: ADD AL,01H
LOOP A1
输出AL=0而不等01H
(2): MOV CX,01H
MOV AL,0
A1: ADD AL,01H
LOOP A1
输出AL=1只循环一次
所以你可以这样理解,循环几次,就给CX辅几次的十进制值,这样利用LOOP循环绝对不会出错
rampant
2009-04-08
打赏
举报
回复
谢谢四楼的。
BAYNPU
2009-04-08
打赏
举报
回复
你再仔细看看上面贴子是怎么讲的.
rampant
2009-04-08
打赏
举报
回复
我理解是这样的,汇编按顺序执行,当执行到LOOP 时,AX已经加1,而此时遇到LOOP ,判断CX是否为0,否则跳到 A1,并且CX减1,再次执行 ADD AX,01H ,在这时 AX 已经加2了,又再次遇到LOOP ,并且此时的 CX 并非为0,所以再跳到A1 ,CX减1,在执行ADD,那么这样下来。就相当于AX加3呀
不知道这样对吗?
BAYNPU
2009-04-08
打赏
举报
回复
最后 AX 为多少了?等于=2
LOOP指令首先将计数值CX减1,然后判断计数值是否为0.CX不为0,则继续执行循环内的指令;CX等于0,表示循环结束,于是程序退出循环,顺序执行后面的指令.
rookie001
2009-04-08
打赏
举报
回复
loop A1 cx不等于零即跳转到A1
前面你设置cx=2,即要循环两次
所以AX在原来的基础上加二
L
OOP
指令
L
OOP
指令
1、L
oop
指令
的格式: l
oop
标号 2、CPU执行l
oop
指令
时,要进行两步操作 ①(cx)=(cx)-1 ②判断cx中的值,不为0则转至标号处执行程序,如果为0则向下继续执行 3、通常用l
oop
指令
来实现
循环
功能,cx中存放
循环
次数
4、大于9FFFH的十六进制数据A000H、A001H...FFFEH、FFFH等,在书写的时候都是以字母开头的。 而在汇编程序中数据不能以字母开头,所以要在前面加0 ...
l
oop
循环
的一点小知识
l
oop
的一点小知识 包括两个内容: 一:l
oop
指令
的两个易错点 二:一个l
oop
指令
的实验 cx 。。。 l
oop
xxx l
oop
表示
循环
,执行到l
oop
的时候,cx-1,此时l
oop
判断cx的值是否为0,若为0,则退出
循环
一:l
oop
指令
的两个易错点 以下实验均假设初始值cx=0000 一.cx=1的
循环
如果设置cx=1 则不会
循环
类似于c语言中的 do while语句 先执行一遍...
汇编l
oop
指令
及用法解释
首先知道寄存器的类别, 其中CX寄存器是计数寄存器,在
循环
,位移等操作中重要 l
oop
指令
格式 初始化寄存器CX的
次数
标识符: ;完成的操作 L
OOP
标识符 说明:l
oop
指令
会使每
循环
一次,cx就对自身值减1操作,直到等于0为止,在此之前,一直重复执行标识符到l
oop
间的代码 l
oop
指令
基本代码 实现功能:输出6行井号 MOV CX,5;
循环
6次 st2:;输出# ...
汇编-l
oop
循环
指令
L
OOP
指令
是根据ECX计数器
循环
,将语句块重复执行特定
次数
。ECX自动作为计数器, 每重复
循环
一次就递减1。语法如下所示:。在上面的例子中,每次
循环
都将EAX加1。当
循环
结束时, EAX=5, ECX= 0一个常见的编程错误是, 在
循环
开始之前, 无意中将ECX初始化为0。如果发生了这种情况, L
OOP
指令
将ECX减1后, 其值就变为FFFF FFFFh,
循环
次数
就变成了4294967296。
x86汇编_L
OOP
指令
_笔记_14
程序块重复执行,执行的
次数
以ECX的值为依据,执行一次ECX值减1。具体分为两个步骤,ECX减1,将ECX的值与0比较。若ECX不等于0则继续跳转加指定标号处重新执行,若等于0则不跳转。 程序块占用的空间的不能超过256个字节,否则超过L
OOP
指令
的跳转范围 。 一个常见的错误是,在
循环
开始之前,无意间把ECX设置为0。此时执行
循环
,L
OOP
指令
无论如何会先把ECX减1,结果值为FFFFFFFFH,那么将
循环
4294967296次。或者是在实模式下则为65536次。 在
循环
语句块内修改ECX的值要小心
汇编语言
21,497
社区成员
41,618
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章