汇编-loop循环指令

news2024/11/15 22:20:20

LOOP指令是根据ECX计数器循环,将语句块重复执行特定次数。

ECX自动作为计数器, 每重复循环一次就递减1。

语法如下所示:

循环目的地址必须在距离当前位置计数器的-128到+127字节范围内

LOOP指令的执行有两个步骤:

第一步, 将ECX减1;

第二步, 将ECX与0比较。如果ECX不等于0, 则跳转到标号destination。如果ECX等于0, 则不发生跳转, 控制将被传递到循环后面的指令

.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO,dwExitCode:DWORD

.data

.code
main PROC
        
        mov eax,0 
        mov ecx, 5
        L1:
        inc eax 
        loop L1

        
    INVOKE ExitProcess,0
main ENDP
END  main

在上面的例子中,每次循环都将EAX加1。当循环结束时, EAX=5, ECX= 0

一个常见的编程错误是, 在循环开始之前, 无意中将ECX初始化为0。如果发生了这种情况, LOOP指令将ECX减1后, 其值就变为FFFF FFFFh,循环次数就变成了4294967296

嵌套循环

嵌套循环当在一个循环中再创建一个循环时,就必须特别考虑外层的循环计数器ECX, 可以将它保存在一个变量中:
 

.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO,dwExitCode:DWORD

.data
count DWORD ?

.code
main PROC
        
        mov eax,0
        mov ecx, 100       ;设置外层循环计数值
     L1:
        mov count, ecx      ;保存外层循环计数值
        mov ecx, 20          ;设置内层循环计数值
     L2:
        inc eax
        loop L2
        mov ecx, count       ;恢复外层循环计数值
        loop L1
        ;EAX = 000007D0h=2000

        
    INVOKE ExitProcess,0
main ENDP
END  main

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1229114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记一次线上bug排查-----SpringCloud Gateway组件 请求头accept-encoding导致响应结果乱码

基于公司的业务需求,在SpringCloud Gateway组件的基础上,写了一个转发服务,测试开发阶段运行正常,并实现初步使用。但三个月后,PostMan请求接口,返回异常,经排查,从日志中获取到转发…

js高效函数库Lodash.js

Lodash 是一个 JavaScript 的实用工具库,提供了许多实用且高效的函数,可以简化 JavaScript 编程中的常见任务。 Lodash具有高性能、模块化和易用性等特点,表现一致性以及可扩展,下面将介绍一些 Lodash 的重要特性和用法&#xff1…

解决 VS2022 关于 c++17 报错: C2131 表达式必须含有常量值

使用 VS2022 编译 ORB-SLAM3 加载Vocabulary 二进制ORBvoc.bin 时,在 DBOW2 里修改 TemplatedVocabulary.h 代码显示这样的错误: 编译器错误 C2131 表达式的计算结果不是常数 定位到我的代码中: char buf [size_node] ; 原因 : …

Ultipa Transporter V4.3.22 即将发布,解锁更多易用功能!

Ultipa Graph 作为一款领先的实时图数据库分析平台,即将发布最新版的数据导入/导出工具Ultipa Transporter V4.3.22 以实现对 Neo4j数据源的导入支持。自今年以来,Ultipa Transporter不断增加新功能,除原本支持本地CSV文件导入导出外&#xf…

修改bat文件默认编辑软件

Windows默认编辑bat文件的软件是自带的文本编辑器。无法高亮显示bat中的命令。 修改方式一: 打开注册表文件,变更键值 HKEY_CLASSES_ROOT\batfile\shell\edit\command 对应软件地址 修改方式二: 制作批处理文件,代码如下&#x…

github 开源whisper ros llm

GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision openai whisper ROS LLM https://github.com/Auromix/ROS-LLM/tree/ros2-humble/llm_input

我理解的反射

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 我之前对反射的理解未必…

uni-app:前端实现心跳机制(全局)+局部页面控制心跳暂停和重新心跳

一、App.vue全局中写入心跳 在data中定义变量heartbeatTimer,便于暂停心跳使用在onLaunch中引用开始心跳的方法startHeartbeat()写入开始心跳方法写入暂停心跳方法写入请求后端刷心跳机制 定义变量 // 在全局设置的心跳机制中添加一个变量来保存定时器的标识 data(…

利用API连接抖音外卖与电商平台和营销系统,实现无代码开发的集成

利用API连接抖音外卖和电商平台 抖音来客,作为抖音生活服务商家经营平台,为商家提供一站式经营服务,其中包括入驻、上品、经营和履约等功能。商家可以通过API调用,实现电商平台和抖音外卖的连接,从而优化运营效率。例…

源启容器平台KubeGien 打造云原生转型的破浪之舰

云原生是应用上云的标准路径,也是未来发展大的趋势。如何将业务平滑过渡到云上?怎样应对上云期间的各项挑战呢?中电金信基于金融级数字底座“源启”打造了一款非常稳定可靠、多云异构、安全可控、开放灵活的容器平台产品——源启容器平台Kube…

第二证券:知名私募美股持仓曝光 科技与消费板块成“心头好”

近来,美国证券交易委员会(SEC)网站闪现,高毅资产、HHLR(高瓴旗下独立二级商场基金管理人)、景林资产和千合本钱旗下对冲基金TOP ACE,陆续宣告了到三季度末的美股持仓。 据私募排排网核算&#…

代码逻辑修复与其他爬虫ip库的应用

在一个项目中,由于需要设置 http_proxy 来爬虫IP访问网络,但在使用 requests 库下载文件时遇到了问题。具体表现为在执行 Python 脚本时,程序会阻塞并最终超时,无法正常完成文件下载。 解决方案 针对这个问题,我们可以…

本地部署 Qwen-14B-Chat

本地部署 Qwen-14B-Chat 1. Qwen-14B 概述2. Github 地址3. 创建虚拟环境4. 安装依赖项5. 快速使用6. 启动 web 演示7. 访问 Qwen 1. Qwen-14B 概述 通义千问-14B(Qwen-14B) 是阿里云研发的通义千问大模型系列的140亿参数规模的模型。Qwen-14B是基于Tra…

【Java SE】如何解读Java的继承和多态的特性?

前言 什么是继承和多态,为什么被称为Java三大特性,这两大特性为我们程序员带来了什么影响呢?是让复杂的代码简化了,还是为程序员写代码提供了多样性呢?那让我们一起来揭开这层神秘的面纱吧! 1.继承 1.1为…

日期相关整理

3214. 节日 有一类节日的日期并不是固定的,而是以“a 月的第 b 个星期 c ”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。 现在,给你 a,b,c 和 y1,y2,希望你输出从公元 y1 年到公元 y2 年间的每年的 a 月的第 b 个…

重要功能丨支持1688API 接口对接一键跨境铺货及采购,解决跨境卖家货源烦恼!

在跨境电商运营中,不少卖家都会优先选择1688平台产品作为跨境店铺货源。 必不可少的1688商品详情接口 阿里巴巴中国站获得1688商品详情 API 返回值说明 item_get-获得1688商品详情 1688.item_get 公共参数 请求地址: 申请调用KEY测试 名称类型必须描述keyStrin…

鼠标点击网页任何地方都显示光标闪烁输入状态

出现这种情况的原因 因为大概是用户无意中打开了浏览器无障碍模式中的使用文本光标浏览网页的功能。 对于Chrome浏览器而言就是这样的: 直接按F7关闭这个模式

十倍增量的海外客户开发新方式来了!外贸企业可直接照做

外贸和B2大C型(汽车、房产、保险、教育等)企业出海过程中,除了常见的数字营销(投放)、平台营销、活动营销(线下展会)和内容营销,还有一个批量化可快速复制起量的营销方式&#xff1a…

SIMULIA-Simpack 2022x新功能介绍

通用功能 增加库伦摩擦类型 力元95 Coulomb Friction增加了3种新的摩擦方向类型用于模拟平面、圆柱和球面摩擦。 针对平移和旋转摩擦改进了滑动到粘着过渡阶段的检测,增加一个参数定义两种不同的滑移-粘滞过渡模式,即“Unloaded stick stiffness”和“…

超全毛玻璃图标教程,不看你就OUT了!

相比热衷于UI设计的朋友们,都曾经听说过玻璃拟态图标这个名词。玻璃拟态图标以其吸引人的外观和易于上手的特性,赢得了大家的青睐。在这篇文章中,将使用一款免费的在线图标设计工具Pixso,为你详解通过四个步骤,让你快速…